docs.rs failed to build rat_quick_lang-0.1.1
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
rat_quick_lang
基于 rat_embed_lang 的多语言包装器,提供简洁的API和自动文件加载功能。
特性
- 基于 rat_embed_lang v0.1.1 核心实现
- 支持参数化翻译(如 "欢迎,{username}!")
- 支持文件夹和单文件两种组织形式
- 自动文件扫描和加载
- 内存缓存,高性能翻译查询
- 线程安全
- 简洁的函数调用API(无宏)
文件组织支持
文件夹形式
lang/
├── common/
│ ├── zh_CN.toml
│ ├── en_US.toml
│ └── ja_JP.toml
├── errors/
│ ├── zh_CN.toml
│ └── en_US.toml
单文件形式
lang/
├── ui.toml # 包含多个语言的翻译
└── menu.toml # 包含多个语言的翻译
依赖
[]
= "0.1.1"
= "0.1.1"
核心 API
基础翻译
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- 参数化翻译功能
运行示例:
文件格式
文件夹形式 - common/zh_CN.toml
= "欢迎"
= "保存"
= "取消"
单文件形式 - ui.toml
[]
= "标题"
= "退出"
[]
= "Title"
= "Exit"
参数化翻译示例
支持在翻译文本中使用 {参数名} 格式的占位符:
[]
= "欢迎,{username}!"
= "{user}在{time}登录了系统"
[]
= "Welcome, {username}!"
= "{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 实现,支持多线程并发读取。
版本历史
v0.1.1
- 升级到 rat_embed_lang v0.1.1
- 新增参数化翻译功能支持
- 添加
tf()和tf_with_lang()API
v0.1.0
- 初始版本发布
- 基础翻译功能
- 文件夹和单文件支持