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. - 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 ;)In population, no, the GP is correct.
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?
The Navajo Nation and Cherokee Nation both have flags to use that could theoretically be incorporated into Unicode if they didn't draw the line at National flags, but you could always draw flag representations in SVG instead.
But I also think this discussion has gone so far into the theoretical it's kind of ignored a very practical point: how many languages do you need to present in your software, because your software is actually localized in that language? Most software isn't going beyond the top two or three recognized languages in a given UN-recognized country (and even some of those are relatively obscure), and countries that have >1 languages usually share an official language with another country that uses it more predominantly. At this point in time, the economies of scale do not favor actually localizing software in 1600 different languages, so we don't. At all.
In fact, the usual pattern for developers from Europe and the Americas is to favor their dominant language and localizing in other dominant languages that originated in Europe and some of their more popular variants, and then maybe also some combination of Simplified Chinese, Traditional Chinese, Japanese, Arabic, Hindu, Urdu, and Korean.
So when you're presented with a number of languages and variants exceeding 30 in a list, flags probably aren't going to cut it anymore, but there's still some design space to use flags as language representations if you want.
There are over 30 languages in India with at least a million NATIVE speakers. 7 of those are in the top 30 most spoken languages in the world
And there's only a couple countries in the world where this is a serious issue anyway. It doesn't make flags a terrible idea for the rest.
Npm package: https://www.npmjs.com/package/react-lang-selecta Source code: https://github.com/MarcAbonce/react-lang-selecta
- I want proper English,
- and Proper SI units,
- and Euro as currency.
So I put myself in Dublin.Just let me choose ‘Netherlands - English’ and I’ll be on my way, please and thanks.
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?
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.
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?'.
Ideograms are fine so long as they can be replaced with a canonical word or phrase and still make sense.
Flags for languages fails that in many cases around the world- if I want to select Quebecoise French, neither the Canadian, French, or Quebec Province flags are appropriate.
Likewise, Switzerland has no official language, and many countries such as Belgium have multiple.
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.
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 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?
Crimean Tartars, by the way, are a great example of a people that have their own flag, despite that flag not being the official flag of any independent nation-state. If someone is a speaker of Crimean Tartar, and working with Ukrainian refugees, they should add that flag to their name tag too.
Seeing as you say you care about getting services to those people, let’s talk about putting your money where your keyboard is. Reach out via my profile and let me know how much you’d like to contribute.
You could talk about your experience, but you're not doing that.
And the claims they made about how much they care were not extreme. "Putting their money where their keyboard is" could be accomplished with $10. Would $10 make you happy or settle anything at all?
The above conversation is a good example of this. Ukrainian people are very patriotic especially now, and flags are a highly symbolic and meaningful subject. And not wanting to listen to “just don’t use a flag for languages”, which is a ridiculously simple ask, to then pretend it’s not a big deal for those who lost their homes and families?
GP has no idea what it’s like to be be in the exact case they claim to care about. So yes, I’ll take $10 for some drone parts, instead of trying to educate those who don’t listen to the simplest asks.
Your experience with flag use.
Your experience with people claiming to care about Ukraine isn't relevant because the above user only claimed that they care about it significantly more than a thing they don't care about. That's a super weak claim.
You're twisting it into a major claim so you can put them down for failing to live up to your standards of caring, when it was only a relative comparison.
> GP has no idea what it’s like
Which you are not trying to remedy. You are only trying to prove they don't care enough, as if that's going to somehow prove their original claim about flag use incorrect.
> I’ll take $10 for some drone parts, instead of trying to educate
Instead of? Does that mean no explanation even if you get them to donate?
> those who don’t listen to the simplest ask
Simple doesn't mean correct. Both sides of this argument are simple.
As an australian, when was the last time the Australian flag was the incorrect choice for you? I'm going to guess never.
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.
However, this is another reason why flags aren't a good choice for languages. It works for some of the main languages - German, French, etc. where there's a clear one to one link between originating country's flag and language.
It's less clear for English - the UK flag, the US flag, the Irish flag and apparently even the Canadian flag gets used.
It's basically impossible to choose a flag for minority languages, and many countries have multiple official and widely spoken unofficial languages. What flag should represent Balinese, for example?
I don't have a better solution, and if your site is translated to just a couple of languages it's fine. But I guess as machine translation gets closer to perfect and very cheap, it'll become more common to have lots of translations.
Unicode makes this hard (though it does provide the Welsh flag) but in principle you could solve this for some minority languages. For instance if you wanted to support Catalan, just use the flag of Catalonia, since they have one. You don’t need to have a country to have a flag, and you don’t need to have a country for your flag to become part of Unicode. Unicode has the transgender flag for instance. For Balinese maybe I would just use the flag of Bali.
But if someone said "I'm from Ireland", you should assume they speak English as their main language. Even if they say "I speak Irish", there's a high chance they're not fully fluent, it's an identity thing for many Irish people.
In any case, it's probably best not to read too much in to this. The whole point is that using flags to represent languages risks getting caught up in exactly this kind of minutiae.
The text EN is unique for English and removes all for it. Put a flag next to the text if you like.
The colour-based representation on their flag is similar to ours too, but with the colours reversed.
I did not know that. Always assumed there was a standard aspect ratio for flags.
obviously the British flag is for the least controversial option, Ulster Scots.
I don't see what the problem with that is. Universally understandable to anyone who knows the written version of their language
And it doesn't have to have every single language. There's over 7,000 languages in the world. It just needs to have languages for which content exists. For the vast vast majority of Wikipedia articles there are less than 10 languages available
There's also a search bar for filtering and it works with either the native or foreign name of the language. So, for example, typing "Finnish", "Suomi" or "Fines" (the latter is even misspelled, should be "Finés") will all filter out the right language.
Of course, there may be an edge case that's missing, but it's as close as perfect as it can get without reading the user's mind.
Take a look at tesla.com. The shitty CEO aside, the language/locale menu does it right: An understandable globe icon opens a menu, that menu is sorted by continents, countries and for those countries languages - with their name written in their local script.
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?
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.
It may be technically correct, but it's pretty obvious to people what it means. It's extremely common.
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.
Not to mention the software is translated into more (you can go to preferences to see the full list), wikipedia just makes the practical decision that there is no point having british, american and canadian english as separate projects, but you can chose any of them for the software interface (interestingly there are separate wikipedia projects for https://sco.wikipedia.org https://jam.wikipedia.org and https://ang.wikipedia.org)
Wikipedia has more languages then there are countries.
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.
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.
Having grown up in the South, the Stars and Bars would be a depressingly popular choice.
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.
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.
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.
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.
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.)
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.
Says who?
Probably not the actual users of websites, I'd wager.
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.
But why does it have to concern some Finnish online store that also has English and Swedish as options? Do their actual users really care? Because that is the litmus test, not the opinion of someone writing a blog.
Switzerland seems pretty easy -- French, German and Italian get the obvious flags, while Romansh gets either the Swiss flag or the Grisons flag. No?
> 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.
So it kind of seems to me like they've lost. They might be banging the drum, but in the real world the flags are useful.
Or are you claiming that they don't know what the French or German flags look like?
Despite two wars in our history, it does not bother me.
Because it's a language selection screen for fucks sake, I'm not marrying anything, or committing to a lifelong alliance.
If selecting the "wrong" flag makes you feel anything other than the mildest annoyance, seek professional mental help.
It's a pain to phrase, but: There is no reason to use the Swiss flag to indicate a language. French has the French flag. German has the German flag. Etc. There are dialects, as a nuance to this, but you can solve that by e.g. using a 50/50 merge of the German and Swiss flags.
Countries may have ambiguous languages, but _languages very rarely have ambiguous countries_. Sure, there are Finnish speakers in Sweden, but the Swedish flag remains a clear indicator of the Swedish language.
Hindi and India is the main exception to this. Arabic is also difficult, though Egypt seems to have a slight edge by convention.
> UX/UI designers have rightfully been banging the "don't use country flags to indicate languages" drum for literally decades
I sympathise, and if they have any better ideas than a textual list that users need to read through rather than quickly scan (not very good UX...), I'd love to hear them. From a _UX perspective_, is there something better than the flag cloud at https://nuenki.app for quickly asking "is my target language supported"?
Okay, which flag do you use to indicate https://en.wikipedia.org/wiki/Romansh_language — one of the four official languages of Switzerland?
> From a _UX perspective_, is there something better than the flag cloud at https://nuenki.app for quickly asking "is my target language supported"?
That flag cloud is actually hard for me to parse because where am I supposed to look for italian? I did find it, but I literally had to do a sequential scan because there's no apparent order to them. I would use a combo box searchable by: ISO language code, language name in english, language name in native language and script. It's clear what it's asking for, pretty much everyone is going to know at least one of the things it's asking for, it's not completely ascii centric. Flags can be added for some visual flair, and if you actually distinguish between (i.e. have different versions for) en-US and en-GB and en-SG, more power to you.
Tangential nit: nuenki.app shows the SPQR flag for (presumably) latin, but in the Language dropdown it's Latin (Classical) :classical_building::eagle:. Argh.
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.
EN - English
FR - Français
RU - Русский