#国际化 #本地化 #翻译 #网页

i18n_codegen

使用代码生成实现的安全本地化库

2 个版本

0.1.1 2019年9月29日
0.1.0 2019年9月29日

#45 in #i18n

Download history • Rust 包仓库 54/week @ 2024-02-26 • Rust 包仓库 49/week @ 2024-03-04 • Rust 包仓库 37/week @ 2024-03-11 • Rust 包仓库 42/week @ 2024-03-18 • Rust 包仓库 54/week @ 2024-03-25 • Rust 包仓库 95/week @ 2024-04-01 • Rust 包仓库 78/week @ 2024-04-08 • Rust 包仓库 59/week @ 2024-04-15 • Rust 包仓库 67/week @ 2024-04-22 • Rust 包仓库 129/week @ 2024-04-29 • Rust 包仓库 93/week @ 2024-05-06 • Rust 包仓库 46/week @ 2024-05-13 • Rust 包仓库 39/week @ 2024-05-20 • Rust 包仓库 12/week @ 2024-05-27 • Rust 包仓库 23/week @ 2024-06-03 • Rust 包仓库 32/week @ 2024-06-10 • Rust 包仓库

每月 122 次下载

MIT 许可证

32KB
729

i18n_codegen

基于代码生成的 Rust 国际化库。

通过利用代码生成,我们可以避免像国际化键中的拼写错误、缺失插值或不同地区之间的各种错误等常见问题。

它需要一个目录,每个地区一个 JSON 文件。以下是一个包含英语和丹麦翻译的示例

// tests/doc_locales/en.json
{
    "hello_world": "Hello, World!",
    "greeting": "Hello {name}"
}

// tests/doc_locales/da.json
{
    "hello_world": "Hej, Verden!",
    "greeting": "Hej {name}"
}

在 Rust 中

use i18n_codegen::i18n;

i18n!("tests/doc_locales");

fn main() {
    assert_eq!("Hello, World!", Locale::En.hello_world());
    assert_eq!("Hej, Verden!", Locale::Da.hello_world());

    assert_eq!("Hello Bob", Locale::En.greeting(Name("Bob")));
    assert_eq!("Hej Bob", Locale::Da.greeting(Name("Bob")));
}

您可以在 https://docs.rs/i18n_codegen 上找到更多详细信息。

依赖项

~4.5MB
~94K SLoC