Hacker News new | ask | show | jobs
by jeroen94704 3350 days ago
"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.

3 comments

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.