I am using the IP address to detect countries, and browser headers to detect language. But when it comes to having the user override these, it would be good interface design to:
- let them select neigbouring countries on top of the list
- let them select languages by clicking on spoken language lists on countries
In order to avoid very long or multiple step (continent, country) dropdowns.
I know you can find ISO lists of countries, currencies, currency symbols en notation, but has this all been put together in some kind of package with an API?