Skip to content
Fluent — planning, spec and documentation
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
guide Add a note about double escapes Apr 29, 2019
lib Duplicate switch case (#257) Apr 19, 2019
spec Fluent Syntax 1.0.0 Apr 17, 2019
syntax Flatten reference expressions into InlineExpression Mar 20, 2019
test Re-generate fixtures to silence git diff Mar 20, 2019
.eslintrc Support just running an individual test (#146) Jun 7, 2018
.gitattributes Force checkouts of .ftl files to use LF (#229) Jan 28, 2019
.gitignore Use package.json for versioning and build dependencies Feb 16, 2017
.travis.yml Implement the reference Fluent Syntax parser (#103) May 18, 2018
CODE_OF_CONDUCT.md Add Code of Conduct Apr 9, 2019
LICENSE Add the Apache 2.0 License (#252) Apr 15, 2019
NOTICE Add the Apache 2.0 License (#252) Apr 15, 2019
README.md Add elm-fluent to list of community implementations (#226) Jan 14, 2019
package-lock.json Implement the reference Fluent Syntax parser (#103) May 18, 2018
package.json Fluent Syntax 1.0.0 Apr 17, 2019

README.md

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.mjs.
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.

You can’t perform that action at this time.