Rust I18n

CI Docs Crates.io

Rust I18n is use Rust codegen for load YAML file storage translations on compile time, and give you a t! macro for simply get translation texts.

Inspired by ruby-i18n.

Usage

Load macro in your lib.rs

``rs // Load I18n macro, for allow you uset!` macro in anywhere.

[macro_use]

extern crate rust_i18n; ```

You must put I18n YAML files in locales/ folder.

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

For example of en.yml:

yml en: hello: Hello world messages: hello: Hello, %{name}

Now you can use t! macro in anywhere.

```rs t!("hello"); // => "Hello world"

t!("hello", locale = "zh-CN); // => "你好世界"

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

t!("messages.hello", locale = "zh-CN", name = "Jason"); // => "你好, Jason" ```

You can use rust_i18n::set_locale to change the current locale in runtime.

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

License

MIT