1 个不稳定版本
0.0.1 | 2024年1月7日 |
---|
#49 在 #i18n
21KB
453 行
rs-i18n
轻量级且紧凑的国际化库
- 作者:syf20020816@outlook.com
- 创建日期:20240106
- 更新日期:20240107
- 版本:0.0.1
- 邮箱:syf20020816@outlook.com
快速开始
1. 安装依赖项
cargo add rs-i18n
cargo add lazy_static
2. 编写国际化 JSON 文件
-- your project
|---- i18n
| |-- en_US.json
| |-- zh_CN.json
en_US.json
{
"HELLO":"hello",
"HAPPY":"satisfied",
"JOY":"good"
}
zh_CN.json
{
"HELLO":"你好",
"HAPPY":"开心",
"JOY":"欢快"
}
3. main.rs
#[macro_use]
extern crate lazy_static;
use rs_i18n::{I18ns, Loader, UseI18n};
// if use absolute path, you should pay attention that the path should write from root
// means :
// It is an absolute path based on the root directory as the standard
lazy_static! {
static ref LOADER: Loader = Loader::new(Some("./i18n"));
}
fn main() {
let mut i18n = UseI18n::new(
&LOADER,
None,
);
// change lang
// i18n.set_lang(I18ns::ENUS);
println!("{}", i18n.t("JOY"));
}
使用 Dev(推荐)
添加 strum
cargo add strum --feature derive
----or----
strum = { version = "0.25", features = ["derive"] }
main.rs
#[macro_use]
extern crate lazy_static;
use rs_i18n::{I18ns, Loader, UseI18n};
mod i18n_dict;
use i18n_dict::I18nDict;
lazy_static! {
static ref LOADER: Loader = Loader::new(Some("./i18n"));
}
fn main() {
// donot use absoulte path
let mut i18n = UseI18n::new(
&LOADER,
Some("E:\\Rust\\try\\rs-i18n-all\\i18n-test\\src\\i18n_dict.rs"),
);
println!("{}", i18n.t(&format!("{:?}", I18nDict::HAPPY)));
}
目标
- 翻译
- 获取系统语言作为默认语言
- 开发
- 日期格式
依赖项
~355–750KB
~17K SLoC