Crate icu_locale_core
source ·Expand description
Parsing, manipulating, and serializing Unicode Language and Locale Identifiers.
This module is published as its own crate (icu_locale_core
)
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
. Additionally
the module provides preferences
interface for operations on locale preferences and conversions
from and to locale unicode extensions.
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::locale::Locale;
use icu::locale::{
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
.
Modules§
- Unicode Extensions provide a mechanism to extend the
LanguageIdentifier
with additional bits of information - a combination of aLanguageIdentifier
andExtensions
is calledLocale
. - This API provides necessary functionality for building user preferences structs.
- Language Identifier and Locale contains a set of subtags which represent different fields of the structure.
- Documentation on zero-copy deserialization of locale types.
Macros§
- A macro allowing for compile-time construction of valid
LanguageIdentifier
s. - A macro allowing for compile-time construction of valid
Locale
s.
Structs§
- A core struct representing a
Unicode BCP47 Language Identifier
. - A core struct representing a
Unicode Locale Identifier
.
Enums§
- List of parser errors that can be generated while parsing
LanguageIdentifier
,Locale
,subtags
orextensions
.