Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Choose a runtime manager

A runtime manager loads FTL resources, selects a locale, and resolves typed messages through an explicit application context. Choose one manager for the application runtime.

ManagerChoose it forContinue
es-fluent-manager-embeddedCLIs, TUIs, desktop apps, services, and general RustEmbedded manager
es-fluent-manager-dioxusDioxus client rendering, SSR, or bothDioxus manager
es-fluent-manager-bevyBevy ECS, assets, and reactive UI textBevy manager

All concrete managers follow the same application model:

  1. Put define_i18n_module!() in a library-reachable module.
  2. Keep derived message types reachable from a library target.
  3. Initialize or provide a manager context with a selected language.
  4. Call localize_message(&message) or pass that context to typed label helpers.
  5. Use fallible lookup only where the caller intentionally handles a missing translation.

Manager macros scan configured locale assets at compile time. Add es-fluent-build to track those assets and produce the fallback-message catalog used by strict derive validation; see Incremental builds.

All managers route typed output through the owning package’s missing-message policy. The default strict policy rejects missing fallback message values. Set missing_message_policy = "fallback-str" in i18n.toml so normal message and label lookup returns a snake_case Rust source name after locale fallback is exhausted; fallible lookup still returns None.

Use es-fluent-manager-core directly only when building a custom runtime integration. Concrete managers provide the intended application-facing APIs.