#language #iso #codes #specification #scope #part #identifier

codes-iso-639

此软件包包含 ISO 639(第 1 部分、第 3 部和第 5 部分)语言代码规范的实现

6 个版本

0.1.5 2022 年 12 月 25 日
0.1.4 2022 年 12 月 23 日

#687数据结构

Download history 49/week @ 2024-03-11 14/week @ 2024-03-18 22/week @ 2024-03-25 35/week @ 2024-04-01 16/week @ 2024-04-08 32/week @ 2024-04-15 39/week @ 2024-04-22 24/week @ 2024-04-29 9/week @ 2024-05-06 18/week @ 2024-05-13 6/week @ 2024-05-20 27/week @ 2024-05-27 10/week @ 2024-06-03 13/week @ 2024-06-10 7/week @ 2024-06-17 19/week @ 2024-06-24

每月 51 次下载
codes-iso-3166 中使用

MIT 许可证

215KB
959

软件包 codes-iso-639

此软件包包含 ISO 639 第 1 部分第 3 部分第 5 部分 语言代码规范的实现。

crates.io docs.rs

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

  • 实现了 StandardizedFixedLengthCode 特性。

版本 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