My experience is that language/locale implementation for a big project is so complex that PMs like to handwave the language selection part away. On a recent project I had to go back and ask, "What if an english-speaking user is traveling in Germany, do we show them the German-language site? What if a German-speaking user is traveling to France, do we show them English (since we didn't have an FR localization)?"
Confounding the issue is that many implementations combine locale with language, which can be a problem if you have locale-exclusive features. As a made-up example, maybe Cortana's contract for stock data specifies it can only be used in the US, and you're a US-based Spanish speaker. But Cortana assumes Spanish == Mexico, so if you use Spanish now stock quotes don't work. It's really attractive to just call those problems edge cases to be worked out in the next release.
(I think Etsy handles this really well, you can specify ship-to location, interface language, and currency separately. Although for some reason they auto-detected me, in the Bay Area, as UK, EN-GB, CAD which was strange. Obviously some work to be done.)
How? Seriously, how? Assuming the browser's interface is in Chinese, the Accept-Language header should be set properly.
This can be trickier than it sounds. For instance, selecting English from a Japanese UI should be "English" not 英語. Conversely, from English to select Japanese has to be 日本語 not "Japanese".
Many features and recognition roll out to English (US) first and remain unavailable to me for a long time. I'm in Canada. It's the exact same language, just with some extra "u"s scattered around in the written form.
Well, because they should and rightfully so. You shouldn't have to select a language every time you start an app. Instead it should use whatever language was set on your system. Anything else just isn't intuitive and would add more friction before a user could get anything meaningful done.
The parent comment was referring to Cortana only working with English and thus assumes the user can't speak English as he has his system set to Spanish. That's an unfortunate edge case but one that could be overcome with advanced settings should they want to deal with it. But again, the anecdote is an edge case and shouldn't be used to go against best practices in regards to localization.
By all means, make a guess at what language to use, but always allow the user to choose in case you guess wrong.
The edge case of someone setting their device to a different language than the one they want to use in a specific application is not one of localization but of usability.
> By all means, make a guess at what language to use, but always allow the user to choose in case you guess wrong.
While I agree I wouldn't call it a guess as it's a setting a user set when setting up their device.
Many people outside of those know English well enough that they'd rather have a feature in English than not at all.
Also, many if not most applications and services that aren't billion-dollar businesses or otherwise have had insane amounts of resources poured into them have terrible localization. And even if the localization is good, it can be beneficial to use the English version.
English is the international language, it is taught to children all over the world, it is used in business, academia and so on, all over the world. You know that, everyone knows that, but sadly, to all-English dev teams, it is all too often an afterthought.
And that doesn't even take expats, travelers etc. into account, who might want to use their native language system-wide but need certain applications to use the local language, or vice versa.
Apple takes this approach with Siri, for example.
There's a simple explanation for that. Adding a UI may end up being much more involved than a somewhat complicated guessing infrastructure. And if that's fine for most of users, an organization might not care enough to make it better.
They are damned if they do and damned if they don't. If they don't automatically intuit users will call them lazy or declare it bad UX for not using the same language the phone is set to.
It baffles me that there are still so many services that try to 'automagically' intuit which language someone wants to have a service in, instead of just simply .. asking.
Google play is a prime culprit, for example, showing a mixture of language content on the play store. See also subtitles, dubbed content, books..
Another one - Sony's Playstation store, where if you choose a country, then the language (despite them having the assets available through their international presence) is permanently set and impossible to change.