15 个版本 (8 个稳定)

1.5.0 2024年5月28日
1.4.0 2023年11月17日
1.3.2 2023年10月3日
1.2.1 2023年4月22日
0.1.0 2020年10月15日

国际化 (i18n) 中排名 415

Download history 1858/week @ 2024-05-05 1834/week @ 2024-05-12 2012/week @ 2024-05-19 1799/week @ 2024-05-26 2159/week @ 2024-06-02 2146/week @ 2024-06-09 1704/week @ 2024-06-16 1170/week @ 2024-06-23 1060/week @ 2024-06-30 693/week @ 2024-07-07 1922/week @ 2024-07-14 1274/week @ 2024-07-21 1990/week @ 2024-07-28 1284/week @ 2024-08-04 1778/week @ 2024-08-11 1507/week @ 2024-08-18

每月下载量 6,583
10 个 Crates 中使用 (4 个直接使用)

Unicode-3.0

280KB
4.5K SLoC

icu_provider_fs crates.io

icu_provider_fsICU4X 组件之一。

它从给定目录的文件系统中读取 ICU4X 数据文件。

示例

use icu_provider_fs::FsDataProvider;

let provider = FsDataProvider::try_new("/path/to/data/directory")
    .expect_err("Specify a real directory in the line above");

目录结构

ICU4X 数据目录在根目录下有一个名为 manifest.json 的文件,并且有一个包含数据键 (DataKey) 和区域 (DataLocale) 作为叶数据文件的嵌套结构。例如,阿拉伯语 JSON 数据用于基数复数规则,位于 plurals/cardinal@1/ar.json

目录结构的精确形式可能会随时间而改变。ICU4X 使用来自 manifest.json 的元数据来动态解释不同的目录结构版本。

├── manifest.json
├── dates
│   └── gregory@1
│       ├── ar-EG.json
│       ├── ar.json
│       ├── be.json
│       ⋮
│       └── und.json
└── plurals
    ├── cardinal@1
    │   ├── ar.json
    │   ├── be.json
    │   ⋮
    │   └── und.json
    └── ordinal@1
        ├── ar.json
        ├── be.json
        ⋮
        └── und.json

资源格式

ICU4X 数据可以存储在不同的格式中。目前有以下几种

  • JSON - 文本格式,易于阅读
  • Postcard - 二进制,小型资源格式
  • Bincode - 二进制,快速资源格式

传递给 FsDataProvider 构造函数的目录可能包含其中的任何一个。

注意:为了使 ICU4X 能够 反序列化 返回的数据,必须在 icu_provider 包中激活相应的 Cargo 功能。参见 AsDeserializingBufferProvider::as_deserializing

导出数据

要生成 FsDataProvider 所需的数据,请运行以下命令

icu4x-datagen --keys all --locales full --format dir

要导出 postcard 格式,使用

icu4x-datagen --keys all --locales full --format dir --syntax postcard

更多信息

有关开发、作者身份、贡献等方面的更多信息,请访问 ICU4X 主页

依赖项

~1.8–2.7MB
~52K SLoC