kip

kip

ex_cldr Core Team

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.

Showing Posts 1 to 10

wmnnd

wmnnd

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

lawik

lawik

Nerves Core Team

You absolute legend.

16
Post #2
kip

kip OP

ex_cldr Core Team

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).

14
Post #3
andreh

andreh

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

jarrodm

jarrodm

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

kip

kip OP

ex_cldr Core Team

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.

jarrodm

jarrodm

So better ergonomics for roughly the same performance! Nice.

kip

kip OP

ex_cldr Core Team

Localize will officially launch next Monday. I’ve got a full week of launch activity planned. And a shiny new blog at elixir-localize.com where I’m committed to spending more time writing about they why and how localisation matters and how localize can make it almost trivial to write localised Elixir applications.

Each day next week there is something launching:

  • Monday is the core localize library. It compiles faster than ex_cldr, runs faster, uses less memory, has simpler packaging (nearly everything in one package).

  • Tuesday is localize_web that includes accept-header parsing and locale setting, localised routes and some HTML helpers.

  • Wednesday is the launch of localize_person_names for formatting names in a localised manner; in formal, informal and other ways. And the launch of Calendrical which is a consolidated set of calendars now including Gregorian, Julian, Islamic (four variants), Hebrew, Persian, Indian, Buddhist, Composite and user definable. And a few more I probably missed.

  • Thursday its time for some new fun things. localize_phonenumber that wraps libphonenumber for parsing and formatting phone numbers and localize_address for parsing free-form address data and then formatting its using the OpenCageData templates.

  • Friday is the “one more thing” release. It’s called Intl and its an API wrapper for Localize that maps very closely to the Javascript Intl API. This should make it easier for developers who are more front-end savvy to adopt localisation in Elixir more easily.

I’ll be posting more long form content at elixir-localize.com as the week progresses.

Eight years into developing ex_cldr and friends I think I can say confidently that localize is better in every way. I hope you’ll try it out, give feedback, open issues and help me make that claim a reality.

34
Post #8
jswanner

jswanner

Looking forward to next week!

Terbium-135

Terbium-135

I hope the refactoring is not too painful :zany_face:
Thx for all your work!

Where Next? Top

Trending in Announcing Top

woylie
Flop is an Elixir library that applies filtering, ordering and pagination parameters to your Ecto queries. offset-based pagination with...
New
MRdotB
I needed to reuse React components from my Chrome extension in my Phoenix/LiveView backend. I noticed that for Svelte/Vue, there are live...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
fuelen
Hi all! I want to present a small library which provides a mix task for generating an Entity-Relationship Diagram for Ecto schemas. You...
New
anuaralfetahe
Hello Published a new library - ProcessHub! ProcessHub is a library designed to manage process distribution within the Elixir cluster. ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
New

Other Trending Topics Top

mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
webofbits
With AI doing more of the implementation work, I’ve been wondering how much coding I should deliberately keep doing myself. My main conc...
#ai
New
AstonJ
This showed up on my feed.. anyone heard of it? Just hype? Ox Alpha is a reasoning model designed for coding, sustained ag...
New
sergio
It’s not that it’s vocabulary is too advanced. It’s something worse. I get lost trying to follow even a paragraph written by Claude. It’...
New
sorenone
Today we’re releasing Oban for Python. Not an Oban client in Python. Not a pythonx wrapper embedded in Elixir. Nope, it’s a fully operati...
New
akoutmos
@hugobarauna, Dr. Dimitrios Koutmos (my brother) and I (Alex Koutmos) have been hard at work on writing a book on how you can use Elixir ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews