Stop Guessing Languages Based on IP Address
medium.com
medium.com
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.
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 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.
> 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.
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.
I've never found sites that actually use Accept-Language properly, so I care as much if that works well.
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.
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".
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'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.
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.
So they have the technology to do cross-script indexing in Japanese for maps, they just don't use it?
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.
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.
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.
And that's all my original post talks about — defaults. I never said you shouldn't be allowed to change them.
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.
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.
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.
* 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?
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 "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.
Mumbai is a complicated case to deal with.
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'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.
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.
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'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?
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.
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.
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.
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.
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.
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.)
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.)
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.
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.
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 suspect it's partially because I'm much better at noticing bad $NATIVELANGUAGE than bad English.
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.
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).
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.
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.
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?
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".
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.
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.
Whatever the accept-language header is set to.
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
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.
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.
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.
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.
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.
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.
Another common problem.
http://searchengineland.com/google-ncr-no-country-redirectio...
Despite the positive worded arricle, apparently Google hasn't brougt /ncr back yet.
Even when traveling abroad I get the problem since mobile connections are now tunneled to your home country. In France, I get German pages!
But google is by far the worst, since I'm always logged in but switches languages based on IP.
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]
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.
The issue here is making assumptions on the human and her intention based on the computer and its network supposed location.
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 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...
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.
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.
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.
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).
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.
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.
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.
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?
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.
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).
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.
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.
Many EU sites have multiple languages sorted into different flags up at the top of the page. Ours do not.
http://www.flagsarenotlanguages.com/blog/why-flags-do-not-re...
Use names of languages, localized into those languages, for the selection. Or if you must save space, use two-letter language codes.
No it's not. It's a visual representation of a country, state or region, at best.
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.
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.
*quadrolingual
Don't forget about that pesky Romansh ;)
http://www.planetjones.co.uk/blog/27-04-2014/web-internation...
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)
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.
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.
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.
Where do they even get it from? Date and currency formatting settings? Timezone? I'm baffled.
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.
Or Julian May's. The Pliocene saga was an interesting read I thought.
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
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.
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.