views:

126

answers:

10

Every once in a while I'm confronted with displaying a list of available languages, and each and every time I ask my self:

Is it better to display the language in:

  • the currently selected language
  • English
  • in the language according to the button/list item

Examples:

  • English
  • German
  • French

or

  • English
  • Deutsch
  • Français

Is there any convention on which one should be used, is more polite or better in any other way? Are there other options?

A: 

Use country-flags in combination with the language name in that language (Deutsch, Francais, Nederlands, ...).

Patrick
This works for the many common languages, but note that there is in general not a 1-1 relationship between countries and languages.
JesperE
Yes, and depending on the language/country this might even become offensive.
DR
Living in Belgium I got used to web sites that offer me a dutch flag to click on if I want to choose the dutch language. That doesn't offend me anymore.Showing a Belgian flag is hopeless since we have 3 languages here (dutch/flemish, french and german).
Patrick
+5  A: 

I definitely think you should display in the language that matches the item in the button list.

Reasons:

  1. If it's not the language you're interested in, you won't mind if you don't understand it, as long as you can find your own language.

  2. Think about the last time you called customer service. How many times have you heard something like, "Para Espanol, marque dos"? It's very common, accepted practice to mix different languages in one UI (whether visual or audible).

  3. Think about how you'd feel if you went to a Spanish site, and you couldn't find your language under "E". Maybe, eventually, you'd notice "Ingles", and think it probably translated to "English", but it's definitely better to save the user the trouble of translating and mentally alphabetizing.

DanM
A: 

I don't know about any programming related conventions about this but i would prefer to see the name of a language in its own language. For example:

  1. English
  2. Türkçe
  3. Deutsch
erelender
+6  A: 

I would say it's best to display the language in "its own language" (option #3). You can not necessarily expect the user to know the currently selected language, nor expect him to know English.

What's tricky is how to display the "Select your language" button in a language neutral way. I usually go for a flag indicating the current language since that tends to get the message across eventhough there's not always a 1:1 mapping between country and languages.

Martin
A: 

Have a look at your Regional Settings.

This is how Microsoft implemented it. Seems like your version 1.

alt text

astander
But you can't change the language in Windows without a reinstall, so there is no risk of accidentally switching to chinese and then have to trial-n-error your way back :)
truppo
@truppo: I think Windows 7 can do that with language pack and there was limited support for that in earlier versions as well.
Joachim Sauer
+1  A: 

I find it harder to find "Magyar" in a list of languages.

Because there are languages with non-latin character set, this is not a simple first-letter-lookup, as I lose focus when I first meet one of these.

Where should I look? At 'M' - Magyar? But where is M? EDIT: M in the (current language's) alphabet, not on the keyboard.

Have a look at this (from Wikipedia):

  • Български - I know, this is Bulgarian, but
  • བོད་ཡིག - what is this?
  • Bosanski
  • Català
  • Česky
  • Dansk
  • Deutsch
  • Ελληνικά

I would prefer something like this:

  • A...
  • B...
  • C...
  • .
  • .
  • Hungarian (Magyar)

If the UI was Japanese, I would ctrl+f-ing "Magyar", though.

Vili
But the first letter of "Magyar" in Magyar might be pretty easy to type for someone who has a keyboard that's set up to write that language.
Joachim Sauer
བོད་ཡིག is Tibetan, apparently pronounced *bod skad*. :o)
deceze
+1  A: 

English language name:

Pros:

  • Predictable sorting.
  • No need to think about different text flows.

Cons:

  • Users who doesn't speak English might have ha harder time finding their language.
  • If the rest of the application is translated, it might look sloppy or grammatically wrong: Ditt språk är English/votre langue est English.

Language in its own name:

Pros:

  • Easier for the non-English speaker.
  • You have to think about encoding and text flow; A useful exercise. :-)

Cons:

  • Harder to navigate if the user is used to English or has her mind set on finding an English name.
  • You have to consider all language variants.

What is right really depends on the rest of your application. You might want to consider having all language names translated to all languages. If english is choosen, then you get to pick from:

  • English
  • Swedish
  • French

If Swedish:

  • Engelska
  • Svenska
  • Franska

...and French:

  • Anglais
  • Suédois
  • Français

But then the translantion problem has turned from O(n) to O(n^2), which might be acceptable depending on what your current value of n is.

EDIT

As deceze points out. you will also have to handle the case when a user accidentally switches to a language she doesn't understand, and provide a way back - for example by always including a few major languages.

Anders Lindahl
I'd vote against translating all languages into all languages. It's not only `O(n^2)`, but good luck switching to English when faced with the choice of 日本語、ドイツ語、ロシア語、英語. :)
deceze
Good point deceze, I'll edit the answer to reflect that.
Anders Lindahl
+1  A: 

Two options, first the name of the language in the selected locale or English, then the name of the language in itself between parens, or the other way around, e.g.:

  • English
  • French (Français)
  • German (Deutsch)
  • Spanish (Español)

or

  • English
  • Français (French)
  • Deutsch (German)
  • Español (Spanish)
fortran
+1  A: 

Whatever you do don't use the IP location to set the language.

Google is very annoying about this -- when logging on from a new location I get google in the local language and script. This is really annoying particularly, anywhere southeast of Croatia.

The worse offender though is Microsoft. When trying to purchase software thier servers keep switching languages depending on your location and in many cases makes it impossible pay for anything by Credit Card as the addresses and zip codes etc. are validated in the local format and not where your credit card was actually issued. ( By the way MS the first four digits of a credit card number indicate the issuing institution which is tied to a particular country so its not rocket science to work out a UK postcode format is required rather than say a six digit german ZIP code.

James Anderson
+1  A: 

The standard (in both senses of the word, i.e. what is actually used in the real world, and what the IETF/W3C/ISO says) is to use ISO 639-1 Alpha-2 language codes. Maybe augmented with either the full name of the language in English, the language itself, a romanic transliteration of the name in the language itself or any combination thereof.

So, to keep with your example:

  • [de] German - Deutsch
  • [en] English
  • [fr] French - Français
  • [ja] Japanese - 日本語 (Nihongo)
Jörg W Mittag