1 个不稳定版本

0.1.0 2022年12月2日

#254国际化(i18n)

MIT/Apache 许可

10KB
85

i18nx

i18nx 是一个为 Rust 设计的运行时本地化库。它旨在简单易用。

它支持 Rusty Object Notation (RON) 文件用于翻译数据。有关更多信息,请参阅RON 文档

它导出一个宏 t!,可在运行时用于翻译字符串。

对于格式化,它使用与 format! 宏相同的语法。有关更多信息,请参阅formatx 文档

用法

use i18nx::t;

// Create a new translation dictionary
// Tip: use `include_str` macro to embed translation files
i18nx::from_ron!(r#"{
  "Hello {name}!": {
    "de": "Hallo {name}!",
    "fr": "Bonjour {name}!",
  },
}"#);

// If you prefer storing your localizations separately
i18nx::with_ron!("cn", r#"{
  "Hello {name}!": "你好 {name}!",
}"#);
i18nx::with_ron!("ru", r#"{
  "Hello {name}!": "Привет {name}!",
}"#);

// Set locale anytime
i18nx::locale!("fr");

// Use the `t` macro just like you would use `format`
assert_eq!(
    t!("Hello {name}!", name = "Rustaceans"),
    "Bonjour Rustaceans!"
);
assert_eq!(
    t!("No translation for this string, so it will be printed and formatted as-is."),
    "No translation for this string, so it will be printed and formatted as-is."
);

另请参阅:集成示例集成测试

许可

根据以下任一许可进行许可:

任选其一。

贡献

除非你明确声明,否则你提交给工作的任何有意贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖关系

~1–1.7MB
~38K SLoC