1 个不稳定版本
0.1.0 | 2022年12月2日 |
---|
#254 在 国际化(i18n)
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 版,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则你提交给工作的任何有意贡献,根据 Apache-2.0 许可证定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~1–1.7MB
~38K SLoC