#localization #yaml #json

loon-embed

Rust 的 I18n,支持嵌入 YAML、JSON

2 个不稳定版本

0.5.0 2021年11月30日
0.4.0 2021年11月26日

#369国际化 (i18n)

MIT 许可证

23KB
551

Loon

CI Docs Crates.io

Loon 是一个本地化和国际化库,灵感来源于 ruby-i18n

它使用 rust-embed 将本地化资源嵌入到您的二进制文件中。

用法

通过 RustEmbed 加载地区资源并在您的 lib.rs 中初始化 Loon

use rust_embed::RustEmbed;

// Load Loon macro, for allow you use `t!` macro in anywhere.
#[macro_use]
extern crate loon_embed;

// Use RustEmbed to locale assets
#[derive(RustEmbed)]
#[folder = "locales/"]
#[include = "*.yml"]
struct Asset;

fn main() {
    loon_embed::init::<Asset>("en");
}

您必须将 I18n YAML 文件放在 locales/ 文件夹中。

locales/
├── en.yml
├── zh-CN.yml

例如 en.yml

greeting: Hello world
messages:
  hello: Hello, {}

现在您可以在任何地方使用 t! 宏。

t!("greeting");
// => "Hello world"

t!("messages.hello", "world");
// => "Hello, world"

您可以使用 loon_embed::set_locale 或再次调用 loon_embed::init 来在运行时更改当前的区域设置。

loon_embed::set_locale("zh-CN");
loon_embed::locale();
// => "zh-CN"

许可证

MIT

依赖项

~2–11MB
~95K SLoC