oxilangtag 0.1.2

Simple and fast implementation of language tag normalization and validation
Documentation

oxilangtag

actions status Latest Version Released API docs

OxiLangTag is a Rust library allowing to validate and normalize language tags following RFC 5646 (BCP 47).

It is a fork of the language-tags focusing on RDF use cases. You might find the language-tags crate more convenient.

It allows zero stack allocation language tag validation. Getters are also provided to easily retrieve the various language tag components.

Example:

use oxilangtag::LanguageTag;

// Parsing and validation
let language_tag = LanguageTag::parse("zh-cmn-Hans-CN-x-test").unwrap();
assert_eq!(language_tag.as_str(), "zh-cmn-Hans-CN-x-test");

// Language tag components
assert_eq!(language_tag.primary_language(), "zh");
assert_eq!(language_tag.extended_language(), Some("cmn"));
assert_eq!(language_tag.full_language(), "zh-cmn");
assert_eq!(language_tag.script(), Some("Hans"));
assert_eq!(language_tag.region(), Some("CN"));
assert_eq!(language_tag.extension(), None);
assert_eq!(language_tag.private_use_subtags().collect::<Vec<_>>(), vec!["test"]);

License

This project is licensed under the MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT).

It is based on the language-tags crate by pyfisch under MIT license.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in Futures by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.