Innovative: Natural-sounding translations with genders and grammatical cases when necessary. Locale-specific logic doesn't leak to other locales.
Powerful: Date, time, and number formatting. Plural categories. Full bidirectionality support. Custom formatters. Easy-to-read syntax.
Flexible: Client- and server-side. Runtime translation and re-translation. Robust error handling. JS, Python, Rust implementations. React bindings.
Extensible: Compatible with ICU and ECMA 402. Licensed under the Apache 2.0 License.
Why did we create Fluent?
Software localization has been dominated by an outdated paradigm: translations that map one-to-one to the English copy. The grammar of the source language imposes limits on the expressiveness of the translation.
We created Fluent to change this paradigm. Translators should be able to use the entire expressive power of their language without asking developers for permission. In Fluent, translations are asymmetric. A simple string in English can map to a complex multi-variant translation in another language.
Fluent makes it possible to cater to the grammar and style of many languages, independently of the source language. It happens in isolation; the fact that one language benefits from more advanced logic doesn’t require any other localization to apply it. Each localization is in control of how complex the translation becomes.