Hacker News new | past | comments | ask | show | jobs | submit login
Stop Guessing Languages Based on IP Address (medium.com/kristopolous)
308 points by kristopolous on April 22, 2017 | hide | past | favorite | 189 comments



"Stop guessing languages based on IP address" misses the target by going a bit too far. IMHO it should be "Stop guessing languages", because that's the root cause of this issue.

It stems from making assumptions on the human and her intentions based on the computer settings or network location. We know better than that.

Problem is design is made based on metrics and tracking, and things are tailored to the largest user base and the rest is an afterthought.

The main roadblock is the current lack of a way to ask the visitor for her language of choice in a way that does not involve words nor country flags. Tackling this in an almost universal way is not that easy and obvious, but even a partial success is better than having an automated way force a broken choice upon the human visiting the website.


> Stop guessing languages

Thank you. That is it. As the world goes global, who speaks what gets impossible to guess. I had a friend from Barcelona (Spain), that lives in Sweden, temporarily relocated to Shangai. To guess his preferred language is impossible. Sometimes he can prefer to read something in English to send it to colleagues. Other times he is more comfortable reading Spanish, or maybe Catalan. But can also want to read in Chinese, as sometimes it is better to read the original language - even with a very low understanding of it - than to read a really bad translation.

> The main roadblock is the current lack of a way to ask the visitor for her language of choice in a way that does not involve words nor country flags.

To show every user of your website a long list of languages each time you get a visit is overkilling. I understand that a website will show by default a reasonably guessed language, it is going to work for 90% of your users, but changing to any other language should be fast and easy. The worse I have seen is websites that don't allow you to change the language, so you are trapped for whatever guess they did.


> The main roadblock is the current lack of a way to ask the visitor for her language of choice in a way that does not involve words nor country flags

The whole point of the blog was that the browser already has asked the user that question in the sense that it defaults to the system language setting, i.e. the first things you do on a computer when you open it for the first time.

> but even a partial success is better than having an automated way force a broken choice upon the human visiting the website.

I don't understand. What you're proposing as a solution (asking visitors their language on first entry) is essentially the fallback scenario for guessing incorrectly.

I try to think of the number of different websites I visit and thinking of every single one asking me for a language preference makes me feel not good about using the web. Right now, the worst case scenario is when chrome automatically detects that the website doesn't match my language and gives me a popup asking me if I want to translate.


I definitely agree with you here, the first 2 nano-seconds of the article says to use the language header. I thought everyone already did that! :) Even if that metric isn't perfect, I don't know any browser that doesn't let you change that. Further, if it's a user preference to quickly see a website in a different language, get this extension: https://chrome.google.com/webstore/detail/quick-language-swi...


IIRC it's the browsers language, not the system language. Might be wrong here.


Just looking through the Chrome settings, I get linked to this help article: https://support.google.com/chrome/answer/173424

> You can set Chrome to show all settings and menus in the language you want. This option is only available on Windows and Chromebook computers. > On Mac or Linux? Chrome will automatically display in the default system language for your computer.

Obviously it's different for different OS and browser combos, but the important thing I think is that it's a browser setting and not something that needs to be configured on every site.


I was playing with this today: at least on OSX, I couldn't find a browser that reasonably handled "I speak more than one language comfortably" out of the box (eg, using the OS settings).

Safari: sends the primary OS/environment language, and nothing else. (the OS allows for a weighted list of multiple languages, Safari honours only the primary language). There is no configuration option for this.

Chrome: sends the primary OS/environment language, then en_US, then en. If you had a second preference that wasn't english (eg Belgium, Switzerland, etc), tough. It is atleast configurable (if you look hard enough)

Firefox: entirely ignores the OS environment; uses the localization you downloaded. But is also configurable.


What I love about Firefox in this space is that it lets you configure fonts per-language, which is important because default fonts are often not that great.

I've never found sites that actually use Accept-Language properly, so I care as much if that works well.


> The main roadblock is the current lack of a way to ask the visitor for her language of choice in a way that does not involve words nor country flags.

Whatever happens, you still want an option to change language on a given website, even if browser preferences are different.

E.g. my default language is English, but for certain websites I prefer Polish.


How about using the language of the browser used? This is the language I am comfortable reading my GUI in. Provide a language selector in that language or display by default using it.


That's very likely a better title. Thanks.


On the topic of language, a problem I have in India is that many OSs, apps and sites don't understand that both "color" and "colour" are okay in India. It's more a question of style whether you use the US or British or US spelling, and I don't want my spell-checker enforcing style. Neither is really wrong, like "colur" would be.

macOS, iOS and Android all get this wrong, insisting on "correcting" color to colour. This happens in both native and web apps. I tried to work around this by adding English (US) as a secondary language, which fixes the issue in iOS but not macOS or Android.

A couple of other related points: it's irritating when apps don't use my location to pick sane defaults. Google Maps on a new phone showed me a distance in miles. A computer should never ask you a question it can work out the answer to. If you still want to change it, fine, but the default should be sane.

Another problem with language is that many developers think of I18N as a checklist item to be ticked off. They still use American English like "way to go". Leave the Americanisms out of it, if you want your non-American users to feel welcome, as opposed to, "This isn't for you". Americans will also understand if "way to go" was replaced by "congrats" or "congratulations".


"it's irritating when apps don't use my location to pick sane defaults"

No, no, a thousand times NO. Location should NOT EVER be used as a basis for things like units, currency, date format etc.

_every_ computer these days has perfectly serviceable language and locale settings. These settings should be the definitive source for any application to decide how to present language/locale-dependent information to you. If an application shows you distances in miles, either:

1) The application ignores the language and locale settings altogether and always uses english/miles. 2) The application does look at the language setting but ignores the locale setting and decides that "english language" implies "distance in miles" 3) The application does the right thing, and your computer is actually set to a locale that uses miles for distance.

Note that none of these scenario's are fixed by looking at the physical location of your computer.


Why though? I understood the GP as 'use location for sane defaults' with an implied 'if there is nothing else to use'.

A website shouldn't ignore Accept-Language. But if I set up something for the first time AND it already knows something about my region/location: Sure, go ahead and use that to suggest sane defaults.

Note that the GP seems to agree that you should be able to change the settings yourself.

So, while I'm seriously pissed by the original language redirection/detection issue (German, everything is set to en, travelling quite a bit and spent a year in Israel: Thanks, Google, for a site in Hebrew), your 'NOT EVER' seems off. Whether I travel or sit at home, if I open - using the GP's example - GMaps for the first time on a brand new phone: Why shouldn't it default to the local units? I'd consider it a bug if it wouldn't do that.


You didn't even understand what you're supposedly disagreeing with.

The locale settings need to be initialised to something, right? What default value would you choose? Miles for everyone, as Google Maps seems to? Km for everyone? Better than either of those is using location to set it to whatever the customary unit is in their country. Otherwise, you're doing the wrong thing for hundreds of millions of users.

Whether this particular setting is in the phone OS or in Google Maps is irrelevant. Either way, it needs to be initialised, and it should be initialised to something sane.


The locale and language are system settings. My point is that applications and websites have no business second guessing those system settings based on location.

For the system-level settings, those are always part of the OS install process. So either an end-user building their own system, a commercial system builder or downstream provider like a phone company will have to set it to some value during installation. Location doesn't enter into it.


Location can be used to update the default, on first run. There's no reason why that has to be the same for US and Indian users. That's the point I was making all along which you haven't understood.

Second, can you give me a reference to back up your claim that Android has an API that tells you whether the user prefers km or miles? We're not talking about language or locale here (things like en-IN) but distance units.


> No, no, a thousand times NO. Location should NOT EVER be used as a basis for things like units, currency, date format etc.

I completely agree. I'm located in the U.S. and use dollars and English customary units, but I prefer German-style dates and British spelling. Displaying metres and Celsius to me because I prefer to spell 'colour' properly is stupid.


If that's what you prefer, change the settings. Saying that the majority of Americans (to use your example) should be defaulted to British spelling because of edge cases like yourself is stupid, to use your language.

And that's all my original post talks about — defaults. I never said you shouldn't be allowed to change them.


My problem is that many systems just use location — they don't let me override the defaults.


"it's irritating when apps don't use my location to pick sane defaults. Google Maps on a new phone showed me a distance in miles. A computer should never ask you a question it can work out the answer to. If you still want to change it, fine, but the default should be sane."

Google maps' treatment of languages is also atrocious. In Japan, the romaji/english and the native map indexes seem to be entirely disjoint (and partially incomplete) sets of data. If your language is english you can search for things by name in romaji and find them, but not find them when searching in hiragana or kanji! The opposite also occurs (searching for things that have english names is frequently problematic).

They also do terrifically irritating things like rendering map kanji at microscopic sizes, then re-rendering them smaller when you (silly user!) have zoomed the map to make them big enough to read. And the design of the trip-planner interface is so confusing as to be borderline unusable.


> Google maps' treatment of languages is also atrocious.

Google's handling of the language issue in general is pretty atrocious. On my iPhone which is too old for any plugins and such on Mobile Safari, I can't do an image search quickly without a modal popping up and asking if I want to switch to English or stay in Russian. (US Expat in Russia, phone is all in english) On my laptop, it doesn't even give me the option to change the language if I'm not logged into Google at the time, even though my laptop is in English as well. It's been a major point of annoyance to not have the ability to really control what languages are served to you when it seems to me that it would be a pretty conscious decision to have your computer in X language when your IP is from a country where X isn't the primary language. The reasons I've heard for using IP instead of Accept-Language just seem like exceptions to the rule rather than the more common rule, but of course I'm just an outsider looking in on this one and don't have any data to really back that.

And to have it absolutely every time on my phone (no cache clearing) is also frustrating, regardless of whether I log in or not. It's not even so much about the different expected language; I understand Russian well enough to use the site and different functions. It's getting a nag every single time I want to do a quick search for something that is frustrating and that for everything else that gets stored about my browsing habits that they can't seem to remember that the last 30 times they asked me, I switched to English because I wanted results in English.

Why a simple toggle like DuckDuckGo has isn't used is beyond me as well. The site language is english, if I want russian local results, I just toggle the region switch for Russia at the top. Or I can isolate where I want my targeted results from. It just seems like a huge oversight from Google on this one that should absolutely be something they don't falter on.


I share your frustrations. I'm a British expat living in Berlin, and before that in Bogotá, Colombia. I originally set up my Google account in the UK and used it for years in the UK.

Whilst living in Bogotá I had set all the relevant options to have all my search results etc in English. When I moved to Berlin, I was slightly disappointed that all my results came up in German by default and I again had to manually force everything to English, but I could sort-of forgive this being as I was physically in Germany, and perhaps local language is a sensible default for relevant local results etc, etc.

Then last week, I was in the US and my search results started defaulting to German! Logged in on the same google account, on the same phone. I find it frankly unbelievable that Google could infer that this would be my preference, given the history on my account.


That's interesting, because Google search is actually pretty good at the Japanese script thing.

So they have the technology to do cross-script indexing in Japanese for maps, they just don't use it?


Take a trip to Korea, after you come back hotel prices stay in Korean won on Google Maps, until you reinstall the app, pathetic...


This happened to me after a stopover in Dubai; for months all my prices were in UAE Dirhams, and only reinstalling the app fixed it. It's been this way for quite a long time as far as I can tell; I guess having a monopoly on a good map with good local business info leads to this kind of apathy.


Oh yes, this is such a nuisance!

* When you download Firefox from Norway, you get the Norwegian version, with the right Accept-Language header setting by default. * When you buy a computer with Windows or MacOS in Norway, it's localised to Norwegian – IE/Edge/Safari presumably sets the right Accept-Language header. Linux users get to choose language during install. * Looking at Piwik stats from a site mostly used by people in Norway, I see mostly "Norwegian Bokmål" as Browser Language (10x as much as English). Dominant browsers are 1. Chrome 2. Safari 3. Firefox 4. IE. So the browsers seem to be doing the right thing.

So even without fancy UI asking what languages you know, Accept-Language seems to be correctly set (at least for Norwegians). So why are sites using the more complicated and less precise geoip guess?


And when you download Firefox from Maharashtra (a state in India), you do not get the Marathi version. It is non trivial to enable Marathi (you need to download a language pack addon, folks who need this may not be technically sound enough or speak enough English to figure this out). Marathi is the 19th most spoken language in the world, with more than 14 times as many speakers as Norwegian. What I say for Firefox was true for all browsers last I checked.

So "at least for Norwegians" is correct; this doesn't generalize well at all.

To be fair, Google in India defaults to English anyway (it's complicated -- might have been a sensible choice in the past since you could assume that folks who use the net know English, but it is probably exclusionary now that everyone is coming online). But I'm sure what I said for Marathi works for many other languages.


Thanks for enlightening me :)

Even so, it seems like a bug that you aren't offered the Marathi version (or a choice between that and English) when you download Firefox from a Maharashtra IP. Maybe something to report to Firefox bugzilla? Btw, do you need to download additional language packs to get Windows or MacOS localised to Marathi when you buy a new computer there?

And what do you think of the UI-solution suggested in the blog post?

-----

Crazy alternative: Browsers typically include language detection libraries, used for detecting LTR/RTL status and spelling[1]. The default setting for Accept-Language could be based on the languages detected when the user types into spell checked text fields.

[1] Firefox doesn't do this for spelling yet, but I think Safari at least does https://bugzilla.mozilla.org/show_bug.cgi?id=1203024


I think it's because the Marathi localization isn't an official one.

I've been discussing how to improve this.

IMO the blog post proposes a rather naive UI that will be too involved and confusing for this task. For advanced users, maybe, but then you want to actually define the "pretty good" etc. A drag-and-drop-choose-preference-order is better here, though still involved.


How many in Maharashtra actually speak Marathi? This is a problematic comparison.


Pretty much everyone not in Mumbai. Folks in the Konkani regions usually speak it as a secondary language.

Mumbai is a complicated case to deal with.


I worked at a place that used neither the header or geo-ip. Multi language capability was a check box for a client and they never specified how it needed to work, so it was implemented in the most haskish way possible.

The app was not localizable, it was using an obsolete platform and third party widget library. So.... We made a handler that piped the HTML output to a parser which attempted to identify the visible text on the page and translated it using a dictionary. The only way to choose a language was a small drop down on the top of the page that was always in English, and since it was implemented so badly usually you had to leave and return to the site for the translator to start working(caching issues).


So, I may be wrong about this, but my guess is that a lot of non English speakers browsers are not sending the "Accept-Language" header with the correct language. Getting that language right requires configuration that most users can't/won't do, so it's only going to be right if the system defaults do that, and I think it's pretty likely that a lot of users will be getting the wrong language.

If the above is true, then it almost certainly makes more sense for these large international sites to just ignore the header and send the correct language for a given country. Some travelers may be inconvenienced, but a much larger number of users will benefit.


Firefox automatically sets the Accept-Language header based on the user interface language (or at least it should; see https://bugzilla.mozilla.org/show_bug.cgi?id=1005640). It's probably the same for other browsers.

However, mismatches between the user language and the interface language are probably more common than one would think. Here in Brazil at least, I often see computers with the user interface in English, while the user's native language is Portuguese.


> I often see computers with the user interface in English, while the user's native language is Portuguese.

I'm curious why. Do users not know how to change the user interface language? Or did they learn how to use the computer from, say, an English reference and are now just accustomed to an English user interface?


Personally I prefer English UI because original is better than even professional translation, never mind half assed translation.

As the most trivial example, software UI tends to use words that are short in English, e.g. "User" and "Account". In Russian these are typically translated as "Пользователь" and "Учетная запись", much longer than the original. Do your buttons stretch properly for such long words? Even if they are technically responsive to longer text, they still probably look weird.

Now imagine an on/off toggle that prints "On" or "off" inside itself. In Russian that is 8+ characters without abbreviation. If you stick with this design, you have to provide enough context to the translator so that they abbreviate translations to something sensible.

Speaking of context, "on" has quite a few different meanings in different cases. Does your translation pipeline support multiple translations for the same string? And do you provide the desired meaning to the translator?

And don't get me started on sentences. You can't compile a sentence "A B C" by providing separate translations for A, B, and C and then just slap them together. Grammar and sentence structure in other languages does not always match English.

Unfortunately translations for even AAA software often leave a lot to be desired, either stylistically, grammatically or semantically. It's a lot of effort to get it right.


I can't stand localized software/websites either.

I suspect it's partially because I'm much better at noticing bad $NATIVELANGUAGE than bad English.


Don't even get me started. I live in Vancouver, British Columbia now and my English is pretty good -- I got maximum on English knowledge in the immigration scoring for example -- but Hungarian is my native language and to make it much, much worse I was a columnist and an editor at a magazine for eight years. I can look at a sea of Hungarian text and find the mistakes much faster than I will comprehend it! And translating computer lingo is very, very hard with different "schools" of how it should be done -- now let me note the magazine I worked for was a computer magazine, I literally was in the front lines waging this translation war and it's futile. I can't even look at a page written about computers and not want to run screaming.

So please, god, don't give me pages in Hungarian if at all possible even when I am visiting there. And at the same time could we just agree not to translate any of that? I speak if quite well, thanks much and Google Translate sucks horribly with an agglutinative language.


Blame Microsoft for creating this problem. If you have a Windows license from one country and use it elsewhere where the nationally recognized languages are not the same, chances are you cannot set Windows to use your preferred language.

In Windows XP, Microsoft locked each license down to a subset of allowed languages based on the country the license was sold in. You can download a "Language Pack" for any language, but these only provide a half-assed superficial layer of support. A "Language Pack" only translates some aspects of the OS, falling short of being the equivalent to choosing that language as a native OS setting with the appropriate license.

A quick Google shows that "Language Packs" are still a thing in Windows 7, Vista, and 10. Perhaps they now offer complete support, or perhaps they are still a crippled aftermarket solution refusing to meet the expectations of any paying customer.

tldr; Many people in non-English countries are using Windows' licenses bought from English markets (such as the US). Even if these users know where to change the OS's language setting, odds are their native language isn't listed as an option.


I've used language packs for my mother's Surface, and I didn't find any UI that it did not translate, ever since Win7.


It's the other way around - when people do not know how to change the UI language, it will usually be localized according to whatever country they're in. It's people who specifically do not want to have it localized, who find out how to switch it to English (or deliberately request English OS when buying, or install one themselves).

The reason why power users generally prefer English is because many terms are poorly or awkwardly translated (and some of those translations are historical, and are not going to change now); because English is often shorter, making the UI more compact / neater; because it's easier to find instructions, error messages etc on Google; or because they're developers, and they work in English most of the time anyway, and don't want the unnecessary overhead of dealing with two languages on the screen (I assume there are other fields in which English similarly dominates, but this is the one that I know from personal experience).


I take it you never had to figure out how to translate your OS to allow you to google your issue and then figure out how to translate the solution back? Add to this that most computer concepts haven't existed long enough to have one unique clear translation in either language, and you're in for a fun afternoon of interlingual troubleshooting.


This reminds me of the time I helped someone with a problem that involved a verbose error message being displayed in Chinese.

There were some English keywords in there that I googled, but when I clicked on a link that looked promising, Microsoft decided to show me the German version of that page instead.

Translating the instructions for changing the settings was fun and frustrating at the same time, especially since the menu organization was subtly different between the German and Chinese localizations.


The nice thing about open source software is that the translation files are usually indexed by search engines. So if you search the string you're likely to be able to find the source language (usually English) string along with how to substitute the variables.


As someone who works at my university's IT and has seen a fair amount of computers in foreign languages, Google Translate's ability to translate text from images has really been a life saver.


I have been running English language interfaces for as long as I have owned computing devices, somewhat more than thirty years.

A lot of software gets poorly translated. And worse: A lot doesn't get translated, but relies partly on the interface language of the OS. You get horrors in the pattern of "Would you like to answer this question? Ja/Nej".

Windows up to and including 3.11 in my local flavour (Danish), I could deliberately crash from various selection boxes, because someone hadn't bothered to think the translation procecess through.


Don't forget the brilliant Microsoft Excel translation of "power" as in "2 to the power 10" to the danish equivalent of "2 to the current (flow) 10".


My native language is Mandarin. My interface langauge is English.

Being in a tech job, when resolving issues with interface with international user base, taking screenshots in english, for example, has the most far-reaching benefit. More people can understand it.

Also many companies (including Microsoft) have poor translations. Using English interface bypass this issue.


On a related note, part of the reason that I've had my computers configured to use English language is that it's easier to find solutions, both in terms of searching for problems like clicking foo does not produce bar to following guides for how to do something with a document in LibreOffice, a picture in GIMP or Inkscape, a 3D model in Blender etc.

Aside from that, like many others I also find the English interfaces to be far superior in quality to localized interfaces which will often have errors in their translation. Furthermore some choices of words in translations just look plain dumb to me even though they are correct.


One of the greatest (in the sarcastic meaning of the word) work of localisation is Excel translating function names. So =SUM() is =SUMME() in German. Luckily opening the file works in different languages.


Excel deserves a special place in hell for its atrocious approach to localisation. If you were to give a Dutch Excel user a perfectly valid CSV file (i.e., comma-separated values), their Excel will fail to see it as tabulated data when they double-click the file and stuff everything in a single column. This is because someone at some point decided that in Dutch, tabulated data is (apparently) separated by a semi-colon instead of a comma, so (obviously) a file containing comma-separated values should have its values separated by semi-colons.

So if you mail a Dutch person a CSV file that follows RFC 4180, chances are they can't open it properly because of Excel. A surprisingly large number of otherwise capable people get stuck at this point.

(OpenOffice/LibreOffice is smart enough to recognise tabulated data when it sees it, and will simply present you with the import screen for tabulated data with its helpful live preview of the columns.)


Yes, oh my god, that's terrible :( I prefer LibreOffice but sometimes I run into Excel at a job or similar and the last time I did the computer I had to use was using Norwegian locale (I've been living in Norway since the age of four) and there was no way to switch it to English without admin privileges (which to me is a pretty huge WTF moment by its own right), and even if I had been able to I don't know if Excel has the English locale installed or not.

So when I had to use Excel all the formulas were named in Norwegian.

I downloaded a portable version of LibreOffice but that triggered the anti-virus :I

Sometimes I would use Google Docs instead but for company confidential information I obviously won't upload that data to Google so then I'm stuck with Excel. Even for non-critical data Google Docs might not be an option simply because you are working on the file together with someone else who is using Excel and constantly uploading and downloading the file would be annoying, as well as the risk of Google Docs not supporting 100% of the features of Excel leading to complicated spreadsheets getting mangled. (Same problem with using LibreOffice to work with someone using Microsoft Office.)


I perfectly know how to do that and I speak a language that isn't uncommon, but generally translations introduce minor/annoying bugs, like text overflowing textboxes etc., and the quality of the translation can be an issue too (spelling errors, technical terms translated in strange ways,...).

Also, the material found on the web for that software (help, tutorials, etc.) also come in English as well. Trivial example: in multiplayer games knowing the English name for items, locations etc. helps with communication with other players.

So I tend to set the interface to English even when it is auto-detected correctly.


I'm a native Latvian speaker, always set every UI to English, for many reasons.

One is that I started using computers before any mainstream software was available in Latvian, so I am used to English being the language of all computers.

Another major reason is the translations themselves, which take two dramatically different approaches. There are official Latvian translations for computer terms, as suggested by the language academy. These translated terms are very much "designed" - they're decided on at committee meetings and, while linguistically sound, I find many of them very unnatural, and their meaning impossible to guess without learning the term explicitly. I won't bother with examples here as there's probably no Latvian speaker reading this anyway. So using those official terms is one approach, and it's followed by, for instance, Microsoft. The other approach (used by most open-source localizations) uses more natural vocabulary with more English borrowings, and only some of the academically-defined terms. Even if I wanted to use Latvian UIs, I would constantly be looking at two fairly different sets of vocabulary.

Of course the translations themselves are also poor and often incomplete, unsurprising for such a small language. Some programs automatically show up in Latvian after installation (thanks to, once again, bad use of regional settings), and I will usually see a Latvian/English mix right away because much of the text isn't translated. I've had the misfortune of briefly using the Latvian UI for Windows XP, and it was full of typos and inconsistencies.

But above all, by now it's just a matter of habit. I am as comfortable in English as in my native language, and would have no incentive to use a non-English UI even given a perfect translation.


As a fellow Latvian speaker, I agree completely. Personally, I'm glad translations are terrible and/or absent entirely, this motivated me to learn English as a kid and the benefits of an effectively ubiquitous (among computer-literate users, anyway) global lingua franca are immense.


To offer a counterpoint though, translations are important for the older generations. I notice that, compared to many other European countries, we have far fewer computer/technology users that are older, say 60+. Latvians in that age group typically know no English whatsoever, so their only chance of using software is if it has a reasonable translation. Even an iPad isn't that easy to use if you don't understand a word!


The vast majority of users in any country don't know how to change those sorts of settings and won't figure it out unless they absolutely have to. In the US is just happens that everything we get comes correctly configured for us, so it's not an issue.


When you set up a PC does the OS not ask you what language it should be in? I recall being asked a ton of questions by Windows when I first turned my laptop on. I think I went through a similar process installing Ubuntu. Surely the desired language is the first part of any setup procedure.


> The vast majority of users in any country don't know how to change those sorts of settings and won't figure it out unless they absolutely have to.

I have quite the opposite experience.

1. In Taiwan and Japan, phones and pc comes correctly configured UI language for us. But I switch it to English anyway.

2. UI Language is usually not something people can just try to use and "get by". Languages are almost always immediately switched user's prefered one upon recieving product in my experience.


Short answer: because translations used to suck, especially error messages, so if you had a problem you would end up with an error message that was indecipherable and non-googlable


(this is the oft forgotten reason why error codes are useful)


It's a non trivial process to set up a Firefox language pack, and involves googling the right things and navigating pages in English. Some languages have official downloads which you can choose on the download page, but not all. My language -- the 19th most spoken -- does not have this option, for example.

These days the textual UI of the browser isn't too important (the icons are what matter for day to day usage) so people just live with it.


Actually, why does the UI language have to be the same as the contents' language? Why can't they be different? I often prefer them to be different.


Since browsers are mostly pictographic interfaces, presuming the user prefers or even is very familiar with the interface language of the browser is likely not the best design.


It's like watching dubbed movies. Inferior on every level.


I can't imagine how that would be the case. If I (at Brazil) go into the Mozilla or Chrome download sites, anything that is not a Portuguese translation of a browser for my current OS is pretty much impossible to find. And those localized browsers do send the correct "Accept-Language" header.


What is true for Portuguese is not true for many other languages, even those with considerable numbers of speakers.


I have everything set to English. Yet YouTube insists on giving me the Chinese version. And English is an official language here in Hong Kong.


It's not just travellers, I'm italian but my whole stack is in american english because searching for localized error message makes everything harder than needed be.

I know many other developers using the same default, at most with changed date and cirrency format, especially date because the american date format is plain stupid.

Sites that serve me italian or even worse than serve me a google translated version of an english page in italianish irritate me to no end


The interface problem is unsolved. My argument that it's necessary and the IP-based guess is insufficient has two reasons:

First, often there's a local, state, and international language. This is endemic in India but also exists elsewhere. In Barcelona for instance, there's Catalan, Spanish, and English.

The migrants to Barcelona generally know at least one of these; such as Turkish and Catalan, or Arabic and Spanish. So what do you display? The Catalan version? Spanish? English?

You can find the differently-scoped languages in unlikely places; in Mexico for instance, Nahuatl has 1.4 million speakers and Yucatec has 759,000. That's about the population of San Francisco. Not a small number.

Second, international migration is only slated to increase. In Los Angeles, the neighborhoods of say Huntington Park (pop 58,800) and South Gate (pop 95,677) are 97.1% and 94.8% Hispanic/Latino respectively while Monterey Park (pop 61,085) is 86.3% Asian/Pacific Islander. The Burbank/Glendale area has the largest population of Armenians outside of Armenia. Over 50% of LA residents don't speak English in the home.

So for these cases, is defaulting to the state language a better user experience than fixing the language selection process?


Just use whatever their OS locale is. We have a mechanism to communicate that from the browser to the website (which, so far as I know, browsers actually use). And if a person prefers a specific language according to their locale setting, chances are good that they'll also prefer that same language for websites, more often than not. If it's not the preferred choice, at the very least you know that they can read it, and find the language selector.


> So what do you display? The Catalan version? Spanish? English?

Whatever the accept-language header is set to.


> So what do you display? The Catalan version? Spanish? English?

You let the user choose. A big missing component of international websites is the UI to let people choose the language they want instead of guessing for them.


The user obviously should be able to switch the language, for example in the header.

But you have to display the site in some language on the first visit. Or do you want to show three big flags and nothing else? The internet would get annoying very quickly.


I'd venture to say that displaying the English version with a clearly visible flag selector would be good enough in 99% of situationa.


where did you get your stats? I agree la has large communities of immigrants but > 50% of LA residents don't speak English in the home? that's certainly not the impression I get there.


From https://www.census.gov/newsroom/press-releases/2015/cb15-185...:

Los Angeles metro area

* At least 185 languages are spoken at home.

* 54 percent of the metro area population age 5 and over speak a language other than English at home.

------8<-----

A likely deceiving interpretation of this is that it does not say "exclusively".


I would not ignore the header, but treat it as one piece of bayesian evidence about what language the user probably wants. When I did some work on language detection for a search startup (many years ago) that was the plan, but we started with the user's actual search queries. The project was interrupted before I got to find out how much signal this would have added.


You are correct, accept-language simply doesn't work in practice for too many users, so everyone uses IP based detection. It is very common to have an interface language not being a preferred one or even not the one people understand well enough to read text beyond some common interface words, which is especially common for English, for example.


IP based detection doesn't work in practice for many users, from vpn to traveling abroad including outdated IP geolocation so this is not a practical solution either.


Correct, and the blog post mentions all of that.

We should start using the header and avoid guessing, but sites won't use the header unless the data is reliable. The data being reliable is a UX problem that browsers can fix.


Apart from travellers, there's people who don't want to deal with the often atrocious and incomplete translations provided by sites and applications.


People are not doing the language configuration because most of the web services don't use the "Accept-Language" header. If it actually worked, probably users would find and set the preferred language in their browsers


The real sin here is not just the geoIP, but the patronizing "we will decide for you, lowly user" tone of many sites: they do not just inflict you with an arbitrary language, but make it difficult or impossible to undo.

If you take an UI decision on the user's behalf, then you acknowledge you could be wrong and always offer an option or drop-down menu (at the top of the page, not hidden anywhere else) to correct it, to me that's just basic UX.


It gets more condescending than this. For example, nobody treats what we speak here daily as a language at all, and instead shoves what they think we understand down our throat.


Thanks! For fuck sakes, using VPNs sometimes is a pain in the butt due to localization.

Edit: Although I understand localization is important, but perhaps we should favor English - an international language - over a localized one. Of course, one would say, it being international does not mean well adopted. Perhaps, we can use some sort of constants to assume a Country's acceptability of English and first make English the first choice; having localization as an option.

Interesting Anecdote: When I was a tiny little kid in India, we were forced to use the English version of Google so that we learn English as well as Computers at the same time. Sure Localization is more user friendly (and hence I understand it being there) but it is not a standard. After not surfing the web (or visiting other pages), 99% [1] of the applications/programs on the computer are not localized.

[1]: Bullshit number.


> 99% [1] of the applications/programs on the computer are not localized.

I just took a survey of the apps in my dock - 8 out of 12 third party apps are localized into the UI language of my computer (Japanese). This is on the Mac though, things might be more dire on Windows.


Dire indeed.


Google is very bad at this but some sites are much worse. There are sites which plain refuse to speak English to me at any costs. No option, no nothing.

Some sites insist that if I do business with them, I must do through the local website. Fine, I can buy from your German website... if you speak to me in English. There is zero reason to assume that if you force me to use your German website I speak German. No reason whatsoever.

Look, if you want to have region specific websites, go for it, even though I will hate it. Just don't redirect me to the one you think I need. Let me make the choice. And especially don't do it if there's no way for me to get back to the one I wanted in the first place (looking at you Osprey).

And if you force me to use your region specific website don't assume that everyone who is forced to visit your German website speaks German.

It's also frustrating that automatic browser translation very often breaks the checkout process (not to mention the privacy aspect of it).

Of course the nail in the coffin is when a region specific website won't work with a credit card that is outside that region. Although usually that happens in the United States, where fortunately website do speak English but won't take my European credit cards.

This is all very simple, if you do nothing at all, you don't fuck up the user experience. It's great. Every little helpful "improvement" you make is a mistake.


Udacity, for instance, doesn't let me choose English anymore and is very frustrating.


For Google, I often find myself smuggling a "hl=en" into the query parameters. This works on almost all Google services, and is quicker than finding out where the language switcher is hidden in the UI.


I've been complaining about this for a long time now.

I wrote a small greasemonkey script to add hl=en to all except a select few google locations. They are the most egregious. Unfortunately for us the industry has chosen to go with IP address determines language and it's getting more and more common.

I DO have accept language configured in my browser and I also DO understand that statistically many people's browsers are mis-configured. NO. I'm not leaving my browsers logged in to every site in the internet.

We'll forever be tilting at windmills.


Not sure if it works now but by just visiting https://www.google.com/ncr is enough to disable all localization settings instantly.


No, that localizes to American, with useless, stupid Fahrenheit and miles.

Another common problem.


Not all of their pages support the ncr. For example maps.google.com/ncr 404's. And without the /ncr I get redirected to .co.jp where there is no visible option to change the language unless I sign in.


/ncr stopped working in Dec 2015. Google broke it, and hasn't fixed it. They new parameters that do the same thing are a lot longer :(

http://searchengineland.com/google-ncr-no-country-redirectio...

Despite the positive worded arricle, apparently Google hasn't brougt /ncr back yet.


Switzerland has 3 official languages and geoIP is not good enough to determine in which part of Switzerland you are. I always get pages in German despite being in the French-speaking part of Switzerland.

Even when traveling abroad I get the problem since mobile connections are now tunneled to your home country. In France, I get German pages!


What's most annoying is that local companies make exactly the same mistakes. Digitec, Migros or Galaxus they all default to German. And I use Accept-Language as well. I understand this is a special case and the heuristic works in most cases, but when you're a Swiss company operating in Switzerland the odds are slightly different. Only 63.5% are native German speakers.

But google is by far the worst, since I'm always logged in but switches languages based on IP.


Sorry if this gets too nitpicky according to Google you officially have 4 :)


> The four national languages of Switzerland are German, French, Italian and Romansh. All but Romansh maintain equal status as official languages at the national level within the Federal Administration of the Swiss Confederation.

https://en.m.wikipedia.org/wiki/Languages_of_Switzerland



While this is technically true, the fourth one is basically on life support. I wouldn't expect to find software or even many websites using it.


I hope you guys keep it on life support for a little while longer. Dying or not, it has a nice distinctive sound to it.

https://www.youtube.com/watch?v=xtMP7Nw0E3g


Even were it not a matter of privacy and principle, I should be avoiding most of Google for this kind of idiocy. On the rarer and rarer occasions when I am somehow forced into using their services, they invariably insist on force-feeding me my native language, however much I may be running a thoroughly English language computing environment, including an English language browser with a purely English Accept-Language setting.

Same went - until recently - for Play Store access in Android, and I believe it still does if I access the Play Store web interface, at least as far as comments are concerned.

Google is not the only offender, but by far the worst that I know of.

[Typo edited]


Please, this, yes. That and location. I don't live in St Louis, but Google swears I do and there's no way to change that setting in Google news. I've emailed their product team but they're also never wrong.


This may be outdated. I just opened Goole News and on the right hand side just below the weather widget thing there's a place where you can change the location it's providing you news for. Changing the location not only updated the weather widget but also the local news stories.


Amazingly enough even when you do that, it still insists on showing me 'Local News' from St Louis.


For a long while the only place I could find to change my home location in google was their (now defunct) movie showtimes page :p


Google News detected my location (Munich) and set the local news source to show news from there, but I guess they didn't have any partnerships with the news providers except one that offered real estate market updates. It was amusing in the beginning to read that a big investment company bought some office block, but it annoyed me so I set it to give me news about Saudi Arabia instead, so I can ignore it.


It’s the same in many places, I get a handful of German sources on Google News, and then only random things that some sports newspaper writes about an athlete from my city, or articles about US towns with the same name.


I've lived in Costa Rica for 10+ years, yes I speak spanish fluently, but I would much much prefer to read the site in english. My favorite is Dell.com, wow they fight so hard to send me to dell.cr, even when I use a VPN they've gone out of their way to pay for services to redirect me to Dell.CR..


A country specific site isn't the same as a language. Often they're doing business with people from that country. The US site might not be able to trade with somebody in Costa Rica. Different way of accepting money, different laws, etc.

The problem there is that each country's site tends to be only in one language. Ideally they would have every combination of language and country, with language being a choice and country not.


That's great but consider this: I'm a US citizen traveling in Costa-Rica right now and I want to buy a Dell computer that I'm gonna pay in US dollars to be delivered at my home in the US when I get back, now I can't because I'm redirected to the .cr website that has different ways.

The issue here is making assumptions on the human and her intention based on the computer and its network supposed location.


In the last three weeks I've been in five different countries and each time this happened with every major site. Super frustrating! Thankfully this is an aberration and I don't usually travel much.

By the way, the time zone situation is even worse -- at least I can usually find an English link. Good luck figuring out if you have a conflict with a meeting scheduled while you're in Romania but you're going to be in Mexico when it happens. It's all manual all the way.


I don't understand the time zone issue. Even the macOS included Calendar app with time zone support switched on makes this a complete non-issue, and Google Calendar handled it pretty well when I used to use it too. I travel basically continuously, scheduling meetings in multiple time zones all the time, and as long as you enter the correct time zone when creating the event, everything works perfectly.


you have to know what the correct time zone is. That's a manual task.


No - on macOS Calendar you just type the city name (or a nearby city).


Polyglot problem: when Google Chrome always asks you to translate the page but you just want to read it in the original language and you are too lazy to disable the popup.


I had this with facebook. I'd like to see things in their original language, but I'm not perfectly fluent in two languages that I'd like to see in their original language, so I have the choice to "autotranslate" or not have a translation button at all.

I turned off the autotranslate button because one day I was reading a facebook post that made no sense at all, and it turned out it was a very poor translation and facebook didn't show me the original text. But now, I don't even get the button for translate, even though my spanish isn't the best and sometimes it's very helpful for me. So it goes...


Although after you do it a few times, it asks if you want to permanently disable translation for that language.


Also, this happens when the page isn't even in a foreign language, but the majority of words are not dictionary words, and there's a sparse overlap of one or two words which statistically correlate with a misspelling of a similar words in some language outside your currently chosen locale.


How often does that happen to you?


Also, however you discover my language, don't autotranslate your contents into it if you don't have a translation (and worse, hide the way to disable it). If I can't read anything you have, I'll ask my browser to translate, you don't need to bother.


Haha, the MS C# docs are just infuriating. There are things I absolutely don't want to see translated, and language docs are one of those.


Keep in mind that in many cases, translation isn't done because the market demands it, but rather because either the country laws, or government regulations for software sold to the public sector do.


Some apps and sites, like iTunes Store, do this with the license agreement, since they like to pretend the document has legal power, it has to be presented in one of the country's officially recognised languages. So like the article, someone only understanding English in Germany signing up for iTunes has to accept a legal agreement in a language they don't understand...


Oh god. Yeah.

You know how YouTube sometimes asks you questions instead of an ad?

I once got a super shitty romanized one in my language. The romanization was atrocious. It might have been the "official" way to romanize things, but nobody in India uses that, so it's not useful like that. It was a shitty machine romanization of a shitty machine translation.

It took me a minute to even understand wtf was going on. To me, it was gibberish and it wanted an action from me, so I was stuck staring at it. I realized it was some Indic language, but I wasn't even sure which for a while, that's how bad it was. It took me like five minutes to decipher it. It contained crap like "vhid'io" (video) and "sa'ina apa" (sign up), which are English words transliterated into Marathi and then back, for some stupid reason.

Whoever made that had no idea whatsoever what they were doing. Romanizations are not preferred in India. People may use them whilst chatting but that's just because learning a new keyboard is hard. These romanizations are significantly different and more readable. All speakers of the language who can read romanizations can read the script, so the script is very much preferred.

This was in Mumbai, where plenty of folks do not even speak that language. While Google may have guessed my language from the fact that it knows everything, I've noticed YouTube showing Marathi ads on anyone's computer in Mumbai, so it probably was a geolocation based decision.


Does anyone else find it a bit problematic that documentation, which should mainly be descriptive, is taking an ideological stance? It's one thing to describe known bugs around an implementation, but reading the MDN docs on accept-header, it's pretty clearly advocating against using accept-header. How can a web-reference justify recommending against standards? I understand it's not meant as the canonical reference doc, but that's pretty much how it ends up being used and I think Mozilla should be more conscious of the position of its docs. (I personally find MDN much easier on the eyes and useful with its compatibility tables and examples)


Although not obvious, MDN is a wiki with a pretty level-headed and healthy community. I've done numerous edits that were well-received so I say feel free to change it.


Ah, that is a reasonable suggestion. I would but unfortunately I don't feel technically competent to do so. (I'm more the type of programmer who would rely on MDN rather than write anything on it) It's too bad there's no discussion page like other wikis have. Under the feeback tab in the navbar, there is "report a content problem", but that requires filing a bugzilla. Don't get me wrong, overall I'm quite satisfied with the quality of MDN (it's so much better than w3schools which I was using before), it's just the tone of this particular article.


MDN articles aren't supposed to be just flat descriptions of "Feature X does Y. To use feature X, place the following code in..."

MDN is supposed to be an educational resource that can teach people what different bits of technology are for, when and why they can be used, etc., and so it's appropriate -- if there is a common problem with something -- to mention the problem.

And though I didn't write that article (but I did work on MDN's software platform during my time at Mozilla), I largely agree that Accept-Language simply doesn't work, and some other sort of in-page UI is far more reliable. There's a reason why MDN will do content negotiation, but also shows a drop-down of languages an article is available in and uses language identifiers in URLs, after all.


The description on MDN does fairly accurately describe the state of the world. It could be read as advocacy but I don't think that was the intention, maybe the word "describe" is better than "justify".

So I changed it to:

"MDN attempts to describe why Accept-Language ought to be ignored. The reasons are fairly weak when the..."

Which reframes MDN as a reporter instead of an advocate.


What I also hate are recommendations based on my IP / location without any chance of changing it. The example that bugs me most: Spotify. Why can't I just pick a country and get recommendations for it?!


I have basically the reverse problem. I happened to set my Spotify account up when I was in Germany, and all my recommendations are forever for Germany and in German, no matter where I am, with no option to change it.


When visiting websites from Belgium, one frequently occurring annoyance is that websites will serve you content in French. This happens even when you're in the Dutch speaking region (this should be easy to detect since the ISPs are different between regions).

It's frustrating because many Dutch speakers can understand English better than French.

It would even happen for websites that support English, French, and Dutch, such as Skype.com (can't test if it's still happening though).


Seconded. Country is probably (but hard to guess) 55% Dutch,35% French, 5% German, 5% Other , and language is a sensitive topic. English has become some sort of neutral zone. Even so, lots of sites have a 'they'll speak french and like it' attitude, sometimes even without a way to switch to even English.


Irritating and frankly it is worse experience than not guessing at all. I'm yet to understand why someone puts resources into it.

On the other hand I found the best indicator for me is my keyboard settings, I usually want to consume content in the language I'm currently writing, but still far from perfect.


A great annoyance in Finland is the Google maps enforcing minority language on everyone, a lot of the place names are in Swedish even though app and everything else is in Finnish, there's no option to change this either.


Even weirder still, in my experience, is that Google Maps randomly displays the names as Finnish sometimes, and randomly displays them in Swedish other times.


I hate accept language. Google keeps pushing me to the German site, and there seem to be a million places where I might have to configure my computer to make it do the right thing. My OS is actually set to English, so I don't know where the German redirect of Google comes from.

What is so difficult about sending me the US site if I go to google.com, and the German site if I go to google.de? That is really the only language selector I need.

Likewise, other pages should simply have an explicit URL for another language, that I can memorize if I prefer that language.


> I hate accept language.

Did you actually read the article? Because the whole article is basically a rant about how the non-use of the Accept-Language header is causing the trouble you have.


I read the article - it mentions that few people configure their browsers properly. I brought up my personal experience as unpleasant, because of the accept headers. Also it is not obvious how to configure the browser properly. I am German living in Germany, but prefer to do my computing in English. Apparently that confuses any web sites.

All I want is to have an English site when I type in google.com. If I want to search in German, I can go to google.de.

What could be simpler than that? All the other stuff is confusing and annoying. It's also not really "restful"-ish, is it? I think it would preferable to give the same site as a result of opening an URL, not change it depending on mysterious parameters.

How is a non-geek even to find out about the accept-headers? Say I know nothing about Computers, go to Google.com and suddenly I am forwarded to Google.de. How do I solve the problem?


Whenever you travel far away, it’s a good idea to “pre-Google” a few important things and physically store the results. And, install a translation app. You just never know if your connection will be reliable or reinterpreted in some way.

It is also useful to have a blocker because occasionally you can deal with problems by blocking offending domain references. For instance, pages might “not load” due to font server access issues but realistically you can kill those and see the page anyway.


I don't know. I'm annoyed by sites doing that too, but I don't think the author appreciates the complexity of the issue. Two examples:

They choose Google search results as an example; but when I'm in the Netherlands, I definitely don't want them to exclude the website of a Restaurant or Tourist attraction from the results, just because I don't speak Dutch. That's what Google Translate is for, after all. On the other hand, when I Google for Recipes, maybe don't show me Dutch results even if I'm in the Netherlands; I might be able to have them translated, but I think there are enough English or German recipes for Tomato Sauce too that wouldn't need to go through this extra layer of indirection. So there definitely is a correlation between language settings and Geography - in some cases.

I'm also dissatisfied with Accept-Language. For example, I speak both English and German well enough that there isn't a huge difference in comprehension. If I just set Accept-Language to English and German with q=1, and visit pages of a German, a US and a Spanish University (assuming all three of them have all languages available), they should behave very differently.

Now, let's complicate things by throwing politics into the mix; choose the wrong language or show the wrong results and suddenly you are offending one subset of people or the other.

Languages, Countries, Politics and Humans in general are inherently messy and complicated. If you see a problem that has to do with any of those and you start a sentence with "just do X", then it is very likely that your Engineering brain is oversimplifying things (and also, FWIW, you are showing your privilege in not having to consider that other people might work very differently).


The problem is that it's surprisingly difficult to make accept-language negotiation actually work (unless users specifically dig into their configuration and make it so, no browser I've tried gets this right out of the box)

Lets take a reasonable scenario - the wikipedia articles for Birmingham (UK). In English, the article is as fleshed out as you'd expect, for the second-largest city in the UK. In Slovak, there's a couple of pretty pictures, and two sentences.

A user arrives with the header "Accept-Language: sk-SK,en-US;q=0.8,en;q=0.6". Which article to I send them?

The 'naive' approach is to send them the two-line summary in Slovak. Their preference is Slovak, I have Slovak, let's do this. Easy.

The 'weighted' approach is score my available translations, decide that, eg, my English article has a weight of '1' (it's the best translation of this material I have), my Slovak article has a weight of 0.2 (it's a pretty crap translation). Content weight * User weight gives me 0.8 for my English article (1 * 0.8), and 0.2 (1 * 0.2) for my Slovak article. So I deliver the English article - the user has expressed that English is "pretty good", and I can deliver much better content in English. As a programmer, I love this approach, it saves delivering poor translations to users who don't need them.

Now, the reality. The user has sent en_US;q=0.8 not because they speak a single word of English, but because Chrome will by default, send the OS environment as 1st preference, en_US as second, and en as third. Being clever failed.

Any time we have to admit that our translations are not made equal, accept-language (or rather, current browsers' default configurations of it) is simply too naive.


Google Maps also does something like this. Open a maps tab in Winnipeg and it will show you downtown Calgary if the ISP is Shaw Communications. Twitter even started recommending I follow former Prime Minister Stephen Harper because he represented a Calgary riding. I don't live in either of these cities.


It's not only languages. I used to check my weather at weather.com, but they decided to give me weather by default based on my IP address. They remember what locations I checked before, but they don't care and give me the geolocation result first.

Guess what, they're getting the country right, but they're a couple hundred kilometers off, which makes the weather information useless.

And back to the article topic, I'm in the camp that absolutely hates localized software. Translations are a lot more verbose than English and/or simply sound ridiculous. Please keep your site in English when you present it to me.


Maybe browsers should have an initial "choose your languages" popup that shows up after install. Then Accept-Language settings would become more correct and the need for weird guessing games would disappear.


Counter argument: American sites should try supporting a language other than English.

Many EU sites have multiple languages sorted into different flags up at the top of the page. Ours do not.


Using flags for language isn't really a great pattern. It kind of works if you only support a few languages, but when you support a lot you get into tough issues where many flags relate to a single language and many languages relate to a single flag.

http://www.flagsarenotlanguages.com/blog/why-flags-do-not-re...


Like most things, this is ordinarily not done when the economics do not appear to support doing it.


In the US, the local, state, and international language is the same thing.


There are thousands of languages the choice of languages to support logically ought to come from a cost benefit analysis of supporting a given tongue. European institutions are pretty much always going to be dealing with people that speak a wide variety of languages. Within the US we are talking about a market of 300 million wherein most individuals speak English as a first language or in addition to their primary language.

Doing business outside the US would almost certainly involve a lot more work than translating the website. This doesn't mean its a bad idea but its certainly a complicated decision.


Many countries have multiple languages (or scripts) unique to them. India, Spain, China are amongst these. You could use the Taiwanese/ROC flag for traditional chinese but you'd anger mainland China.


Please, don't use flags unless you want to bring politics into it.


its a visual representation of a language that often conveys information to people whom speak an unknown tongue. Given an array of choices people may be able to pick out the graphic quicker.


Would you like to not be allowed to do business in China? All you have to do is use the flag of the Republic of China to indicate traditional Chinese.

Use names of languages, localized into those languages, for the selection. Or if you must save space, use two-letter language codes.


> its a visual representation of a language

No it's not. It's a visual representation of a country, state or region, at best.


There are a few bad implementations of Accept Language parsing out there too. BrowseHappy is one, it gets the weighting wrong and displays the wrong language a lot.


Let's not forget the case of multilingual websites where one version may have significantly less or different content than the other.

Example: I visited a Swiss website recently that displayed itself in German by default (I'm in the UK), and also offered an English version with a warning that it is lacking in content and is not up to date.

So probably the choice of the language should be a combination of user preference AND website preference.


I live in Geneva, Switzerland, and I am tired of websites automatically switching to German (even Google). Geneva is in the French-speaking part of the country. Switzerland is trilingual. I prefer English, French is also fine, but switching to German while nobody here even speaks it...


> Switzerland is trilingual.

*quadrolingual

Don't forget about that pesky Romansh ;)


I wrote an article about the very same subject 3 years ago. Little has been done to make it better:

http://www.planetjones.co.uk/blog/27-04-2014/web-internation...


No, not everyone who uses browsers will actually go through settings and deal with this. Plenty of folks run browsers without the default language changed (it's a nontrivial procedure!), and they'd likely not look for the language tweaking UI. The browser UI language isn't actually too important -- all the important buttons these days are icons. The language you see Google in is more important.

Some UX could certainly be designed around this. Google could default to Accept-Language and say "Did you want Google in Language X" (in the IP detected language) in a bubble, with a link that triggers the language-setting UI (somehow). Or it could default to IP detection with an API for the reverse. The current situation of far too many people sending flawed `Accept-Language "en-US,en;q=0.5"` headers will have to be worked around somehow.

Google already suggests English when it detects that you've changed the language you use (I'm not sure if it suggests english when you are logged out and switch locations, or if it perhaps suggests whatever your Accept-Language is)


Imagine if the first time you opened your browser it had a big grid of flags/languages to choose from. This would be trivial to get users the right Accept-Language. You could even have it do this every time you open the browser if the computer is used by multiple people.


You are assuming the site would remember what language the users have told it to use.

YouTube, even after all these years, forgets this every 3 days, even when I'm still logged in. But it doesn't forget what ads to shove to me though.


The site wouldn't have to remember. It would get an Accept-Language header in every request, and should just use that.


Which is still the wrong way to go about it, unless the browser lets users easily set this per site, like how some browsers did for text encoding.


It's the right way to pick the default even now. Websites can still provide language selection. Although, yes, it would be better if there was a way to define Accept-Language on a per-domain basis (including wildcards).


I try to avoid Chrome but in the past I've used it to search with Google. I'll get "local" Spanish language results which Chrome then promptly offers to translate to English.


The rise of the internet was a great chance at making the world speak a common language, whatever language that might be. Instead we decided to localize it to avoid making people feel uncomfortable.

Localization is such a pain in the ass. When you are abroad you always get the the wrong language and many business sites try to force you into using a specific domain that does not even support english. Try reading dell.com in Europe.

I see so many people using mac OS and windows localized to their own small language with a few million speakers, making it effectively impossible for them to get support online when googling instructions is impossible because menu items you have to click do not have the same descriptions in different languages.

What is even worse is that sites like youtube have started automatically translating video titles into whatever language it thinks I want. Even if the translations were correct, which they never are, why in the world would I want them to be translated?

Localization needs to die and it cannot go fast enough.


Not sure why this got downvoted - it's a perfectly valid personal opinion and, albeit expressed rather strongly, doesn't seem to violate any HN guidelines. Have an upvote.


Last time I couldn't even find a way to get back to Google.com. It was constant redirects.


https://google.com/ncr (ncr == no country redirect). It'll also set a cookie that'll prevent the redirects in the future.


Google stopped respecting 'ncr' quite a long time ago. If it does still work for you it's a lucky coincidence. I've used ncr previously but it stopped working.


Except that somehow it doesn't work reliably.

This problem hits me every time, I know about /ncr, so I visit it, and then it works for a while. Until it doesn't. It's beyond frustrating.


https://encrypted.google.com seems to work better than /ncr for me


Query in Duck Duck Go, add a "!g" somewhere for it to query Google.


A bit off-topic, but I'm italian and despite my best efforts to use english as system language on my Windows installation, I still catch some programs using italian.

Where do they even get it from? Date and currency formatting settings? Timezone? I'm baffled.


Keyboard input language maybe? Is the Italian keyboard layout different?


So in the Google example, if I travel from the UK to Germany with Brisish English as my language.

Should I get google.co.uk, or google.de but in English?

I can see a few problems, such as some results not having English pages and possibly not being able to use local search.


One single language makes sense. Until we get Teilhard's unity. Or something similar.

Or Julian May's. The Pliocene saga was an interesting read I thought.


there is more then .de in europe and german is not german

for example: you have 3 complete different countrys which all speak german .DE .AT .CH

you need to handle taxes, currencys, even some special characters like: ß street = strasse (CH) = straße (DE,AT)

until they dont implement "choose youre country" on setup of any browser there will not be a replacement for GEOIP


> until they dont implement "choose youre country" on setup of any browser there will not be a replacement for GEOIP

There's "choose your country" on setup of your OS, and your browser is perfectly capable of picking that setting up and communicating it to the browser - there's a standard protocol for that.


most annoying is Google News when I dont want local news. Also YouTube


Most annoying to me is Wikipedia. It is almost never the case that I would prefer the Danish article over the English. Yes, Danish is my native language, but why would I want a 10 line article in Danish, when there's a 5 page article available in English.

It's not that I don't appreciate all the hard work the Danish authors put into the articles/translations, but I'm still left with an lower quality because of an assumption made by the Wikipedia site.

Of cause the problem is that even being able to weighting my preferred language won't help, because some sites I want in Danish, and some I would prefer to have in English, even if a Danish translation is available.


Why wouldn't you go straight to en.wikipedia.org? If you use a per-language site, Wikipedia never redirects you.


It's much worse on Xbox One. You have to change your country to something like the USA to be able to even SELECT English (the option doesn't exist for non-English speaking countries). And if you do that you can no longer pay because payment options are locked down by country, so you have to switch back to your original country to buy something. How can Microsoft blunder so horribly? How can anyone even conceive of the idea that people only speak their own language in their country? It is maddening.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: