| Crates.io | rat_embed_lang |
| lib.rs | rat_embed_lang |
| version | 0.1.1 |
| created_at | 2025-10-30 10:29:25.595282+00 |
| updated_at | 2025-10-30 13:43:38.825406+00 |
| description | A simple embedded internationalization framework for Rust with compile-time embedding and runtime language switching |
| homepage | https://github.com/0ldm0s/rat_embed_lang |
| repository | https://github.com/0ldm0s/rat_embed_lang |
| max_upload_size | |
| id | 1907977 |
| size | 44,193 |
一个极其简单的Rust多语言框架,支持编译时嵌入和运行时语言切换。
[dependencies]
rat_embed_lang = "0.1.0"
详细的用法示例请查看 examples/ 目录:
basic_usage.rs - 基础多语言使用duplicate_key_test.rs - 重复key检测和错误处理parameterized_translation.rs - 参数化翻译和动态文本替换运行示例:
cargo run --example basic_usage
cargo run --example parameterized_translation
| 函数 | 描述 |
|---|---|
register_translations(translations) |
注册翻译数据 |
set_language(lang) |
设置当前语言 |
t(key) |
获取当前语言的翻译文本 |
tf(key, args) |
获取参数化翻译文本 |
| 函数 | 描述 |
|---|---|
current_language() |
获取当前语言 |
clear_translations() |
清理所有已注册的翻译 |
t_with_lang(key, lang) |
获取指定语言的翻译 |
tf_with_lang(key, lang, args) |
获取指定语言的参数化翻译 |
has_translation(key) |
检查是否存在翻译 |
get_all_keys() |
获取所有翻译key |
| 函数 | 描述 |
|---|---|
normalize_language_code(code) |
标准化语言代码 |
get_language_from_env() |
从环境变量获取语言设置 |
框架按以下优先级检测语言:
RAT_LANG - 应用特定的语言设置LANG - 系统语言环境变量en-US - 默认英语详细的环境变量检测示例请查看 basic_usage.rs
当请求的翻译不存在时,按以下顺序fallback:
en-US)[key] 格式的key名详细的fallback机制示例请查看 basic_usage.rs
框架会检测重复的翻译key,防止意外覆盖:
重复key检测和错误处理的详细示例请查看 duplicate_key_test.rs
错误信息根据当前语言环境显示:
多语言错误信息的详细示例请查看 duplicate_key_test.rs
支持动态文本替换,使用 {参数名} 格式:
tf(key, args) - 获取参数化翻译文本tf_with_lang(key, lang, args) - 获取指定语言的参数化翻译tfm! 宏 - 便捷的参数化翻译语法详细用法请查看 parameterized_translation.rs 示例。
详细的高级用法示例请查看各个示例文件。
查看 examples/ 目录中的完整示例:
basic_usage.rs - 基础多语言使用和fallback机制duplicate_key_test.rs - 重复key检测和错误处理parameterized_translation.rs - 参数化翻译和动态文本替换运行示例:
cargo run --example basic_usage
cargo run --example duplicate_key_test
cargo run --example parameterized_translation
LGPL v3
欢迎提交Issue和Pull Request!