Skip to content

Fluent and L20n

Staś Małolepszy edited this page Feb 16, 2017 · 1 revision

Project Fluent is a spin-off from L20n, a localization framework developed by Mozilla. It only consists of the low-level internals of L20n. By releasing the foundation of L20n as a separate project we hope to enable more organizations to use it. Project Fluent implementations aim to be: atomic, synchronous and pure (no IO).

L20n (and L20n.js specifically) is a bundled deal. If you buy into it, there are many things that change: the localization happens on the client side and is async, it is bound to DOM and uses a new file format; the way you make your app localizable is different too. If you’re developing a web application, you likely already have some way of working with the DOM and you’re using an opinionated framework to stay sane. L20n adds a layer on top with its own opinions and paradigms.

By decoupling Project Fluent from the rest of L20n’s bundled deal, it becomes easier for external parties to adopt it. We’ve already seen interest from Java, C# and Rust developers. We also know that ICU is interested in revising MessageFormat. With FTL, we can tap into this interest without bringing the entire DOM and async API baggage along.

Fluent is small and very unopinionated about the rest of the stack in which it is used. This makes the task of integrating it into other frameworks and larger projects much easier.