back

by tobr·1y ago·view on hn ↗
Since the article mentions using flags to represent languages, I feel obliged to point out that flags do not represent languages, so probably don’t use flags to represent languages.
12 comments
But flags almost sometimes map roughly to languages within my limited experience! For example there's only one kind of English and it belongs to the USA. Also Spanish, that must be USA too, even if some unimportant countries speak it. Brazil can have Portuguese because I don't know where Angola is. The Indian flag can represent Hindi, but also the 22 scheduled languages, but not the other official language because I already allocated it.

This is going pretty well, but seems tedious, so for all other cases let's just merge ISO 3166-1 alpha-2 and ISO 639-1 as follows:

  SELECT 
    c.code AS common_code, 
    c.country_name, 
    l.language_name
  FROM iso_3166 c
  INNER JOIN iso_639 l
  ON c.code = l.code;
And if they don't speak Afrikaans in Afghanistan or Arabic in Argentina then you'll have to take it up with the International Organization for Standardization.
So

    - for English, I'll use the Jamaican flag.
    - for Russian, I'll use the flag of South Ossetia. 
    - for German, I'll use the flag of Austria.
    - for French, I'll use the Malinese Flag.
    - for Dutch, I'll use flag of Suriname.
just see how happy people are with this ;)
No, for English you should obviously use the flag of the largest country that uses it as an official language: India.
That's not the only issue. India has over 1,600 native languages and 22 "official" ones. Which language would a country like that represent?

What about colonial nations like the US or most of South America. Do the native languages not get a symbol because a colonial history resulted in a foreign language being the dominant one?

Sorry for the shameless plug, but I already made a reusable React component for that in case anybody needs it for their business:

Npm package: https://www.npmjs.com/package/react-lang-selecta Source code: https://github.com/MarcAbonce/react-lang-selecta

As a Surinamese Dutch person, I fail to see any issues with this approach. ;)
Joking aside, I have heard of people deliberately doing a sort of inverse version of this. For example, if you live in Barcelona then Ubuntu's installer will detect you as being in Madrid's timezones and wanted to use Spain Spanish locale. If you insist that you're in Andorra you get an equivalent timezone and the Catalan locale (which is the preference for a lot of people, despite the bizarre way of reporting time).
We had a good budget for localization at my previous place and had like 10 Englishes and some countries had both their local language and English as options.
Oh man, international corporations forcing me into the translation of their website is a huge pet peeve of mine, as the translation is usually poor.

Just let me choose ‘Netherlands - English’ and I’ll be on my way, please and thanks.

Nice. Even Japan (jp) and Japanese (ja) lose out with this.
"I represented some things with wrong symbols and it didn't work well, therefore the idea of using symbols to represent these things is wrong"
I feel obliged to point out that while flags do not represent languages perfectly, there is no good, user-facing symbolic alternative for languages.

No, people don't know the ISO codes for their languages.

No, you can't use the full name, since some languages have very long names.

No, a single 'languages' icon isn't enough, you often need to symbolically represent individual languages.

For the most common languages, flags are fine.

Edit: I'm amused by the amount of replies that assume the only context that ever requires symbolic language representation is websites. Awesome, how do I add one of your JavaScript language drop-downs to a physical product label? Or an airline steward's name tag?

> No, people don't know the ISO codes for their languages.

As a canadian, i know what EN means. However when sites use flags its a mystery. Am i supposed to pick canada or is that "canadian french". Maybe im supposed to pick the american flag, but eww feel like a traitor and i want the u's in my words. Is it the british flag? I have no idea. Flags for languages are stupid.

Not to mention for all those languages that are not the majority language in any country.

> As a canadian, i know what EN means. However when sites use flags its a mystery.

As an Australian, I somehow manage not to be entirely baffled by a US/UK flag icon in a language screen.

> Maybe im supposed to pick the american flag, but eww feel like a traitor and i want the u's in my words.

The purpose of a language selection screen is not to stroke your ego?

Just wait because all official EU sites now use the Irish flag to represent English, and it's getting more common in other websites made in Europe.

As an Irish person I can't help feeling a frisson of satisfaction.

But as a developer, this is just asking for confusion, especially since the Irish flag is already confusing enough.

I mean, we could have a beautiful white harp on a green background representing Irish culture. The Welsh got a dragon...

But no, it's a political statement from 120 years ago represented in three boring vertical stripes, just like everyone else's flag. It's identical (ok, mirrored) to the Ivory cost flag. It's the same three colors as the India flag, rotated 90 degrees, which itself is very similar to the Niger flag. And if you squint, or just don't know your flags well, it could easily be the Italian flag. It's a terrible choice to represent a language.

> Is it the british flag?

obviously the British flag is for the least controversial option, Ulster Scots.

Places like Wikipedia have a list of languages spelled out in the orthography most used for the written version of that language.

I don't see what the problem with that is. Universally understandable to anyone who knows the written version of their language

That's great unless you're scrolling through 200 languages trying to find yours and can't figure out how they're sorted. Remind me again, does မြန်မာစကား come before or after चम्बयाळी ?
Google Translator lists languages' names, and the list is pretty reasonable. I'm confident that designers could make it work even on interfaces where the language is a more subtle option.
> No, you can't use the full name, since some languages have very long names.

Yes, every language has a name and you can use that. If you prefer an imprecise flag over the actual name of the language then what you're saying is that you prefer style over substance. There's always space to show the language name.

Are you seriously arguing against the use of ideograms? User interfaces without them would be unusable.
There’s really not.

I frequently travel in places where I don’t speak the primary language — and having to hunt down a menu in a language I can’t read sounds a lot worse than having a flag I know visible on the main page.

Why did you use letters to send your reply? Letters are a symbolic representation of language, but they are imprecise. I don't know the prosody of your utterance, what tone you used, what accent you're speaking, etc. This is unacceptable and I am very offended. /s

Symbols are useful. You can quibble over the symbols chosen (they don't seem to do a lot of physical weighing in courts?), but that is fundamentally besides the point, which is 'how do I convey this widely understood concept in a limited amount of space?'.

The browser or the host system usually informs you about the language. Apple and Google solved the rest by using geofence data. If you have a menu/screen to select the language, you can write as much as you want and have overflow for the long list. Order them by current language based on collation, and done. People want "language" to be too accessible when it doesn't need to be. Also, see amazon.
I develop a language learning tool that uses flags for languages extensively.

I know that they have flaws. The problem is, there isn't any better pictorial representation, and they work well enough that it's better than not having one.

For some languages they work very well (e.g. Swedish), for others there may technically be ambiguity but it's clear enough (e.g. the Union Jack for English), and some are more difficult and rely on convention (e.g. the Egyptian flag for Arabic).

The landing page (https://nuenki.app) has a cloud of flags of the supported languages. It's an information dense, easy to scan way of seeing whether your language is supported. Sure, it's not technically 100% accurate, but what's the alternative?

Flags for languages dont even work with one of the largest countries, India. They have about 20 official languages that var greatly.

Then of course the multitude of languages spoken in many european languages such as Spain (catalan, gallician, basque). Or the latin american variation.

Or what about Switzerland who dont have their own language (they speak french, german, italian and romanch).

Even your example of Sweden is naive, as we have Swedish, Finnish, Sapmi, Meänkieli and I would argue Älvdalska is another proper language too, even if it dont have official status.

Its a very flawed idea and no matter how pretty it may look, it cant map to reality and is just misleading at best.

India is definitely a difficult one. I'm using it to represent Hindi, and that's the one that makes me the most uncomfortable, because there are so many languages. I think the intent is reasonably clear, but if all countries were that ambigious, I'd avoid flags.

Nuenki supports European Spanish (though now you mention it, I ought to make that clearer). If it were American Spanish, I'd probably use Mexico. I handle Portuguese that way.

Switzerland is easy, because I have no need to include their flag. German is covered by Germany (yes, I know of Austria), French by France, etc.

And I'm highly unlikely to add Romansh, if only because it'd be very difficult to translate with good quality. I would if I could though, I find it fascinating. For a flag, I'd find an online Romansh community and ask what flag people would find most respectful + representative, or if people would prefer I forgo it.

You argue that it's misleading. I see where you're coming from. It isn't perfectly explicit and unambiguous. However, I don't think it's misleading in practice.

Nobody looks at a Spanish flag and thinks it's denoting Catalan - I'd probably use a regional flag there - nor do people look at a Union Jack or an American flag and go "no idea what that's for". When looking to see if Nuenki supports Finnish, nobody looks for the Swedish flag. They look for the Finnish flag.

People know what the stereotypical flags are, particularly when they're learning that language.

So imo it's about absolute precision vs UX, and the UX of reading through a textual list of languages is awful. It's a complete pain to scan through without any kind of visual indicator. That's why, in practice, everyone uses flags.

I didn't previously use flags so widely. Adding them everywhere (e.g. the dropdowns on the demo) was a result of feedback from people who felt it would make it nicer to use. Also, they're generally alongside the full name (aside from the aforementioned cloud), to clear up any ambiguity.

> Flags for languages dont even work with one of the largest countries, India. They have about 20 official languages that var greatly.

Curious, do Indian websites just never use flags then?

Or do they use flags for the states within India?

Because at a quick glance, it seems like there is a general mapping of languages to one or more states:

https://en.wikipedia.org/wiki/Languages_of_India

https://en.wikipedia.org/wiki/States_and_union_territories_o...

Very similar to the world situation.

I don't think anybody claims that it is not a flawed idea. From what I understand from this thread, people who use flags to represent languages fully acknowledge that it is a flawed idea - the problem is that they lack an alternative solution in some contexts (for example, those that require high information density).
However, the mapping normally is from language to flag, not the other way around.

German -> Germany, French -> France, Swedish -> Sweden.

It's not perfect, but 99% of times it communicates what is meant to communicate, which is more than what you can say of many icons.

In your experience, what's the better option for an iconographic representation?
Give me one example of a website that supports, let's say, three of the 20+ Indian languages, Catalan, Galician, Basque, Swiss French, Swiss German, Swiss Italian, and Romansh.

You will have a hard time, even on Wikipedia.

For most people, flags absolutely are the best shorthand for the language of the same name.

I checked the website and, at least at the combo box on the landing page, it already has the language name! I guess that you could just go without the flag there, and it'd still work. I'm curious though, what flag would you use for English? Would it depend on whether you spell gray or grey? Duolingo uses the United States of America flag, so there's that.
> I feel obliged to point out that flags do not represent languages, so probably don’t use flags to represent languages

I feel obliged to point out that majority of engineers get stuck in 3-hour-long meeting discussing corner cases "is Okinawan a separate language" or "what even is a language", while refusing to address the business problem at hand, which is "I want my European user to pick between Italian, French and Spanish". I used to enjoy these "yes but technically no" discussions, but then I understood they never lead anywhere, because they're about solving the problem in some imaginary world that only exists in some people's heads, rather than the real one.

The truth is that there exist situations where using country flags is effective means of communicating the idea of a language. You might not like it, but that's how it works.

As someone who uses websites, if you're not going to respect the browser's language setting (and most websites don't, for good reason) then please use a flag so that it's easy to find where I can switch away from your incorrectly-geodetected language setting. Flags do in fact represent languages, in that they are understood to denote languages, even if some people think they shouldn't.
But as long as languages don't have any symbol, and symbols help with recognition, is it maybe just a lesser of evils?

It's clear that English originates from the UK and Portuguese originates from Portugal. Not to mention that sites often do have country variants -- the Brazilian Portuguese gets the Brazilian flag. And if a site is only for US and Mexican customers, a US flag makes sense rather than UK because it'll also use US currency.

And a flag icon also helps your eye quickly find the localization drop-down mixed in with a bunch of other stuff in the footer.

Should there be emojis to represent languages? Maybe it could be a new group. I'd rather not use the flag shape, maybe a circle with the 2 letter code and a background with the colors from the flag usually used to represent that language, mainly because people is already used to scan the lists looking for those colors.
It would be great if there were. I decided to see if such a thing existed and came across the Flag icons for languages page[1]. There is an absolutely hideous French, Belgium, Canadian mix flag so the bar for language emojis is very very low. In other words, it should be easy to do better.

1. https://en.wikipedia.org/wiki/Flag_icons_for_languages

no, cause nobody would understand them. Words exist, and websites that needs to show a lot of languages (google translate, deepl, wikipedia etc) just show you a list of names. It's really the easiest solution, cause people are _also_ really used to scanning text for their own language.
I really wish there were. It'd make things a lot easier for me!

There aren't really existing unambiguous language icons, at least for the majority of languages, so it'd be less about making them a formal emoji and more about actually inventing + "legitimising" new icons so they can be broadly and uncontroversially used.

I doubt that'd happen in practice - there just isn't a pressing need, and you'd need an enormous (and likely controversial) public education campaign to make them adoptable - but it would be a neat design problem. r/vexillogy would have a field day.

Yeah, but there is definitely no better option.

If I come across a site that is not in English, but I see a little flag somewhere, that is a very good indicator that that's the place I can go and change the language to English.

(Happens a lot more when you're travelling in a non-English-speaking country.)

https://languageicon.org/ strikes me as a plausibly better option for the scenario you describe.
Doesn't really make a great case. I obviously recognise both the union jack and American flag as "English", and nobody would expect it to mean Welsh. Also there are approximately no people that speak Welsh and not English.

It's one of those "yes technically you're right, but actually it still works really well in practice so sod off" things. It's like saying tomatoes should be in the fruit aisle. No thanks. Sometimes utility is more important than anal correctness.

> I feel obliged to point out that flags do not represent languages

Says who?

Probably not the actual users of websites, I'd wager.

Say people from countries with multiple languages.

E.g., Switzerland has four official languages, none of which are English.

Also, UX/UI designers have rightfully been banging the "don't use country flags to indicate languages" drum for literally decades, now. We dealt with this issue in the 90s.

On the other hand, this is very helpful when things are already in a language you don't understand.
One of my favourite newly discovered YouTubers, K Klein, talks a lot about language.

What sold me to subscribe to his channel is this absolutely wonderful bit with flags at 4:30:

https://youtu.be/iQNdkdqoIdw?t=4m29s

Flags aren’t languages. Listen to your elders.

Short of web standardization, how should a language picker be designed for a website where presumably the main design goal is a non-default-language speaking user can pick out their language?