You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fluent is a localization system designed to unleash the expressive power of
the natural language.
This repository contains the specification, the reference implementation of the
parser and the documentation for Fluent.
Fluent Syntax (FTL)
FTL is the syntax for describing translation resources in Project Fluent. FTL
stands for Fluent Translation List. Read the Fluent Syntax Guide to get
started learning Fluent.
The syntax/ directory contains the reference implementation of the syntax as
a LL(infinity) parser.
The spec/ directory contains the formal EBNF grammar, autogenerated from the
reference implementation.
Development
While working on the reference parser, use the following commands to test and
validate your work:
npm test # Test the parser against JSON AST fixtures.
npm run lint # Lint the parser code.
npm run generate:ebnf # Generate the EBNF from syntax/grammar.js.
npm run generate:fixtures # Generate test fixtures (FTL → JSON AST).
npm run build:guide # Build the HTML version of the Guide.
npm run bench # Run the performance benchmark on large FTL.
Other Implementations
This repository contains the reference implementation of the parser. Other implementations exist which should be preferred for use in production and in tooling.