Ex_cldr: What are locales "en-001" and "und"?

Hello,

The ex_cldr docs Getting Started with Cldr — Cldr v2.40.1 say

If installed from hex then only the locales “en”, “en-001” and “und” are installed

I wondered what the locales “en-001” and “und” are.

For the first “en-001” - I have found an answer in How to coerce currency symbols with a character prefix? E.g. US$ not $ (even if "en" is the locale) - #4 by kip. So it’s “world English”.

Second - “und” - is not so easy to google as “und” is a German word (“and” in English), but docs for other programming languages seem to use “und” short for “Undetermined”. I guess that’s it?

seem to use “und” short for “Undetermined”

You are correct, that’s what it is. Until a couple of years ago is was called root, but that was linguistically misleading. So it was renamed to und. Basically it’s the “if all else fails, use values from here”.

I wondered what the locales “en-001”

Language tags convey a lot more information that is commonly recognised. The region identifier (for example, the US in en-US) is typically an ISO3166 territory code.

It can also be a United Nations M49 area code. These codes are intended to remove the geopolical implications inherent in territory codes to provide a basis for statistical analysis.

The following is a screen shot of the highest level hierarchy of M49 codes - that can expand to areas that are congruent with ISO3166 in many cases - but not all.

I hope that helps clarify some more (or perhaps now you wish you didn’t ask :-))

4 Likes