# High-level Fluent Rust APIs

**URL:** <https://discourse.mozilla.org/t/high-level-fluent-rust-apis/123688>\
**Category:** Fluent\
**Created:** [October 25, 2023, 8:16pm UTC](https://discourse.mozilla.org/t/high-level-fluent-rust-apis/123688 "2023-10-25T20:16:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![G2P](https://avatars.discourse-cdn.com/v4/letter/g/f17d59/32.png) [@G2P](https://discourse.mozilla.org/u/G2P)\
**Post date:** [October 25, 2023, 8:16pm UTC](https://discourse.mozilla.org/t/high-level-fluent-rust-apis/123688/1 "2023-10-25T20:16:18Z")

</div>

I have a leptos-based web app that I want to translate.

I’d like to use fluent. My needs aren’t complex, but I don’t want to learn or be tied to any homegrown, framework-specific translation format.

Looking at high-level APIs for fluent (selecting locales, providing a macro, embedding data into the executable), I’m aware of these alternatives:

- [fluent-fallback](https://lib.rs/crates/fluent-fallback), from fluent-rs. For a high-level crate, APIs like `format_value_sync` are still cumbersome to use, and I would have to write my own wrapper on top.
- [fluent-templates](https://lib.rs/crates/fluent-templates), by XAMPPRocky (a prolific crate author I trust). Seems easy to use
- [i18n-embed](https://lib.rs/crates/i18n-embed) / cargo-i18n, by kellpossible. I hit a papercut on first try but it does provide a convenient proc macro (i18n-embed-fl)
- [l10n](https://lib.rs/crates/l10n). An all-in-one crate by MathieuTricoire with another macro. I like that he contributed PRs to fix stuff in fluent-bundle; unfortunately the fluent-rs project has yet to cut releases with those (latest release was almost one year ago, for fluent-resmgr).
- fluent-localization-loader / fluent-localization-bindgen (I’ve hit the link limit) by AEnterprise

Does anyone have any experience with these?

While looking into the lack of recent releases (with the fixes for the l10n crate), I realized that ICU4X might start on support for its own way of localising strings, but this is years away, and the language might be overly complex ([ICU4J example](https://unicode-org.github.io/icu/userguide/format_parse/messages/mf2.html)); I’d like to have recommendations I could work on now.
