bevy_fluent 0.5.0

Bevy plugin for localization using Fluent
Documentation
#![allow(clippy::type_complexity)]

use crate::{
    locales::{de, en, ru},
    resources::{Font, Locales},
    systems::{load, menu},
};
use bevy::prelude::*;
use bevy_fluent::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins.set(AssetPlugin {
            asset_folder: "examples/ui/assets".to_string(),
            ..default()
        }))
        .add_plugin(FluentPlugin)
        .insert_resource(Locale::new(ru::RU).with_default(en::US))
        .insert_resource(Locales(vec![de::DE, en::US, ru::BY, ru::RU]))
        .init_resource::<Font>()
        .add_state(GameState::Load)
        .add_system_set(SystemSet::on_enter(GameState::Load).with_system(load::setup))
        .add_system_set(SystemSet::on_update(GameState::Load).with_system(load::load))
        .add_system_set(SystemSet::on_enter(GameState::Menu).with_system(menu::setup))
        .add_system_set(
            SystemSet::on_update(GameState::Menu)
                .with_system(menu::interaction)
                .with_system(menu::next)
                .with_system(menu::previous),
        )
        .add_system_set(SystemSet::on_exit(GameState::Menu).with_system(menu::cleanup))
        .run();
}

#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub enum GameState {
    Load,
    Menu,
}

mod components;
mod locales;
mod resources;
mod systems;
mod to_sentence_case;