algosul-core 0.0.12

Some user-friendly yet personalized tools
#[cfg(feature = "i18n-fluent")]
pub use fluent;

pub mod langid;

#[cfg(test)]
mod tests
{
  use alloc::{string::ToString, vec};

  use fluent::{fluent_args, FluentBundle, FluentResource};
  use unic_langid::LanguageIdentifier;

  #[test]
  fn test_fluent()
  {
    let args = fluent_args! {
      "name" => "Alice",
      "age" => 18,
    };
    let resource = FluentResource::try_new(
      r#"
hello = Hello, { $name }. You are { $age }.
"#
      .to_string(),
    )
    .unwrap();
    let lang_id: LanguageIdentifier = "en-US".parse().unwrap();
    let mut bundle = FluentBundle::new(vec![lang_id]);
    bundle.add_resource(resource).expect("Can not to add resource");
    let mut errors = vec![];
    let msg =
      bundle.get_message("hello").expect("Failed to retrieve a FluentMessage.");
    let pattern = msg.value().expect("Message has no value.");
    let value = bundle.format_pattern(pattern, Some(&args), &mut errors);
    assert_eq!(
      value,
      "Hello, \u{2068}Alice\u{2069}. You are \u{2068}18\u{2069}."
    );
  }
}