4 个版本 (破坏性更新)

0.4.0 2019年6月4日
0.3.0 2018年11月14日
0.2.0 2016年3月14日
0.1.0 2016年2月9日

#104 in 国际化 (i18n)

Download history 5081/week @ 2024-03-14 7653/week @ 2024-03-21 4641/week @ 2024-03-28 7602/week @ 2024-04-04 5733/week @ 2024-04-11 8937/week @ 2024-04-18 5287/week @ 2024-04-25 5553/week @ 2024-05-02 8726/week @ 2024-05-09 15108/week @ 2024-05-16 8589/week @ 2024-05-23 6892/week @ 2024-05-30 7970/week @ 2024-06-06 7897/week @ 2024-06-13 7159/week @ 2024-06-20 3149/week @ 2024-06-27

27,878 每月下载量
12 Crates 使用 (11 直接使用)

MIT 许可证

37KB
852

Rust 的 Gettext

文档(最新稳定版)

目前的路线图

  • 解析 MO 文件(10.3)
  • 解析元数据(6.2)
  • 支持非 UTF-8 编码
  • 解析复数表达式(11.2.6)
  • 正确的路径查找?(11.2.3)

lib.rs:

此 crate 是 GNU gettext 翻译框架在 Rust 中的重新实现。它允许您的 Rust 程序解析包含翻译的 GNU MO 文件并在用户界面中使用它们。

与官方的 C 实现相比,它包含几个差异。值得注意的是,此 crate 不依赖于全局的区域设置(2.2),也不强制为存储您的翻译目录指定目录结构(11.2.3)。相反,用户明确选择要使用的翻译目录。

此 crate 仍在开发中,可能在功能上与原始实现不完全相同。

有关确切的功能兼容性,请参阅 README 中的路线图。

示例


use std::fs::File;
use gettext::Catalog;

fn main() {
    let f = File::open("french.mo").expect("could not open the catalog");
    let catalog = Catalog::parse(f).expect("could not parse the catalog");

    // Will print out the French translation
    // if it is found in the parsed file
    // or "Name" otherwise.
    println!("{}", catalog.gettext("Name"));
}

依赖项

~2.5MB
~32K SLoC