I've said it before, but after running into this question on the internet again I thought I'd reiterate the issue:
Never assume anything about language knowledge or preference based on geography, ever!
I will give out a couple of examples to hopefully make this issue clear.
Ubisoft released an Assassin's Creed game on Xbox which checks your Xbox Live country setting and decides what language is used based on that. An American living in Finland of course had their country setting as Finland, so the game was shown in Finnish. No selection for language anywhere. Just Finnish. Now, should this person go for Finnish lessons for a few years to be able to go through the menus, or should the game actually ask what language to use? I'd say the latter.
Reply from Ubisoft: just put your country to UK or USA or something. Yeah. Lie about your location just to get a badly made game to function as it should.
Interesting question: what language does the game force upon people in the USA? English? Spanish? Allows choice? I don't actually know, but would like to know. If it allows choice, why not elsewhere?
Xbox Kinect has speech recognition. You can set the language to English just fine, but if you are in an unsupported country, it will just not work. So Microsoft thinks that English spoken in Finland is not understandable, or not usable, but English spoken by the same person in the UK is just fine? What is the logic here?
Samsung "smart" TV
A nice new "smart" TV by Samsung is installed to use in Lithuania. Of course the terms and conditions, including privacy information is only shown in Lithuanian. Even if the menus etc are set to be in English. Because of course nobody would ever need another language in Lithuania. Everyone speaks one of the most difficult language in the world. Or nobody would ever immigrate there? In any case, totally bonkers. There should be at least an English version of the terms available.
How can anyone choose to accept a license or terms and conditions, or be knowledgeable of their privacy if they are presented with a 20 page text in a language they can't understand and which cannot be copied to an online translator, and which would also not translate nicely without a human translator?
I can't even count the amount of open source software (usually GTK based) that chooses on my behalf that I want Finnish language when I run it on Windows. My display language is English. My number and date settings are Finnish. My every setting about language is English. Still they decide that I want Finnish, because that was my location. Why? I would like to hear a single rational explanation to this assumption.
The worst case is Inkscape. It doesn't even allow selecting language. It just decides to use whatever it wants and if you don't like it, tough luck. You have to delete the translation files from the disk to get to English. If you rather want German? Nope, not going to happen.
(I'm sure some environment variables could be tweaked, but that's beyond the capabilities of regular people)
So, when you're thinking about should your app or game be distributed in separate versions to different regions or languages, I would give these guidelines:
If your app/game has lots of graphics, sounds or other large assets that change based on language, make separate versions. But make those versions available everywhere, regardless of geography. You can't decide that a Spaniard living in Korea can't have your app/game in Spanish just because he lives in another country.
If your app only has some strings and small assets, make a language selection. It's much easier usually and you will provide support for several languages without searching for separate packages. And your app/game will be available everywhere with all the languages.
But always let the user choose the language they want. Don't be the bad person.