I am trying to get an idea of what would be a better practice / implementation for the users of an application that I am going to localize.

Which would be better and why?

  • Read the culture info (preferred language) from the browser.


  • Have a language selection option in the application, commonly implemented using flags (icons) or a drop down.

Or suggest a better idea.

  • @S.Lott: I posted my comment as an answer per your request. FYI, I posted my answer as a comment because it is strictly an opinion I've formulated over the years. I guess if this is a common sentiment then, yes, my response was good enough to be considered an answer. – RLH Aug 31 '11 at 20:35
  • @RLH: Why is the "I posted my comment as an answer per your request" comment still present? It's irrelevant to the current question and answers, and very confusing. – S.Lott Aug 31 '11 at 21:08
  • Search on ux.stackexchange.com for more ideas. – ChrisF Aug 31 '11 at 21:12

If your target market is significantly from one region, stick with that region as the default and let your other users select their language from a flag icon, or clearly defined drop-down. I work in an environment (due to firewall/router restrictions) that have caused quite a few sites (including Google!) to force me to a culture that I am unfamiliar with. Don't try to get fancy. Provide the most common solution to your users and point them to another localization that they can choose to use if they so desire.

| improve this answer | |

The difference here is between being implicit or explicit.

Setting the default language based on browser's preferences is implicit in nature. I personally find it frustrating to always find myself at a localized Google page, while I'm used to the English version.

However, providing a list so that user can select an option from, is explicit.

AMAIK, W3C in all of its specifications, asks browsers (User Agents) to be user-centric and explicit when something should be based on users decision-making process. This issue I think falls directly with user-centric implementation. In other words, I think the UI language and culture is something that user should explicitly select.

| improve this answer | |
  • I disagree. Forcing all users to explicitly choose something when you could make a 95% accurate default choice is extremely user-unfriendly. The user has made his choice of language in the OS or when he chose which language version of the browser to install. He shouldn't have to repeat it for every single webpage out there. Those who want to change their language settings can explicitly do so. And why do you think the W3C defined the Accept-Language header? – Michael Borgwardt Aug 31 '11 at 21:13
  • @Michael, if we want to talk scientifically, I think the only way would be through an inductive reasoning based on the benchmarks driven out of an experiment based on a fairly large amount of users across many countries and cultures. This way, if 80% of the users end up preferring setting their language explicitly for example, my idea becomes valid, and if not, yours become valid. But I respect your idea. :) – Saeed Neamati Aug 31 '11 at 21:16
  • I cannot imagine how anyone could believe for a second that a significant (>5%) amount of users would prefer being forced to explicitly choose the language on every single website to having it automatically be the correct one. – Michael Borgwardt Aug 31 '11 at 21:27
  • @Michael, my native language is Persian. But I don't change every page's language to Persian, as I'm really more easy with English on the web. Also don't forget that Internet users are usually surfing mono-lingual sites (sites from their country, or English-only sites), which eliminates what you describe as language-change-per-site syndrome. I think a normal user may change language 2-4 times a day. That's not much. – Saeed Neamati Aug 31 '11 at 21:35

Do both: default to the language indicated by the Accept-Language HTTP header (because that's your most reliable information, much better than IP-Geolocation), but allow the user to choose a different language from a prominently placed menu, and remember that choice both in a browser cookie and in the URLs (so that it can be bookmarked and discovered and indexed by search engines). Here's an answer of mine where I give a details description how this can work.

| improve this answer | |

Use Accept-Language and any other quality info you have to display a best-guess default.
Display 2 languages if it's close
Let the user easily change language and order the choice by probability.

also, just to point out

localisation is more that just flags and languages.

flags = sovereign governments not languages, not geographic regions
1 gov can have many languages
1 language can be used in multiple(possibly mutually hostile) (or no) govs

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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