zsui 0.3.0-alpha.2

Rust-first feature-gated native UI framework for Win32, AppKit, and Linux.
Documentation
use zsui::{ZsLocale, ZsLocalizer, ZsMessageArgs, ZsuiResult};

const EN: &str = r#"
window-title = ZSUI localization
greeting = Welcome, { $name }.
item-count = { $count ->
    [one] One item
   *[other] { $count } items
}
"#;

const ZH_CN: &str = r#"
window-title = ZSUI 多语言
greeting = 欢迎,{ $name }。
item-count = { $count } 个项目
"#;

fn main() -> ZsuiResult<()> {
    let fallback = ZsLocale::parse("en")?;
    let mut localizer = ZsLocalizer::for_system(fallback);
    localizer.add_ftl(ZsLocale::parse("en")?, EN)?;
    localizer.add_ftl(ZsLocale::parse("zh-CN")?, ZH_CN)?;

    let greeting = localizer.format(
        "greeting",
        &ZsMessageArgs::new().with("name", "ZSUI"),
        "Welcome, ZSUI.",
    );
    let item_count = localizer.format(
        "item-count",
        &ZsMessageArgs::new().with("count", 3u32),
        "3 items",
    );

    println!("{}", localizer.text("window-title", "ZSUI"));
    println!("{greeting}");
    println!("{item_count}");
    Ok(())
}