#语言 #本地化 #无障碍

languages-rs

为您的项目提供国际化库

2个不稳定版本

0.2.0 2021年7月13日
0.1.0 2021年3月27日

#149 in 国际化(i18n)


用于 phanes

MIT 许可证

31KB
305

languages-rs   Crates.io 版本 CI 工作流状态

Rust 的国际化库。

安装

使用 JSON 语言文件

[dependencies]
languages-rs = { version = "0.2.0", features = ["with-json"] }

使用 TOML 语言文件

[dependencies]
languages-rs = { version = "0.2.0", features = ["with-toml"] }

基本用法

languages/en.json

{
  "hello_world": "Hello world!"
}

src/main.rs

use languages_rs::{Config, Languages, load, Value};

fn main() -> Result<()> {
    let mut configuration: Config = Config::default().unwrap();
    configuration.add_language("en").unwrap();

    // Load all default languages.
    let texts: Languages = load(configuration).unwrap();

    // Get the English texts from `/languages/en.json`.
    let texts_en: LanguagesTexts = texts.try_get_language("en").unwrap();

    // Get the `hello_world` text from English texts.
    let en_hello_world: Value = texts_en.try_get_text("hello_world").unwrap();
    assert!(en_hello_world.is_string());

    // Another alternative to get the `hello_world` text from English texts is:
    let en_hello_world_2: Value = texts.try_get_text_from_language("en", "hello_world").unwrap();
    assert!(en_hello_world_2.is_string());

    assert_eq!(en_hello_world, en_hello_world_2);
    assert_eq!(en_hello_world.get_string(), en_hello_world_2.get_string());
}

示例

  • json_files - 使用 JSON 的语言文件。

    $ cargo run --example json_files --features "with-json"
    
  • toml_files - 使用 TOML 的语言文件。

    $ cargo run --example toml_files --features "with-toml"
    

测试

$ cargo test

作者

变更日志

CHANGELOG.md 文件中查看最新的仓库更改。

许可证:MIT

阅读文件 LICENSE 获取更多信息。

依赖

~0.5–1.2MB
~28K SLoC