Why geolocation based settings are bad
Just imagine travelling to Japan, having to look up some details about your trip, Google shows up in Japanese language. If you're lucky your phone has a translation service that can automatically translate websites. Or the website allows you to switch the language somewhere and you're able to identify the switch. Most websites have this switch at the bottom of the website. But some websites automatically load more content when reaching the end of the list which makes the language dropdown disappear while you're trying to switch the language.
Looking at most (99%) multi-language implementations, I am getting the impression that language detection and selection is implemented by developers who have never traveled to a foreign country. Therefore I'd like to appeal to everybody doing i18n to respect web-standards and use primarily the Accept-Language headers. Or at least make switching the preferred language easier.
P.S.: Sorry for typos (Android keyboard) and grammatical errors. Native German speaker here.
6 comments
[ 2.9 ms ] story [ 24.8 ms ] threadGoogle is the most annoying one because the change language setting is not easily findable and typically at the bottom of endless scrolling page. Slack is the worst one, you can't even find the change language option. The best is Apple implementation where it maintains the language but shows a little notification in browser offering you to change location and/or language. Amazon also does pretty decent job.
Twitter and Yahoo! News are also pretty bad. Yahoo! News will start showing the news from the location it last detects and continues to show even after you have left the location and haven't been back at same locations for years. Twitter email is nuisance in itself, and sets up alert for something specific at a location you haven't been back or have any further interest.
Just like in UX a flag != language.
Sites should honor the 'accept-language' header with the one exemption below.
In various regions users do have their devices set to some version of English (localization not be available in their language or of poor quality etc.) so 'accept-language' will likely be set to English. In those cases (likely language for country != English), I think it's fine to _ask_ if they want to change to the expected local language.
But in the end, if a users selects a language preference at any time, it should be saved to localStorage or in a cookie and respected even if other conditions change.
I'd like to add that with GDPR this could even have legal implications, when displaying the consent dialogue in a language the user doesn't understand.