|
1 |
| -# Fluent [](https://github.com/projectfluent/fluent-rs/actions?query=branch%3Amain+workflow%3A%22Build+and+test%22) [](https://coveralls.io/github/projectfluent/fluent-rs?branch=main) |
| 1 | +# Project Fluent |
2 | 2 |
|
3 |
| -`fluent-rs` is a collection of Rust crates implementing [Project Fluent](https://projectfluent.org). |
| 3 | +[](https://github.com/projectfluent/fluent-rs/actions/workflows/test.yaml) |
| 4 | +[](https://coveralls.io/github/projectfluent/fluent-rs?branch=main) |
| 5 | + |
| 6 | +The `fluent-rs` workspace is a collection of Rust crates implementing [Project Fluent][], |
| 7 | +a localization system designed to unleash the entire expressive power of natural language translations. |
| 8 | + |
| 9 | +Project Fluent keeps simple things simple and makes complex things possible. |
| 10 | +The syntax used for describing translations is easy to read and understand. |
| 11 | +At the same time it allows, when necessary, to represent complex concepts from natural languages like gender, plurals, conjugations, and others. |
4 | 12 |
|
5 | 13 | ## Packages
|
6 | 14 |
|
7 |
| -The crates perform the following functions: |
| 15 | +This workspace contains the following crates: |
8 | 16 |
|
9 |
| -### fluent [](https://crates.io/crates/fluent) |
| 17 | +### fluent |
10 | 18 |
|
11 |
| -Umbrella crate combining crates that are ready to be used in production. |
| 19 | +[](https://crates.io/crates/fluent) |
| 20 | +[](https://docs.rs/fluent) |
12 | 21 |
|
13 |
| -### fluent-syntax [](https://crates.io/crates/fluent_syntax) |
| 22 | +An umbrella crate exposing the combined features of fluent-rs crates with additional convenience macros. |
14 | 23 |
|
15 |
| -Low level Fluent Syntax AST and parser API. |
| 24 | +### fluent-bundle |
16 | 25 |
|
17 |
| -### fluent-bundle [](https://crates.io/crates/fluent_bundle) |
| 26 | +[](https://crates.io/crates/fluent_bundle) |
| 27 | +[](https://docs.rs/fluent-bundle) |
18 | 28 |
|
19 |
| -Implementation of the low-level Fluent Localization System providing localization capabilities for any Rust project. |
| 29 | +A low-level implementation of a collection of localization messages for a single locale. |
20 | 30 |
|
21 |
| -### fluent-fallback [](https://crates.io/crates/fluent_fallback) |
| 31 | +### fluent-fallback |
22 | 32 |
|
23 |
| -Implementation of the high-level Fluent Localization System providing localization capabilities for any Rust project. |
| 33 | +[](https://crates.io/crates/fluent_fallback) |
| 34 | +[](https://docs.rs/fluent-fallback) |
24 | 35 |
|
25 |
| -### fluent-resmgr [](https://crates.io/crates/fluent_resmgr) |
| 36 | +A high-level abstraction model for managing locale bundles and runtime localization lifecycle. |
26 | 37 |
|
27 |
| -Resource Manager for localization resources. |
| 38 | +### fluent-resmgr |
28 | 39 |
|
29 |
| -### fluent-cli |
| 40 | +[](https://crates.io/crates/fluent_resmgr) |
| 41 | +[](https://docs.rs/fluent-resmgr) |
| 42 | + |
| 43 | +A standalone solution for managing resource files and returning locale bundles. |
| 44 | + |
| 45 | +### fluent-syntax |
| 46 | + |
| 47 | +[](https://crates.io/crates/fluent_syntax) |
| 48 | +[](https://docs.rs/fluent-syntax) |
30 | 49 |
|
31 |
| -Collection of command line tools for Fluent. |
| 50 | +A low-level parser, AST, and serializer API for the Fluent syntax. |
32 | 51 |
|
33 |
| -## Running the project |
| 52 | +### fluent-pseudo |
34 | 53 |
|
35 |
| -Each `fluent-*` directory works with the typical `cargo` commands. In addition there are some general `cargo-make` commands that can be run. First install `cargo-make` via `cargo install --force cargo-make`. The commands are documented in [Makefile.toml](Makefile.toml). |
| 54 | +[](https://crates.io/crates/fluent_pseudo) |
| 55 | +[](https://docs.rs/fluent-pseudo) |
36 | 56 |
|
37 |
| -### Tests |
| 57 | +A pseudolocalization and transformation API. |
38 | 58 |
|
39 |
| -To run all of the tests for the repo run: |
| 59 | +### fluent-testing |
40 | 60 |
|
41 |
| -```sh |
42 |
| -cargo make test |
43 |
| -``` |
| 61 | +[](https://crates.io/crates/fluent_testing) |
| 62 | +[](https://docs.rs/fluent-testing) |
44 | 63 |
|
45 |
| -For local code coverage reports run: |
| 64 | +A collection of mock scenarios for testing fluent-rs components. |
| 65 | + |
| 66 | +### intl-memoizer |
| 67 | + |
| 68 | +[](https://crates.io/crates/intl_memoizer) |
| 69 | +[](https://docs.rs/intl-memoizer) |
| 70 | + |
| 71 | +A memoizer specifically tailored for storing lazy-initialized intl formatters. |
| 72 | + |
| 73 | +### fluent-cli |
46 | 74 |
|
47 |
| -```sh |
48 |
| -# Install the tools first if you haven't done so. The llvm tools must be available |
49 |
| -# on the path for this to work correctly. |
50 |
| -cargo make install-tools |
| 75 | +A collection of developer-oriented command line tools for Fluent. |
51 | 76 |
|
52 |
| -# Then coverage can be run like so: |
53 |
| -cargo make coverage |
54 |
| -``` |
| 77 | +[Project Fluent]: https://projectfluent.org |
0 commit comments