10 个版本 (6 个稳定版)
2.4.0 | 2023年11月26日 |
---|---|
2.3.0 | 2023年5月1日 |
2.2.0 | 2022年11月1日 |
2.1.0 | 2021年12月26日 |
0.1.0 | 2017年4月18日 |
在 国际化 (i18n) 中排名 27
每月下载量 10,844
在 36 个 crate 中使用(直接使用 21 个)
2.5MB
97K SLoC
ISO 639 语言代码
简介
在处理不同的语言输入和 API 时,会使用不同的标准来识别语言。以自动化的方式在这些标准之间进行转换可能会很繁琐。此 crate 提供了一个枚举,它支持从 639-1 和 639-3 转换到这些格式,以及转换为英语名称或自名(本地名称)。
此 crate 包含 ISO 639 表,以静态嵌入表的形式存在。这会增加二进制文件的大小,但如果性能很重要,则允许非常高效的查找。如果关注大小,可以分别启用或禁用英语名称和本地名称。
此 crate 使用 Apache 2.0 许可证授权,请参阅 LICENSE.md 文件以获取详细信息。
使用方法
Cargo.toml
:
[dependencies]
isolang = "2.0"
示例
use isolang::Language;
assert_eq!(Language::from_639_1("de").unwrap().to_name(), "German");
assert_eq!(Language::from_639_3("spa").unwrap().to_639_1(), Some("es"));
// undefined language (ISO code und)
assert_eq!(Language::default(), Language::Und);
use isolang::Language;
// `to_name()` is available if compiled with the `english_names` feature.
assert_eq!(Language::from_str("es").unwrap().to_name(), "Spanish");
assert_eq!(Language::from_str("spa").unwrap().to_name(), "Spanish");
// `from_str(lowercase_name)` is available if compiled with the `english_names` and `lowercase_names` features.
assert_eq!(Language::from_str("spanish").unwrap().to_name(), "Spanish");
// `from_str(local_name)` is available if compiled with the `english_names`, `lowercase_names` and `local_names` features.
assert_eq!(Language::from_str("español").unwrap().to_name(), "Spanish");
支持的 Cargo 功能
请查看注释的 [Cargo.toml](Cargo.toml) 文件以获取支持的特性的最新列表。
Serde 支持
此 crate 还支持序列化 Language
枚举。要启用此功能,请将以下行添加到您的 Cargo.toml
(而不是上面的代码)
[dependencies.isolang]
features = ["serde"]
version = "2.0"
数据源
数据从 https://iso639-3.sil.org/code_tables/download_tables 下载。
依赖项
~0.1–11MB
~127K SLoC