6 个版本
0.1.5 | 2022 年 12 月 25 日 |
---|---|
0.1.4 | 2022 年 12 月 23 日 |
#687 在 数据结构
每月 51 次下载
在 codes-iso-3166 中使用
215KB
959 行
软件包 codes-iso-639
此软件包包含 ISO 639 第 1 部分、第 3 部分 和 第 5 部分 语言代码规范的实现。
ISO 639-1,两位字符代码,主要设计用于术语,包括世界上大多数主要语言的标识符,这些语言不仅在世界上所有文献的总体中最为频繁出现,而且也是世界上最具发展的语言之一,拥有专业词汇和术语。ISO 639-1 包括 ISO 639-2 覆盖的语言子集的标识符。
ISO 639-2,三位字符代码,主要设计用于目录以及术语。它的范围比 ISO 639-1 更宽,设计用于包括在世界上所有文献的总体中最为频繁出现的语言的标识符,无论这些语言中是否存在专业术语。由于三位字符可以允许一个更大的不同标识符集合,因此 alpha-3 代码可以容纳更大的语言集合。实际上,ISO 639-2 比 ISO 639-1 包含更多的条目,但其范围并不如此广泛,以至于每个已记录的个别语言都有单独的标识符。ISO 639-2 仅限于那些至少发展了适度文献的语言的覆盖范围。然而,其他语言通过语言集合的标识符(如语系)得到容纳。
总之,ISO 639-1 和 ISO 639-2 之间的基本区别在于范围:ISO 639-1 的范围更窄,专注于已开发专业术语的语言。在实践中,ISO 639-2 覆盖了更多的个别语言(由于其范围限制较少)。它还包括语言集合的标识符。
有关 API 设计的说明,请参阅仓库 README。
示例
use codes_iso_639::part_1::LanguageCode;
let code = LanguageCode::Fr;
assert_eq!(code.as_ref(), "fr");
assert_eq!(code.language_name(), "French");
特性
默认情况下,只启用了 serde
功能,以及部分1的两字母语言代码。
serde
- 启用不同语言代码类型的序列化。part_3
- 添加ISO 639-3三位字母语言代码。comment
- 添加LanguageCode::comment
方法。language_type
- 添加LanguageCode::language_type
方法。macro_individuals
- 添加LanguageCode::macro_individuals
方法。scope
- 添加LanguageCode::scope
方法。
part_5
- 添加ISO 639-5三位字母语言家族或组代码。
变更
版本 0.1.5
- 针对codes-common中的新
build
模块进行适配
版本 0.1.4
- 实现了
Standardized
和FixedLengthCode
特性。
版本 0.1.3
- 使用新的
codes-common
CSV处理框架。
版本 0.1.2
- 添加了
ALL_CODES
常量。
版本 0.1.1
- 基于更新的
codes-common
进行代码清理。 - 使用新的
Code
特性和宏创建的实现。
版本 0.1.0
- 首次发布,包括第1、2和3部分。
待办事项
待定
依赖项
~0.4–2.8MB
~44K SLoC