Localize - next generation localisation (ex_cldr v3.0)

Localize is the next generation localisation library for Elixir. Think of it as ex_cldr version 3.0. The first version will be released before the end of March 2026 and is under active development.

The goals and objectives are documented on Github, with the headline objectives being:

  • No “backend” architecture, CLDR data will be stored in :persistent_term.
  • No compile-time configuration. Runtime all the way.
  • Dynamic loading of locales. No more compile-time configuration of supported locales. Downloading and storage/access will be pluggable. This may suit organisations with specific security policies or running Localize on devices with limited connectivity or resources.
  • Simplified library packaging. Localize will have everything except web-oriented and SQL oriented modules which will go in their own libraries.
  • A Phoenix-based locale explorer will be available to make it easier and clearer to see what capabilities are possible with Localize (enabled by CLDR). At a later stage the locale explorer will also be hosted on a publicly available web server.

Note this will not be a drop-in replacement. However the public API will be very very similar with the main breaking change being the removal of any backend argument.

Feedback, suggestions all very welcome either here, or on GitHub discussions.

79 Likes

That sounds great, thank you for working on this - I’ll be sure to give it a try soon.

1 Like

You absolute legend.

13 Likes

Making Localize a good Nerves citizen is definitely in scope too. No compile time configuration will help. But primarily by supporting configurable locale sources and configurable locale storage and access methods. (thanks for the kind words).

11 Likes

Awesome! I just want to thank you for your work. @lawik is right, you’re a legend!

4 Likes

Great work as always, @kip! Out of curiosity, did you do you any perf comparisons between the :persistent_term and precompiled backends?

1 Like

I did do some very loose and informal performance comparisons some time ago and the performance seemed comparable. I will certainly be doing comapative performance testing when I get further along the development path.

1 Like

So better ergonomics for roughly the same performance! Nice.

1 Like