In an interface that supports multiple languages, is it reasonable to show them by their language code, or should the full names be used?


Select Language:
En ❘ De ❘ Es ❘ Fr ❘ Pt ❘ Ru ❘ Zh

Or is it better to use:

Select Language:
English ❘ German | Spanish | French | Portuguese | Russian | Chinese

Personally I don't know what these language codes mean off hand, however - native speakers who are use the internet may be used to recognizing their own language (its often assumed that USD means United States Dollars for example).

This is technical documentation, however this may not be important.

  • 6
    Language full name seems much clearer. I think it mostly depends on how much language are available. With as many language as you posted, the full name make it much more clearer.
    – user83776
    May 18, 2016 at 13:08
  • 9
    To answer your question with a question: What's Zh and why do I have to look it up?
    – MonkeyZeus
    May 18, 2016 at 14:36
  • 4
    @MonkeyZeus, agree, however, maybe speakers of this language know what this means. Thats why Im asking the question.
    – ideasman42
    May 18, 2016 at 16:00
  • 5
    @tmcc flags are a poorer option. See Should I use country flags in language selection fields?
    – Ángel
    May 18, 2016 at 20:51
  • 3
    @chrylis why not the Irish flag for English, the Liechtenstein flag for Germany, the Côte d'Ivoire flag for French?
    – Jon Hanna
    May 19, 2016 at 14:33

4 Answers 4


It's a common pattern to use both, with following points in mind:

Design for the lowest common denominator

Assume that in the mix of language use and comprehension, many users will get confused with just the two letter codes

Avoid making the user think unnecessarily

In that case, that would mean including as much information as is reasonable. It doesn't take that much extra to use both the language name and the code.

The language selection should be in the language of the user

so 'Español - es', not 'Spanish - es'

The two-letter codes are a standard and should be lower-case

es, not Es or ES

So, ideally, your list should look something like this (formatting is a question of style):

English (en) | Deutsch (de) | Français (fr) | etc.

  • 28
    Two letter codes for languages (ISO 639-1) should not be capitalized. The canonical form is lowercase. Two letter codes for countries (ISO 3166-1 Alpha-2) should be capitalized.
    – Grodriguez
    May 18, 2016 at 16:03
  • 34
    +1 for putting the language name in the target language. If I'd accidentally switched to a Chinese mode, I'd have no idea that 英语 meant "English" (assuming Google is correct).
    – TripeHound
    May 18, 2016 at 16:11
  • 4
    It's worth nothing that sometimes it's nice to use the 4-letter codes for languages, as in en-US or pt-BR - there are cases that more than one country uses a given language and the dialects can be really different.
    – T. Sar
    May 18, 2016 at 18:07
  • 1
    @Abektes - answer edited to reflect your input
    – dennislees
    May 19, 2016 at 0:50
  • 1
    @ThalesPereira Personally i'd only display the dialect for languages where it's needed. Afaict english is mutually intelligable enough that only pedants bother with seperate British English and American English versions. May 19, 2016 at 13:49

If you need to abbreviate, they're the abbreviation to use.

If you've a technical audience, of a sort where knowledge of the ISO codes would be expected for their field, they're even more likely.

Any other abbreviations should definitely be avoided. I've come across plain confusing abbreviations the authors deemed "more obvious" before and it's a massive pain.

In all though, it's better to go with full names, but not in another language as you have in your second example. Would you have known to pick Béarla, английский, انگریزی, or 英語 to select English if that was put in front of you? Many English speakers wouldn't. And why should they?

Much better to go with:

English | Deutsch | Español | Français | Português | Ру́сский | 汉语

And of course, never use flags (I know you didn't threaten to, but people often do).

  • 7
    +1 for "never use flags". It's amazing how many developers fail to understand how offensive it is to have your language associated with the flag of a country that might be hostile to you. May 19, 2016 at 18:00
  • 3
    UK vs US are different tho... If I see a union flag, I'll expect £, dd/mm/yyyy, and no "z". If I see a US flag, I'll expect $, mm/dd/yyyy (total pita) and lots of "z".
    – RemarkLima
    May 20, 2016 at 7:47
  • 2
    @spraff the majority of countries in the world have predominant languages that came from a country with a colonial history in the country in question, and as such at least some there dislike. It's not the only reason to avoid flags. Ultimately national flags are symbols of nations, and nothing else.
    – Jon Hanna
    May 20, 2016 at 10:54
  • 3
    You don't have to go far from the UK for an example. What does a citizen of the Irish Republic think when the language he speaks is identified with the British flag? As for going far there's Australian English which is neither UK nor US. I'm told there is even such a thing as Indian Railways English!
    – nigel222
    May 20, 2016 at 15:19
  • 2
    @RemarkLima yes, if you wanted to indicate a country, then a country flag would indeed be perfect (assuming there's a textual backup for those who can't tell one flag from another visually due to blindness, colour-blindness, etc.). For a language, not at all. For a language and country combination, it can only be part of the solution.
    – Jon Hanna
    May 21, 2016 at 17:08

If user needs to input with keyboard, I think that the two letter combination will be efficient but there are also three letters as option. Also check ISO 639-1 here

Using and searching for standards are important.


Is it reasonable to use language codes? Yes. Probably. They're fairly recognizable. Is it better to use the full names...? "Better" is contextual.

It's good of you to mentioned that the context is technical documentation, and since that's the case I would posit that, while the full names may be prettier and slightly more informative, they are not necessarily "better".

Language codes will be recognizable as such in even moderately technical material, a users' manual for instance, and the actual meaning of the codes should be recognizable to the speakers of that language. And if you have any fear that they will be received with any uncertainty you may include the full names (in the native language--not using the English equivalent as in the example from the original question) as a smaller sub-heading or on hover, or some such device, depending on the capabilities of your medium.

Another advantage is that language codes will scan faster than the full names. They can be used almost as an icon would, allowing near-instant recognition of a basic significance, and don't need to convey much meaning of their own.

They're easier to keep out of the way, as they are so concise, which is a plus as once one has found the language he is looking for he doesn't need them anymore.

Finally, in some contexts, it is possible that they are less ambiguous than full names--there are 3 Norwegians as I understand--as they are a standard and thus designed to exact.

The only caveat that I might include is that depending on the perceived literacy of the audience you may need to consider languages which to not use a Romanesque alphabet, but again, you're asking about technical documentation, so likely the user has been well exposed to our characters.

  • 1
    You are supposing that by "technical" the OP means an Information Background. That's not necessarily true - several technical jobs don't really have any need to understand foreign languages codes.
    – T. Sar
    May 18, 2016 at 18:11

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.