3 releases
0.0.3 | Jan 24, 2023 |
---|---|
0.0.2 | Jan 23, 2023 |
0.0.1 | Jan 23, 2023 |
#124 in Internationalization (i18n)
213 downloads per month
2MB
108K
SLoC
rust_iso/iso639
A rust crate providing ISO 639 1, ISO 639 2, ISO 639 3 , ISO 15924 support.
What is ISO 639
ISO 639 is a standardized nomenclature used to classify languages. Each language is assigned a two-letter (639-1) and three-letter (639-2 and 639-3) lowercase abbreviation, amended in later versions of the nomenclature.
This table lists all of:
ISO 639-1: two-letter codes, one per language for ISO 639 macrolanguage And some of:
ISO 639-2/T: three-letter codes, for the same languages as 639-1
ISO 639-2/B: three-letter codes, mostly the same as 639-2/T, but with some codes derived from English names rather than native names of languages (in the following table, these differing codes are highlighted in boldface)
ISO 639-3: three-letter codes, the same as 639-2/T for languages, but with distinct codes for each variety of an ISO 639 macrolanguage
-- Wikipedia
Installing
[dependencies]
rust_iso639 = "0.0.1"
License
rust-iso/rust_iso639 is licensed under the Apache-2.0 license.
Using
See using section of the documentation.
Quick guide:
let lang = rust_iso639::from_code("zh");
let lang = rust_iso639::from_code_2t("zho");
let lang = rust_iso639::from_code_2b("chi");
let lang = rust_iso639::from_code_3("zho");
println!("{:?}", rust_iso639::ALL_CODE);
println!("{:?}", rust_iso639::ALL_CODE_2T);
println!("{:?}", rust_iso639::ALL_CODE_2B);
println!("{:?}", rust_iso639::ALL_CODE_3);
println!("{:?}", rust_iso639::CODE_MAP);
println!("{:?}", rust_iso639::CODE_2T_MAP);
println!("{:?}", rust_iso639::CODE_2B_MAP);
println!("{:?}", rust_iso639::CODE_3_MAP);
Data sample:
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,
}
Source(s)
- 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
- Codes for the representation of names of scripts
- 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/
Dependencies
~0.6–8.5MB
~71K SLoC