Skip to content

Localize Ecto version 0.3.0

Choose a tag to compare

@kipcole9 kipcole9 released this 23 Jul 09:37
· 9 commits to main since this release

[0.3.0] - 2026-07-23

Added

  • Collation resolution carries all collation-affecting BCP 47 -u- keywords (kn, ks, kc, kf, ka, kb, kr, kv) into the collation name, so collate(f.name, "en-u-kn-true") finds a natural-sort collation created in a migration.

  • create_collation/2 accepts tailoring options (:strength, :numeric, :case_level, :case_first, :alternate, :backwards) using the Localize.Collation.Options vocabulary. Primary and secondary strengths default to a nondeterministic collation, enabling case/accent-insensitive equality and unique indexes.

  • mix localize.ecto.audit and Localize.Ecto.Audit report collation version drift with per-index remediation SQL, database default collation drift, server-versus-application Unicode/ICU/CLDR versions, and time zone inventory differences.

  • Localize.Ecto.Type.TimeZone is an Ecto type for IANA time zone identifiers, canonicalizing aliases and BCP 47 short zone ids against the CLDR inventory; at_time_zone/2 applies a validated AT TIME ZONE.

  • Localize.Ecto.TextSearch.config_for/2 resolves a locale to the best PostgreSQL text search configuration, and ts_match/2,3 builds a locale-aware to_tsvector … @@ websearch_to_tsquery match.

  • lower/1,2, upper/1,2 and initcap/1,2 apply locale-aware case mapping via the locale's collation ("INDIGO" lowercases to "ındıgo" under "tr").

Changed

  • Requires Localize ~> 1.0-rc.1 for the CLDR time zone inventory.