projectfluent / fluent-rs

Rust implementation of Project Fluent
https://projectfluent.org
Apache License 2.0
1.09k stars 98 forks source link
ftl i18n internationalization l10n localization plural rust

Project Fluent

Build Coverage Status

The fluent-rs workspace is a collection of Rust crates implementing Project Fluent, a localization system 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.

Packages

This workspace contains the following crates:

fluent

crates.io docs.rs

An umbrella crate exposing the combined features of fluent-rs crates with additional convenience macros.

fluent-bundle

crates.io docs.rs

A low-level implementation of a collection of localization messages for a single locale.

fluent-fallback

crates.io docs.rs

A high-level abstraction model for managing locale bundles and runtime localization lifecycle.

fluent-resmgr

crates.io docs.rs

A standalone solution for managing resource files and returning locale bundles.

fluent-syntax

crates.io docs.rs

A low-level parser, AST, and serializer API for the Fluent syntax.

fluent-pseudo

crates.io docs.rs

A pseudolocalization and transformation API.

fluent-testing

crates.io docs.rs

A collection of mock scenarios for testing fluent-rs components.

intl-memoizer

crates.io docs.rs

A memoizer specifically tailored for storing lazy-initialized intl formatters.

fluent-cli

A collection of developer-oriented command line tools for Fluent.