3 个版本
0.0.3 | 2023 年 1 月 25 日 |
---|---|
0.0.2 | 2023 年 1 月 24 日 |
0.0.1 | 2023 年 1 月 23 日 |
632 在 文本处理
64KB
3.5K SLoC
rust_iso/iso15924
一个提供 ISO 15924 支持的 Rust 包。
什么是 ISO 15924
ISO 15924,表示书写系统名称的代码,是一个国际标准,定义了书写系统或脚本(“用于一种或多种语言的书面形式的图形字符集”)的代码。每个脚本都有一个四位字母代码和一个数字代码。[1]
尽可能的情况下,代码是从 ISO 639-2 衍生的,其中脚本名称和使用该脚本的语言名称相同(例如:Gujarātī ISO 639 guj,ISO 15924 Gujr)。优先考虑 639-2 图书馆代码,这与其他情况下通常优先考虑的术语代码不同。[1]
四位字母 ISO 15924 代码被纳入 IANA 语言子标签注册处,用于 IETF 语言标签,因此可以在使用此类语言标签的文件格式中使用。例如,它们可以用于 HTML 和 XML,以帮助 Web 浏览器确定用于外语的字体系。这样就可以区分,例如,使用西里尔字母(sr-Cyrl)或拉丁字母(sr-Latn)书写的塞尔维亚语,或者将罗马化或转写文本标记为如此。[1]
-- 维基百科
安装
[dependencies]
rust_iso15924 = "0.0.1"
许可证
rust-iso/rust_iso15924 在 Apache-2.0 许可证下发布。
使用
请参阅文档中的使用部分。
快速指南
let script = rust_iso15924::from_code("Adlm");
assert_eq!(166, script.unwrap().numeric);
let script = rust_iso15924::from_numeric(439);
assert_eq!("Afak", script.unwrap().code);
let script = rust_iso15924::from_numeric_str("439");
assert_eq!("Afak", script.unwrap().code);
println!("{:?}", rust_iso15924::ALL);
println!("{:?}", rust_iso15924::ALL_MAP);
println!("{:?}", rust_iso15924::NUMERIC_MAP);
println!("{:?}", rust_iso15924::ALL_NAME);
println!("{:?}", rust_iso15924::ALL_CODE);
println!("{:?}", rust_iso15924::ALL_NUMERIC);
println!("{:?}", rust_iso15924::ALL_NUMERIC_STR);
数据样本
pub struct LanguageCode<'a> {
///ISO Language Name
pub name: &'static str,
///639-1
pub code: &'static str,
///639-2/T
pub code_2t: &'static str,
///639-2/B
pub code_2b: &'static str,
//639-3 Macrolanguage
pub code_3: &'static str,
pub individual_languages: &'a [IndividualLanguages],
}
#[derive(Debug, Copy, Clone)]
pub struct IndividualLanguages {
///Name
pub name: &'static str,
///Code
pub code: &'static str,
}
来源
- https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
- https://en.wikipedia.org/wiki/ISO_639_macrolanguage
- https://www.rfc-editor.org/rfc/bcp/bcp47.txt
- http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry
- https://www.alchemysoftware.com/livedocs/ezscript/Topics/Catalyst/Language.htm
- 表示书写系统名称的代码
- https://www.zhihu.com/question/21980689
- https://en.wikipedia.org/wiki/Language_code
- https://iso639-3.sil.org/code_tables/download_tables
- http://unicode.org/iso15924/
依赖项
~0.7–10MB
~75K SLoC