Changes

Jump to: navigation, search

Fluent

1,879 bytes added, 14:37, 5 January 2017
Created page with "=Project Fluent= Project Fluent is a localization paradigm designed to unleash the entire expressive power of natural language translations. Project Fluent keeps simple thin..."
=Project Fluent=

Project Fluent is a localization paradigm designed to unleash the entire expressive power of natural language translations. Project Fluent keeps simple things simple and makes complex things possible. The syntax used for describing translations is easy to read and understand. At the same time it allows, when necessary, to represent complex concepts from natural languages like gender, plurals, conjugations, and others.

==Goal==

''Design an atomic low-level API which can be used to build localization frameworks.''

==Deliverables==

The intended outcome of Project Fluent is a syntax for describing translation resources and a low-level API for formatting translations into strings.

* Syntax specification.
* Requirements and good practices for API implementations.
* A reference implementation in JavaScript.
* Implementation in Python.
* Implementation in Rust.

==Rationale==

Project Fluent is a spin-off from [[L20n]], a localization framework developed by Mozilla. L20n is designed as a combination of three layers of APIs stacked on top of each other. This modularization allows L20n to support many different environments and platforms.

# The low-level API providing single-purpose building blocks for L20n.
# ''Localization'' - The main L20n class responsible for language negotiation, resource loading and the fallback strategy.
# ''LocalizationObserver'' - The manager class used to bind to the host environment.

Project Fluent is based on the first layer and intends to replace it in L20n. It encapsulates a lot of main design axes of L20n: separation of concerns, translations-as-an-object (great for UI widgets and components), more control for the localizers, better and more-natural sounding translations, integration with Intl/ICU.

==Status==

The FTL syntax used in L20n.js as of January 1st, 2017, will be tagged as version 0.1.
Canmove, confirm
1,448
edits

Navigation menu