Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

or

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

Or suggest a better idea.

share|improve this question
    
@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
add comment

4 Answers

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.

share|improve this answer
add comment

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.

share|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
add comment

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.

share|improve this answer
add comment

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

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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