Not many languages have some official flags though. There is one for Esperanto and Francophonie for example. But while anyone speaking Esperanto will certainly recognize the green flag, it's more dubious that most users would recognize the flag of the OIF.
https://commons.wikimedia.org/wiki/File:Flag_of_Esperanto.sv...
https://isolatedtraveller.com/flag-of-organisation-internati...
And the top 3 in China are in the top 10 worldwide if you split up Cantonese (which is mutually unintelligible from most Mandarin languoids)
It's like Java and Scala both compiles to JVM bytecode.
(yes I am aware hk people chose to write 粤语白字 in a particular way, because the orthography movement failed in the 70s)
With some CSS you can make it indistinguishable from an icon
I feel like a globe icon is much more obvious.
It's really annoying when they give you a loong list of countries or languages and you have to scroll through it until you get two pages past the target, then scroll back slowly until you get to one page before the target, repeat until you finally have it in sight...
What I tend to do is have a dropdown with a country icon and language name localized to that language for each language. My pet peeve is trying to switch a website from a language I don't speak into one I do speak and the dropdown listing "Dutch" as "Néerlandais" or whatever instead of "Nederlands". I don't speak french, why would I know what dutch is called in french?
I do think it might be conceptually possible and intellectually funny to come with flags that are generated from some pattern that some corpus of languages exhibit. Be it sui generis through some LLM, or relying more on scholar lexical/syntactic categorizations, or even something really more trivial like using a language-code[1] as entry.
On the other hand, with such an approach I’m afraid that chances are low that we can gain any adherence and a large recognition of the resulting flags from their speakers.
To my mind the best approaches as of today where already exposed in this thread: something best effort to propose the most likely user recognizable language and a clearly visible option to open a locale selector. If iconography seems a must have in the UI, showing something like a A/あ icon is rather usual by now.
This is the kind of thing that works great for a while, and then an OS update flips the table on how RGB subpixel antialiasing works for the subset of your users with a certain type of display, leading to a false positive all of a sudden.
Chrome could at least expose support like other feature detection APIs, even if they don't go so far as to provide the flags, to avoid this ridiculous heuristic approach.
Aside: my personal belief is that the political charge here lies with Unicode having codepoints for such countries, and downstream dependents of Unicode can readily point the finger. Displaying monochrome text of a country abbreviation instead of a flag doesn't seem like it would appease those who don't want the country acknowledged, anyhow; a "missing glyph" type of thing would come closer.
Unicode has decided flags shouldn’t be part of Unicode.
There are a few flag emoji that got included before they reached that decision and there are “regional indicator symbols” that often get displayed as flags, but that’s it. They won’t, for example, include flags of cantons of Liechtenstein.
See https://blog.unicode.org/2022/03/the-past-and-future-of-flag....
https://github.com/unicode-org/cldr/blob/maint/maint-41/comm...
You can see the country names alongside the codepoints here, ctrl+f for 'taiwan' and 'palestinian territories'
Flags are Political Symbols. ISO Country Codes are not. People rally around flags. Flag color symbolize beliefs/ideals. Flag crests and images contain political messages. ISO Country Codes are just a couple of letters that might (but not necessarily do) reflect a Country Name.
It's generally not just "don't want the country acknowledged", it's "don't want dissidents rallying to that flag". For instance, the parts of China that believe Taiwan is and always shall be a part of China don't have a problem with naming Taiwan as such, they see that as the "province name"; they do have a problem with the national flag of Taiwan, which intentionally represents and symbolizes its independence from China.
I can't blame Microsoft for not wanting to support flags. Politics are hard. Flags can be the hard mode of Political Symbols.
(Also Microsoft's stance is interesting in the way that it came from that Windows 95-era map-based Time Zone picker. The number of lawsuits they had over effectively "single pixel" border disputes was absurd. Flags are way more political than borders.)
I see your point that flags elicit a different reaction out of people than territorial classifications, but simultaneously it seems to be the classification which elicits disagreement. "You can call it a country so long as you don't assign a flag" seems like the wrong place to draw a line in the sand.
Presumably, provinces can have flags!!
Android is an OS, Google is responsible of it, so they get to decide what goes in their fonts.
To me this just isn't worth the cost.
Chrome relies on the os certs.
I think that's the correct way how software should works.
>Standardizing the set of CAs trusted by Chrome across platforms through the transition to the Chrome Root Store, coupled with a consistent certificate verification experience through the use of the Chrome Certificate Verifier, will result in more consistent user and developer experiences.
https://blog.chromium.org/2022/09/announcing-launch-of-chrom...
Wait. I thought Windows has ClearType which could render black text on white background using colors. And furthermore there is a wizard to allow users to adjust how much ClearType adjustment there is. This feels like a totally incorrect solution.
And apparently starting from 2021 Microsoft Edge did in fact begin to use ClearText according to this article https://blogs.windows.com/msedgedev/2021/06/02/improving-fon... from Microsoft. So the author's approach would be broken in Microsoft Edge since 2021.
https://github.com/talkjs/country-flag-emoji-polyfill/blob/5...
Just randomly sharing, the part of the trick I like the most is that it renders the emojis scaled down to a 1x1 canvas, so it renders just a single pixel. That makes checking stuff like "am i not accidentally reading in the transparent area of the glyph" and stuff like that no problem, because the whole emoji is blurred down to a single pixel.
The author's example is a bit weird in this regard, it does the same trick (set the canvas width and height to 1), and then it still loops through all 1 pixels and discards any transparent ones.
This is so real.
Ask about Fibonacci? Great.
Ask about something tricky? Let's make up some APIs
Heck, even pasting the "prompt" into non-AI Google and Bing worked.
Not everyone has the time or the inclination to keep a stable of local llms (and update them regularly, for example). Some people have other hobbies.
> Heck, even pasting the "prompt" into non-AI Google and Bing worked.
What? It's been years since a regular search got you anything but spam from the usual tutorial farms.
In Bing Maps, I expect them change country borders based on localization settings, but that was probably too onerous to implement and test in the Windows 95 days.
They didn't actually remove the map - they just removed any functionality it had. So the time set window is massive for no reason, it contains this huge world map bitmap that no longer does anything.
Either you chose sides, create different releases of software for some countries (deployment nightmare), or just remove such „sensitive“ features.
https://www.usatoday.com/story/tech/2025/01/28/gulf-mexico-g...
The author mentions a polyfill [1] and the fact that they dislike it's using a CDN. Fortunately, the polyfill can be configured to use a local/self-hosted font:
> polyfillCountryFlags(fontName?: string, fontUrl?: string)
Here's how I added it to my Astro landing page: https://github.com/pentacent/keila-web/commit/e96ec233eef631...
Nice writeup btw. I still can't get over how ridiculous it is that Windows doesn't have country flags emojis. It just means that every app/website ends up applying a hacky patch like this.
Doesn't help that most emoji fonts render all flags in the same aspect ratio.
I haven't tested with emojis (never thought of it, great test case!) but try Fontimize, which creates font subsets based on text your site actually uses. It runs over the HTML and CSS and creates an applicable subset.
But the Python API supports passing just some specific text. Try using that, passing any and every flag you wish. You should be able to get a font file that contains just the country flags this way.
I really need to get back to this library and add predefined subsets like, say, extended Latin, or country flags!
Looks like the flags-only font is just 77 kb!
During the 2020 protests, Telegram changed large¹ BY emoji to the national white-red-white flag. Then it reverted the large emoji back to Łukašenka’s red-green flag. So, old conversations no longer have the same flag.
These flags don't have the same meaning! They represent two very different visions of Belarus.
I would really prefer if Unicode encoded flags with date of their acceptance. E.g. BY-1991 or BY-1918 for white-red-white, BY-1995 for red-green flag.
_____________
¹ Small emoji retained red-green flag even at that time.
Also, Telegram has an option to replace large emoji with small emoji, so it was totally possible to send white-red-white flag and have it received as red-green flag, and vice versa.
If you ship android as-is from a GIT repo that has <forbidden thing> you can be ok. If you write an app or show slideware which refers to <forbidden thing> you are in the naughty corner for a while.
It's because people who are responding are responding intelligently. They know what they can effect: the future. The past, is another country. They can't get the git repo to ban the <forbidden thing> but they can make your life hell for including it.
So to an outsider this looks "inconsistent" but its (in my opinion) entirely internally consistent: Only act on things you can influence.
Microsoft would not respond to North Korea by deleting all the unicode flags all over the world, so while that might get you closer to the essence of your question, there's no point in me asking my question if you are just going to dodge it.
https://unicode.org/Public/emoji/latest/emoji-sequences.txt
This list notably doesn't have Quebec, Northern Ireland, or Somaliland. But it does have Taiwan and Palestinian Territories.
you have failed to convince me that this is about quebec, somalililand or palestine, those are absurd notions, so you have failed to convince me that this is not about china.
I suppose they did the same with Mongolia, until they couldn't.
It is the communist that ceded a lot of territory to the Soviet Union and the puppet state of Mongolia to appease the USSR by having a buffer between it and china
Why not simply collect all the prevalent "stances" on the disputed topics, and give the user to choose on each stance individually (or for a better user experience: create some presets of "stances that often occur together", which the user can use to activate multiple stances at once).
"Is the island to the east of mainland China (also known as Taiwan, or Chinese Taipei) part of the People's Republic of China?"
"What is the legal status of Gibraltar?"
"Who ought to have won the Cod Wars?"
And on, and on...
Alternatively, have your pick of
"Western (standard)"
"Western (tankie)"
"Chinese (the big one)"
"Chinese (the small, disputed one)"
"American (pro-Iceland)"
"American (pro-UK, for the purpose of the Cod Wars)"
"British (Still Irritated Over Suez)"
"British ('What's Suez?')"
Your idea is quite sensible, of course, but you could make it quite absurd if you liked. Perhaps I'll put something like this together one evening. I'm sure there are more silly disagreements to include than the ones I know of as a brit.
Sigh.. I'm so sick of companies pandering to bad regimes. This, google displaying the south china sea as part of china locally, meta dropping their DEI program after trump took over. None of the companies I know showing pride flags in Arab countries on their website during pride month (while of course widely proclaiming their support in PR and internal material everywhere else). It's all so fake. Stick by your values, then we stick by you as a customer.
Funny you say that, considering it originally was an actual gun, then companies progressively changed it to a water gun until it was the defacto standard. I guess if something got changed for "woke" reasons, and it sticks around long enough, you can dunk on the guy changing it back for being "anti-woke"?
That seems like it wouldn't work the way you're meaning in some pretty common cases. For example, with the Russian language.
Just playing devil’s advocate but I kind of get it
If there was a separatist region you felt wasn’t legitimate or entirely delusional in both their existence and their aims, and third parties started giving them legitimacy with flags that your former neighbor made up at night, you would be like “cmon, wtf, cut that out”
obviously I can’t relate to this in any way, but I could imagine it could occur the longer I live
I think we're taking emoji way too seriously in average. Perhaps we should start including popular flag propositions that got shut down by the officials (like the Australian flag redesign contest) just to make it clear that emoji are just words and nothing more.
They're all kind of silly though. If you want an image use <img>...
Who is a country? Who is an autonomous region?
Which flag to use for disputed countries (e.g. do you use the taliban flag for afghanistan despite how much the western world doesn't like it).
Not to mention people might not like the flag changing in their own messages after a take over. Imagine if russia wins the war in ukraine and all the patriotic ukrainians suddenly have the ukrainian flag in their old writings replaced with russian ones after a software update. Feels like something out of 1984.
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 ;)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?
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.
I don't see what the problem with that is. Universally understandable to anyone who knows the written version of their language
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.
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.
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.
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.