Localize version 0.31.0
[0.31.0] — May 12th, 2026
Bug Fixes
-
Localize.Locale.Loadernow stores fallback locale data under the requested locale id rather than the resolved fallback id, restoring 0.29 behaviour. The regression introduced in 0.30.0 causedprovider.get(requested_locale, _)to miss in-memory fallback data and surface as a spuriousItemNotFoundError— most visibly crashingmix localize.download_localeswith aMatchErrorwhendefault_localenamed an unavailable locale. Locked down withtest/localize/locale/loader_fallback_test.exs. Closes #26. -
mix localize.download_localesno longer pattern-matches on the result ofLocalize.Message.format/2when building its progress banner; if formatting fails for any reason the task falls back to a plain ASCII banner and continues with the actual download.
Behaviour Changes
-
Localize.InvalidValueErrorgained an:allowed_valuesfield and a newLocalize.NoCertificateStoreErrorcarries the searched paths; previously prose-stuffed:expected/:currencyfields and bare-string:reasoncodes are now structural. -
Eight option-validation sites across
Localize.Language,Localize.Script,Localize.Collation,Localize.Utils.Map, andLocalize.Utils.Httpnow raise structured Localize exceptions rather thanArgumentError/RuntimeError.