bevy_fluent 0.14.0

Bevy plugin for localization using Fluent
Documentation
use bevy::{asset::LoadState, prelude::*};
use bevy_fluent::prelude::*;
use fluent_content::Content;
use unic_langid::langid;

pub fn main() {
    App::new()
        .insert_resource(Locale::new(langid!("en-US")))
        .add_plugins((
            DefaultPlugins.set(AssetPlugin {
                file_path: "examples/minimal/assets".to_string(),
                ..default()
            }),
            FluentPlugin,
        ))
        .add_systems(Update, localized_hello_world)
        .run();
}

fn localized_hello_world(
    asset_server: Res<AssetServer>,
    assets: Res<Assets<BundleAsset>>,
    mut handle: Local<Option<Handle<BundleAsset>>>,
) {
    let handle = &*handle.get_or_insert_with(|| asset_server.load("locales/en-US/main.ftl.yml"));
    if let Some(LoadState::Loaded) = asset_server.get_load_state(handle) {
        let bundle = assets.get(handle).unwrap();
        assert!(matches!(bundle.content("hello-world"), Some(content) if content == "hello world"));
    }
}