43

A website is available in 100 languages. There is a form to select a language, and it includes these 8

  • English
  • Русский
  • 日本語
  • עברית
  • العربية
  • বিষ্ণুপ্রিযা় মণিপুরী
  • მარგალური
  • አማርኛ

Normally, I would sort a list in alphabetical order. However, some of these languages aren't even written in the latin alphabet. I don't think you can sort items alphabetically if the items aren't even written in the same script.

How do you sort a list of languages?

9
  • 4
    Mu. Instead of displaying the entire list, why not display a hi-res map of the world and ask users to click on their language of choice? Based on where they click, you can offer a short list of options for confirmation. E.g. Click on California, get English and Spanish; Click on France, get French. Click on India, get Hindi and English; click on New Zealand, get English and Maori.
    – Bevan
    Feb 9, 2012 at 3:03
  • 14
    @Bevan: India has dozens of languages. Switzerland has 4. Belarus, Belgium, Kazakhstan, and many African countries have 2. You can't just assume that 1 country = 1 language.
    – dnbrv
    Feb 9, 2012 at 3:16
  • 6
    @dnbrv If you read my entire comment, I didn't make the assumption that one country = one language. I'm a New Zealand native - and we have three official languages: English, Maori and Signing (for the deaf).
    – Bevan
    Feb 9, 2012 at 4:42
  • 1
    @PeterOlson The prompt wouldn't be asking where the person is, but where their language is spoken - if your Yiddish speaker from Argentina clicks on Eastern Europe, Yiddish should be one of the languages shown.
    – Bevan
    Feb 9, 2012 at 4:44
  • 5
    @Bevan: What about a person that wants to use a language that is different from the official language in the country they live in? E.g. I live in europe, but I know many people from abroad (e.g. from China) that live here and want to use their native language. It will be very confusing if they need to choose China on a map while they are living in europe. Language and location are 2 different concepts, imo. Feb 9, 2012 at 9:41

7 Answers 7

27

There are several common options of sorting languages:

  • by importance (e.g. how many speakers use the service)
  • by English names
  • by latinized native names
  • by Unicode character codes (first languages with Latin scripts, then Greek, then Cyrillic, then Hebrew, then Arabic, then Indo-Aryan languages, then East Asian languages)

BBC World Service and Radio Free Europe/Radio Liberty sort by English names, which looks outright strange (BBC):
enter image description here

Wikipedia sorts by latinized names. Android sorts by Unicode.

Since the hardest sorting is by latinized names, here's the properly sorted list:

  • العربية [al-ʿarabīyyah]
  • አማርኛ [amarəñña]
  • বিষ্ণুপ্রিযা় মণিপুরী [Bishnupriya Manipuri]
  • English
  • עברית [ivrit]
  • მარგალური [margaluri]
  • 日本語 [Nihongo]
  • Русский [russkiy]

However, I noticed that you have Mingrelian language and Bishnupriya, which are a minority languages and are strange to be included anywhere else other than Wikipedia. Also, the common name of Bishnupriya is Imar Thar, so when it's written properly should be placed before Hebrew when sorted by transliterated names.

1
  • is there a resource somewhere that has a long-list of these latinized names? I have been unable to find it (other than going into each individual wikipedia page, and even then...)
    – joon
    Nov 7, 2018 at 11:54
10

By priority of usage based on your audience and the languages they speak. If its a US Site for English speakers, English should be first, etc.

Otherwise, potentially alphabetical by Nation (Americas, Asia, Europe..) and then languages within them, or write the language name in phonetic english and alphabetize with actual language in parentheses.

See Ikea, Nike or Jack Daniels for good examples.

4
  • Ikea splits by region then sorts by countries' latinized native names. Nike sorts by their arbitrary priority (Español precedes Deutsch).
    – dnbrv
    Feb 9, 2012 at 3:19
  • +1 for considering the particulars of the intended users. This might even mean for some communities of practice that languages get sorted according to geographical origin and not alphabetically.
    – Erics
    Feb 9, 2012 at 3:40
  • 1
    If the number of langages is reasonably small, by usage. If this would be too much, the regio and usage. Of course, the challenge is what language you write the region in.... Feb 9, 2012 at 10:00
  • A usable variant is by the estimated chance that your user will want that language, given what you already know about them. Consider browser language preference, geolocation, etc.
    – MSalters
    Jan 5, 2015 at 15:59
4

I'm just going to take a wild stab here and ask - why not use the Accept-Language header that the browser sends you? In the worst case scenario, you'll show the same language of the browser being used. When I go to google, I don't select a language. It selects it for me.

1
  • 1
    Yes this can be useful to set a default language, but some users may not have access to their browser settings (think public computers) and so it's helpful to have a manual override.
    – Simon East
    Jan 15, 2018 at 23:47
3

From a purely technical level, yes, you can let the machine sort it -- if the strings are stored in a database system or even a text file, the table or the text file will be using the same character set. Let's say this this list is all unicode; if your base server locale is en, then I think (I just did a quick test) the unicode sort would come out to be:

  • English
  • Русский
  • მარგალური
  • עברית
  • العربية
  • አማርኛ
  • বিষ্ণুপ্রিযা় মণিপুরী
  • 日本語

But from a UX perspective, you want the sorting to make sense to your user and not to the machine, so you could approach it like Wikipedia and others do, and order by English transliteration while actually displaying the localized language name (e.g. Русский is alphabetized under "R"). I've not observed users working directly with a list quite as long as the 100 you have, but my gut tells me that's a little long to have users scan through to find their specific language when it's ordered in a potentially unfamiliar way. Breaking into regions could very well help with that.

Something I've done in the past and has worked well -- but requires additional translation work for more localized strings -- is to localize the language selection menu based on the locale being viewed.

Your English menu would show:

  • English
  • Russian

But when viewing the localized Russian site, the language menu would show:

  • английский
  • Русский
6
  • 12
    Language names should always be written in the native script. A Russian speaker might figure out "Russian" in a list of language names but an English speaker will have a hard time finding "английский".
    – dnbrv
    Feb 9, 2012 at 2:51
  • @dnbrv I don't disagree in theory or as general practice, but there are definitely levels to which an interface will be localized, depending on audience, use, context, etc (the typical things). There are plenty of sites that don't localize their language lists at all (keeping them in the native language appropriate to the corporate home locale), which I am also not a fan of.
    – jcmeloni
    Feb 9, 2012 at 2:58
  • 3
    When a product isn't localized, that just means the owners don't care about international users. However, you're quicker to recognize a language in your native script, so using some other language to list all others is counter-productive. As an illustration, find English in these 4 without using a translator: ფრანგული, ჩინური, ინგლისური, გერმანული.
    – dnbrv
    Feb 9, 2012 at 3:28
  • 1
    @dnbrv I still don't disagree with you, except to note that there are situations in which the localization of a site includes translation of other language names into the base locale's language, and it's not weird or unusable. These projects were typically EMEA-based corporations in which shifting between languages was more...fluid? Common? Something. It tested well. Wasn't weird. Wouldn't be my first choice for general use, but is a valid option.
    – jcmeloni
    Feb 9, 2012 at 3:33
  • 3
    I always hate it when I change a language setting by accident and then the list jumps to the language selected.. now I have to find 'english' in hebrew.
    – rlemon
    Feb 10, 2012 at 3:17
1

Depending on who the site is for and how it will be used, it may be important that the languages are labelled both in the native script and in English (or other 'dominant' languages) so that speakers of the dominant language can refer people to the right script. This need became obvious to me during a project where help was being provided to minority-language speakers by people who didn't necessarily speak/read the minority language themselves.

In fact, this requirement also meant that the pages themselves were bilingual - but that's another story...

1

If there is enough room, you can group languages by alphabet type (latin, arabic, etc.).

In this way the user can ignore the groups of language names that “look like noise” to him and focus on few familiar groups. Alphabetical order can be preserved inside each group.

0
-1

Do nots:

  • Do not sort using unicode as this will result in an order unnatural to the user. (Ordered by charset number and not by actual name if name is non-Latin, resulting in an order that appears random for non Latin languages which all appear at the end.)

  • I would not expect to find a language I speak using the English transliteration, especially since it can be transliterated differently into different spellings with very different place in list.

Dos:

  • Use the language names translated to the current language for sorting.
    E.g. Arabic, Chinese, Hebrew, Japanese, Korean, Russian, Thai.

  • Include the language's name localized into itself for the language in brackets after the translated name.

  • Do include default language(s) at top of the list (preferably duplicated in alphabetic place too).

If you automatically choose a default language according to location, provide a means of switching language for tourists that can't read the local language. (E.g. change to English by clicking on UK flag a top of page.)

6
  • 3
    Where did you find these rules? Never-ever list language names in the current locale even with translation/transliteration because you don't know into what language or script to translate/transliterate. Please find English in these 4 without using a translator: ფრანგული, ჩინური, ინგლისური, გერმანული.
    – dnbrv
    Feb 9, 2012 at 3:26
  • This is basically the same as jcmeloni offered, only including non-translated name. The names will appear in default language e.g. English for sorting + in original language for easy identification, you could even add a flag. It is strange that neither jcmeloni or you (dnbrv) got simiular suggestions voted down. Feb 9, 2012 at 10:12
  • @rlemon I hate it when sites load in Hebrew too, I prefer they don't select a default for me. But when the site is in English and I want to see Hebrew (e.g. for street names in a map) I look for Hebrew, not Ivrit and not עברית in the list of language names. I have never changed language by mistake though, but I have looked for specs in Thai sites using google translate and found English in multiple sites by clicking on the flag of UK (or USA) on top. Feb 10, 2012 at 12:07
  • Given the unknown (which is what languages the user actually knows), Each language option displayed in its' language would be the most sensible. If you understand Hebrew you will notice עברית.. if you don't you will not. It is a case where an assumption has to be made, and that assumption should always favor the easier to not make a mistake option. (I will be sure not to click 'עברית' however 'Hebrew' might be mistaken for another language also written in english)
    – rlemon
    Feb 10, 2012 at 13:07

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.