| Crates.io | rat_quick_lang |
| lib.rs | rat_quick_lang |
| version | 0.1.1 |
| created_at | 2025-11-05 18:38:11.580863+00 |
| updated_at | 2025-11-05 18:38:11.580863+00 |
| description | 基于rat_embed_lang的多语言包装器,提供简洁的API和自动文件加载功能 |
| homepage | https://github.com/0ldm0s/rat_quick_lang |
| repository | https://github.com/0ldm0s/rat_quick_lang |
| max_upload_size | |
| id | 1918413 |
| size | 37,137 |
基于 rat_embed_lang 的多语言包装器,提供简洁的API和自动文件加载功能。
lang/
├── common/
│ ├── zh_CN.toml
│ ├── en_US.toml
│ └── ja_JP.toml
├── errors/
│ ├── zh_CN.toml
│ └── en_US.toml
lang/
├── ui.toml # 包含多个语言的翻译
└── menu.toml # 包含多个语言的翻译
[dependencies]
rat_embed_lang = "0.1.1"
rat_quick_lang = "0.1.1"
load_translations(base_dir: &str) -> Result<(), LangError> - 加载语言文件t(key: &str) -> String - 获取翻译文本set_language(lang: &str) -> Result<(), LangError> - 设置当前语言current_language() -> String - 获取当前语言has_translation(key: &str) -> bool - 检查翻译是否存在get_all_keys() -> Vec<String> - 获取所有翻译键get_supported_languages(key: &str) -> Vec<String> - 获取指定键支持的语言reload(base_dir: &str) -> Result<(), LangError> - 重新加载语言文件tf(key: &str, args: &[(&str, &str)]) -> String - 获取参数化翻译文本tf_with_lang(key: &str, lang: &str, args: &[(&str, &str)]) -> String - 获取指定语言的参数化翻译文本查看 examples/ 目录中的示例代码:
basic_usage.rs - 基础翻译功能parameterized_translation.rs - 参数化翻译功能运行示例:
cargo run --example basic_usage
cargo run --example parameterized_translation
welcome = "欢迎"
buttons.save = "保存"
buttons.cancel = "取消"
[zh_CN]
title = "标题"
exit = "退出"
[en_US]
title = "Title"
exit = "Exit"
支持在翻译文本中使用 {参数名} 格式的占位符:
[zh_CN]
welcome_user = "欢迎,{username}!"
login_message = "{user}在{time}登录了系统"
[en_US]
welcome_user = "Welcome, {username}!"
login_message = "{user} logged in at {time}"
支持多种格式的语言代码输入:
zh, zh_cn, zh-cn → zh-CNen, en_us, en-us → en-USja, ja_jp, ja-jp → ja-JP基于 rat_embed_lang 的 RwLock 实现,支持多线程并发读取。
tf() 和 tf_with_lang() API