projectfluent/fluent

Fluent — planning, spec and documentation

JavaScript

1,680

306 commits

updated Mar 21, 2026

See the code

README

Fluent

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.

We also know about the following community-driven implementations:

Learn More and Discuss

Find out more about Project Fluent at projectfluent.org and discuss the future of Fluent at Mozilla Discourse.

asdl
ebnf
ftl
globalization
internationalization
intl
l10n
localization
specification
translate
translation

projectfluent/fluent

Fluent — planning, spec and documentation

JavaScript

1,680

306 commits

updated Mar 21, 2026

See the code

README

Fluent

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.

We also know about the following community-driven implementations:

Learn More and Discuss

Find out more about Project Fluent at projectfluent.org and discuss the future of Fluent at Mozilla Discourse.

asdl
ebnf
ftl
globalization
internationalization
intl
l10n
localization
specification
translate
translation

Project health

Overall

3.7/10

Maintained

0/10

Code review

8/10
OpenSSF Scorecard

Significant stargazers

(top 24 of 48)

Toru Nagashima

1,172 followers · starred Apr 2019

favonia

332 followers · starred Jul 2021

XAMPPRocky

801 followers · starred Feb 2022

Johan Bergström

259 followers · starred May 2023