Crate icu_locid

Source
Expand description

Parsing, manipulating, and serializing Unicode Language and Locale Identifiers.

This module is published as its own crate (icu_locid) and as part of the icu crate. See the latter for more details on the ICU4X project.

The module provides algorithms for parsing a string into a well-formed language or locale identifier as defined by UTS #35: Unicode LDML 3. Unicode Language and Locale Identifiers.

Locale is the most common structure to use for storing information about a language, script, region, variants and extensions. In almost all cases, this struct should be used as the base unit for all locale management operations.

LanguageIdentifier is a strict subset of Locale which can be useful in a narrow range of cases where Unicode Extensions are not relevant.

If in doubt, use Locale.

ยงExamples

use icu::locid::Locale;
use icu::locid::{
    locale,
    subtags::{language, region},
};

let mut loc: Locale = locale!("en-US");

assert_eq!(loc.id.language, language!("en"));
assert_eq!(loc.id.script, None);
assert_eq!(loc.id.region, Some(region!("US")));
assert_eq!(loc.id.variants.len(), 0);

loc.id.region = Some(region!("GB"));

assert_eq!(loc, locale!("en-GB"));

For more details, see Locale and LanguageIdentifier.

Re-exportsยง

pub use ParserError as Error;

Modulesยง

extensions
Unicode Extensions provide a mechanism to extend the LanguageIdentifier with additional bits of information - a combination of a LanguageIdentifier and Extensions is called Locale.
helpers ๐Ÿ”’
langid ๐Ÿ”’
locale ๐Ÿ”’
macros ๐Ÿ”’
ordering ๐Ÿ”’
Utilities for performing ordering operations on locales.
parser ๐Ÿ”’
shortvec ๐Ÿ”’
This module includes variable-length data types that are const-constructible for single values and overflow to the heap.
subtags
Language Identifier and Locale contains a set of subtags which represent different fields of the structure.
zerovec
Documentation on zero-copy deserialization of locale types.

Macrosยง

langid
A macro allowing for compile-time construction of valid LanguageIdentifiers.
locale
A macro allowing for compile-time construction of valid Locales.

Structsยง

LanguageIdentifier
A core struct representing a Unicode BCP47 Language Identifier.
Locale
A core struct representing a Unicode Locale Identifier.

Enumsยง

ParserError
List of parser errors that can be generated while parsing LanguageIdentifier, Locale, subtags or extensions.
SubtagOrderingResultDeprecated
The result of a subtag iterator comparison operation.