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.
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.