GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - projectfluent/fluent: Fluent — planning, spec and documentation

BranchesTags
Open more actions menu

Latest commit

 

History

338 Commits
338 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
.vscode
.vscode
 
 
bin
bin
 
 
guide
guide
 
 
lib
lib
 
 
spec
spec
 
 
syntax
syntax
 
 
test
test
 
 
.eslintrc
.eslintrc
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
.nojekyll
.nojekyll
 
 
.prettierrc
.prettierrc
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
LICENSE
LICENSE
 
 
NOTICE
NOTICE
 
 
README.md
README.md
 
 
book.toml
book.toml
 
 
package-lock.json
package-lock.json
 
 
package.json
package.json
 
 

Repository files navigation

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.

  • The JavaScript implementation at fluent.js, including the React bindings.
  • The Python implementation at python-fluent.
  • The Rust implementation at fluent-rs.

We also know about the following community-driven implementations:

  • Fluent.Net by @blushingpenguin. See #93 for more info.
  • Linguini a .NET library by @Ygg01
  • A Java/Kotlin implementation has been requested in #158.
  • elm-fluent by @spookylukey
  • Fluent as a Perl 6 module by @alabamenhu
  • fluent-dart as a Dart runtime implementation by @ryanhz.
  • fluent-compiler - an alternative Python implementation by @spookylukey.
  • fluent-vue - Vue.js plugin - integration for fluent.js
  • A Lua implementation effort is underway at fluent-lua by @alerque.
  • A D implementation effort is underway at fluentd by @SirNickolas.
  • fluent.go - a Golang implementation by @lus
  • fluent-php - a PHP module providing bindings wrapping the Rust library by @Ennexa

Learn More and Discuss

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

About

Fluent — planning, spec and documentation

projectfluent.org

Topics

asdlebnfftlglobalizationinternationalizationintll10nlocalizationspecificationtranslatetranslation

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct
Activity
Custom properties

Stars

1.7k stars

Watchers

27 watching

Forks

48 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.