I'm looking at potentially designing a site which will have 'mirrors' in multiple sites around the world. I am experimenting with the best method to help users change both their country and language of the site. (I don't want to combine the two, as they may wish to view the Italian site in an English language, or change the language of the UK site from English to Spanish, for example). Therefore I would like to have 2 seperate selectors: one for Country and one for Language. The Country selector is the area I am ideally looking for guidance on.

Of the available options the following are the most likely (although any other suggestions are welcome).

1.Choosing a country from a Dropdown is straightforward to implement and can sort countries alphabetically, but will suffer hugely from standard dropdown issues (lots of content--all countries in the world!--in a long list is hard to navigate and use).

2.Choosing a country from a Map is more intuitive, but selecting small areas of the map would be tricky (how do you pinpoint Ecuador exactly on a global map?) This would require a list of countries alphabetically too, which therefore takes up a lot of screen space.

3.Free Text entry field. I have not seen this approach on country selection before, presumably because of the difficulties in interpreting user entries efficiently.

Has anyone else had this issue before? and if so, which method of Country selection was found to be preferable to users?

  • 4
    – Erics
    Commented Nov 11, 2011 at 1:22
  • 1
    @Erics that's a great intelligent control, really nice idea.
    – JonW
    Commented Nov 11, 2011 at 10:06
  • Maps are tricky for people living in small countries. How many pixels for Singapore or Hong Kong? Also, there are political issues over borders and depending on your audience, not everyone is able to find their country on the map.
    – dbkk
    Commented Nov 12, 2011 at 9:16
  • If you're mirroring for performance reasons, why not redirect them based on IP? It only makes sense to ask if you'd be serving them different content.
    – dbkk
    Commented Nov 12, 2011 at 9:17

15 Answers 15


If you don't need to have a small selector on every page, than maybe you can do something like this?


Anyway, this layout can be on a rather small div which appears in the new layer above the page when a small button (or link) is pressed.

  • Yes, I am happy to take the user to a seperate selection page or modal panel when selecting a 'Change Country' icon. Apple's approach isn't a bad idea, provided we could change the order of the countries so that it is still alphabetic when presented in different languages. It's not as intuitive as a map, but it does get around the problem of having to select small areas on a little map diagram.
    – JonW
    Commented May 14, 2010 at 15:36
  • 8
    I really hate flags in country selectors. Just give me text, please. I can't parse a flag. Commented Nov 12, 2011 at 1:48

The best interface is no interface at all!

Have your site detect visitors' counties by their IP address. You can do this to 99.5% accuracy for free.


  • 7
    While this is certainly a decision I would like to make, it doesn't allow for the option to change country / language. You're just locking them into the choice you have determined for them. I would like to use a combination of auto-detection, but with the option to change the country / language at a different time if needed.
    – JonW
    Commented May 17, 2010 at 7:47
  • 3
    you can still offer them a dropdown to change the automated detection. (The dropdown is ok, it will be rarely used - 0.5% :) ) Commented May 17, 2010 at 11:34
  • 3
    Additionally you can select the browser language to determine the language for multilingual countries (like switzerland). For the case that somebody wants to choose another country or language I'd go with Adrian's suggestion and use dropdowns (I guess it's more than 0.5% because sometimes you don't want to use the country you're at). Also i would set a cookie if somebody changes the language or the country.
    – Phil
    Commented May 28, 2010 at 18:25

For international Websites I always propose the zero-click interface (as Pete has described). The browser's accepted language and IP address may result in a top 5 list of countries which can be at the head of an otherwise lenghty country selection page.

It is good practice to list each country/language in English as well as their native language, e.g "German/Deutsch" or "Japanese/日本語" (beware to use UTF-8 on your Web pages). If it is clear that the original page is in English, I would expect the English alphabetical order. For countries like Switzerland I would add all possible pairs (Schweiz/Deutsch, Suisse/Francais, Svizzera/Italiano).

Also be careful about using good maps: they can be politically tricky... esp. for Eastern Europe, China, or other areas. Which source do you want to use? When sober I usually know where I am and don't need a world map to find my home country, but I am happy to use them to find countries of which I am more ignorant.

From my observations users choose their native language or country and stick with their choice. They may switch to the primary language/country if they look for further or missing information. But they usually don't treasure hunt in other languages. However, that also depends on the content: Web analytics will show you how frequent users switch languages.

  • I agree with the map issues - certain countries may not take kindly to being shown so close to others. It's just a choice between a visual selection (map) versus a purely textual one (country list). A map would (in most cases) provide quick access to the desired location, rather than trawling through a long textual list of countries. However, I will not be going with the map idea, partly because of the issues you outlined, but also from an actual request from the client - which is probably more important! ;-)
    – JonW
    Commented May 17, 2010 at 7:53
  • Why do we need the English name of the target language? Wouldn't the name of the language in itself be enough? Commented Jun 17, 2011 at 22:59
  • 2
    @Bennet: My comment was more about choosing a language than choosing a country. If I select the language I want to see some messages in (which should be independent of the country I am in), I most probably know the name of this language in its own language. And there is not really a problem to sort words in different languages - "Deutsch" comes before "English" before "Francais". (If they use different scripts, sort by script first, or use simply Unicode collation.) Commented Nov 11, 2011 at 2:36
  • 1
    @Paŭlo I see. Yes, I tend to agree with you then: languages should probably be written in their native script, though it would be reasonable for an English website to also include the English name, e.g. "日本語 (Japanese)". Commented Nov 11, 2011 at 9:48
  • 1
    @Paŭlo I agree with you on sorting too. The point of sorting the list is to make it easy for people to find their language. In theory, sorting by scripts fails to do that: Unicode collation only yields predictable ordering if you know the Unicode collation rules. But in practice it won't matter unless the site supports hundreds of languages. Commented Nov 11, 2011 at 9:50

i found this on smashing magazine -

Redesigning The Country Selector


  • Exactly, I wanted to post the same.
    – Wousser
    Commented Nov 12, 2011 at 16:27

Free text entry fields are difficult as there are so many variations of country names (e.g. Great Britain, United Kingdom, UK, GB, England etc as well as language options Germany/Deutchland or Hungary/Magyar), then of course there are the spelling mistakes.

But it has been used effectively on many travel sites. Have a look of at Trip Advisor (http://www.tripadvisor.co.uk) that allows you to enter any CITY in the world. Using Ajax Live Search functionality could recognise all the different country names and at the same time handle errors in spelling.


Checkout www.3M.com. They do a nice job incorporating a lot of the methods described here. They show a list of countries by major regions. However, they also high-lite the country found based on the users IP address.

  • That is a nice find, thanks! It's quite a nice approach really. Perhaps if it chose that selection by default without the need to confirm, and it just displayed this pre-highlighted selection page if you decided to change country, that'd be the ideal mix.
    – JonW
    Commented May 28, 2010 at 15:28

You could try first to narrow by the continent, then provide a list of countries for that continent. Dropdowns can be hard to navigate with big chunks of data, but splitting them up can make it faster.

Another option is to try and identify the users country then offer an option to select another. A good example of this is www.aircanada.com

  • 2
    Helping to 'funnel' them down to their desired country by selecting a Continent first isn't a bad shout, although the tradeoff here is in the amount of clicks needed to get to the required destination. I'd look to ideally detect their country initially, and store it as a cookie for whenever the return, so the process shouldn't need to be repeated by the same user very often.
    – JonW
    Commented May 14, 2010 at 16:04

Set your main country as default and let chose from a navigation page listing countries. You can detect IP but some people have doble nationality or travel a lot or using proxies from other countries.


I don't think I have ever seen anyone have a problem with a country drop-down list. Do you not know where most of your audience comes from? You could just include the countries the majority of your audience came from if you knew that.

  • I'm afraid that wouldn't really be ideal in this case, as there is a good chance this site would be used as a template worldwide, so choosing only a few countries for the list would not really fit with the situation.
    – JonW
    Commented May 14, 2010 at 15:32
  • 1
    I often have problems with them. Am I in the UK or Great Britain? Maybe I'm in England. Having to scroll up and down 200 options from Afghanistan to Zimbabwe is just agonising. For Americans, it's not so bad as all common variations of the country name start with U (USA, US, United States of America etc.), but having to scroll down to near the bottom of the list is still a pain.
    – rjmunro
    Commented Nov 8, 2011 at 11:27
  • @rjmunro "Americans" usually refer to their country as 'America', though.
    – Pablo H
    Commented Mar 13, 2019 at 12:51

I think that getting users to type the 2 letter ISO/IANA country code (e.g. uk, us, ca etc.) would be the most efficient thing for them and for sites to use. I'm sure everyone who uses the net knows what the code is for their own country.

The problem is that it's hard to give the concept a name that would be familiar to most users. You could try:

Enter 2 letter country code (e.g. us, uk, ca)

And users may get the idea. Perhaps use IP geocoding to add the country they seem to be in to the list of examples & use JS to validate what they enter and expand the full country name.

  • That's an interesting idea but it does assume that all users know their two letter country code. For instance I wouldn't even be 100% of what my own code is; I'm in England is it GB or UK?
    – JonW
    Commented Nov 9, 2011 at 9:06
  • The UK is an extremely rare case where the ISO code (GB) disagrees with the IANA code (UK). But you can easily make either work. And UK is the most common because everyone is used to visiting .co.uk sites.
    – rjmunro
    Commented Nov 9, 2011 at 15:01
  • 2
    I think users are more likely to know the name of their country as opposed to the code. This smells of developer-driven UI.
    – Jon White
    Commented Nov 11, 2011 at 1:49
  • @JonWhite I know many names for my country. It's actual name is "The United Kingdom of Great Britain and Northern Ireland", although some contexts (mainly sporting) call England, Scotlan, Wales and Nothern Ireland the countries. There's obviously United Kingdom, Great Britain, Britain, UK, GB. Not to mention what should happen on non-english language sites. Should they use one of the above, or Reino Unido/Inglaterra, Royaume-Uni/Angleterre...
    – rjmunro
    Commented Nov 15, 2011 at 12:50
  • And I bet more people know the names you have described than GB. Devs are used to EN_GB, EN_US and are comfortable with them. I don't think normal users are.
    – Jon White
    Commented Nov 15, 2011 at 15:24

I like the zero interface idea mentioned by Pete. I think the language can still be up to them to choose of course.

How about using drop-down (I don't know if the Apple idea is very space efficient) BUT putting the countries most of your users come from at the very TOP. So say most of your users are in the United States, it doesn't help them if you do a straight up alphabetical list.


Free text entry fields and drop-down menus … you can have the best of both worlds with the Chosen jquery field. We started implementing these with a big uptick in usability in most areas. http://harvesthq.github.com/chosen/


Alot of interesting ideas and I would advocate combining a few.

Detecting is a great first step.

Providing a dropdown is simple to use, but turning it into a combo dropdown/autosuggest is even better. Such as this example from extJS (though I would suggest sticking to jquery) extJS combobox. One fix i would make to the ext example is clicking on the dropdown should invoke the dropdown and put focus in the field so the user can instantly browse or start typing.

To make this harder for you, but better for the user, ordering the list based on the detected IP either by its languages alpha-numeric, or by proximity. Also allowing the autosuggest to find both on 2 character country code, language spoken, or name would make this even simpler to use.

Taking it further you could combine the alpha sorting and proximity by listing some items twice in two optgroup sections ie:

Nearby Countries

 United States
 Rest of top 5 or 10

All Countries

 List everything here include those already listed in nearby countries

Go with the convention. Have a dropdown with list of all the countries. Users are used to this. And they already know how to select their country quickly. So it's not time consuming.

Eg. I'm from India and any time I see countries dropdown, I just select the dropdown, hit "I" on keyboard and Iceland gets selected, next option is India. This is super quick.

You can try different approach if you want to make it look visually appealing but from usability point of view, its better to go with well known pattern.

I would give second preference to Apple's approach. But there you should have both 1. Separate countries by Continent 2. Show Flag along with Country name for easier scanning.

Regarding map, I doubt all your users know how to locate their country on world map. It would be interesting to see the stat. If you get chance, you can do user testing with 15-20 users.

Regarding entering manually, I would say Yes and No. Yes if you make it auto suggest and allow user to select option from the suggestions only.


If you are in a position to collect the user's phone number, and can do so before you ask for address, you can determine Country (and State) from the phone area code, and pre populate based on that.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.