Fluent: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(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...")
 
(add to L10n category, cleanup Markdown, update link)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
=Project Fluent=
Project Fluent is a localization system designed to improve how software is translated. See https://www.projectfluent.org/ for more information, including the links to the project's repositories and the GitHub wiki.


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.
== Mozilla Projects Using Fluent ==


==Goal==
===== fluent-react =====
* https://github.com/mozilla/testpilot (the website)
* https://github.com/mozilla-services/screenshots (the website)
* https://github.com/mozilla/voice-web
* https://github.com/mozilla-lockbox/lockbox-extension <span style="color: orange">(not actively localized)</span>
* https://github.com/coralproject/talk/tree/next
* https://github.com/mozilla/activate.mozilla.community/
* Firefox Dev Tools https://searchfox.org/mozilla-central/source/devtools/client
* Firefox New Tab https://searchfox.org/mozilla-central/source/browser/components/newtab


''Design an atomic low-level API which can be used to build localization frameworks.''
===== vanilla fluent =====
* https://github.com/mozilla/send
* https://github.com/mozilla/blurts-server


==Deliverables==
[[Category:L10n]]
 
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.

Latest revision as of 15:08, 4 January 2021

Project Fluent is a localization system designed to improve how software is translated. See https://www.projectfluent.org/ for more information, including the links to the project's repositories and the GitHub wiki.

Mozilla Projects Using Fluent

fluent-react
vanilla fluent