I knew that locale handling is very difficult, but this older article on language and locale matching in Go was an eye-opener. First, I completely forgot there are three-letter language codes and I never heard of script and sorting variants being part of language tags (was just aware of encodings). Also, never thought about the complex fallback calculation, e.g. that for Afrikaans Dutch would be a good candidate. Or instead of Norwegian Danish would be pretty good. Azerbaijani has three possible scripts, oh wow! So many new small things I learned today, very cool.