The locales available to ex_cldr
are those in the available_locales.json file in the ex_cldr repository. Or you can see the local files in json format in the priv/cldr/locales directory.
You can also see the available locales as follows:
iex> Cldr.Config.all_locale_names()
["af", "af-NA", "agq", "ak", "am", "ar", "ar-AE", "ar-BH", "ar-DJ", "ar-DZ",
"ar-EG", "ar-EH", "ar-ER", "ar-IL", "ar-IQ", "ar-JO", "ar-KM", "ar-KW",
"ar-LB", "ar-LY", "ar-MA", "ar-MR", "ar-OM", "ar-PS", "ar-QA", "ar-SA",
"ar-SD", "ar-SO", "ar-SS", "ar-SY", "ar-TD", "ar-TN", "ar-YE", "as", "asa",
"ast", "az", "az-Cyrl", "az-Latn", "bas", "be", "be-tarask", "bem", "bez",
"bg", "bm", "bn", "bn-IN", "bo", "bo-IN", ...]
If you look inside the CLDR repo in common/main/de_DE.xml file you’ll see it actually has no locale content and therefore not an available locale. As noted in the issue you raised, the locale de
is already “German as spoke in Germany” and therefore de-DE
isn’t populated. The same is true for en-US
- in CLDR its an empty locale file because en
is already “English as spoken in the US”.