pub struct Locale { /* private fields */ }
Expand description
Locale configuration.
Users may accept several languages in some order of preference and may want to use rules from different culture for some particular aspect of the program behaviour, and operating systems allow them to specify this (to various extent).
The Locale
objects represent the user configuration. They contain:
- The primary
LanguageRange
. - Optional category-specific overrides.
- Optional fallbacks in case data (usually translations) for the primary language are not available.
The set of categories is open-ended. The locale
crate uses five well-known categories
messages
, numeric
, time
, collate
and monetary
, but some systems define additional
ones (GNU Linux has additionally paper
, name
, address
, telephone
and measurement
) and
these are provided in the user default Locale
and other libraries can use them.
Locale
is represented by a ,
-separated sequence of tags in LanguageRange
syntax, where
all except the first one may be preceded by category name and =
sign.
The first tag indicates the default locale, the tags prefixed by category names indicate overrides for those categories and the remaining tags indicate fallbacks.
Note that a syntactically valid value of HTTP Accept-Language
header is a valid Locale
. Not
the other way around though due to the presence of category selectors.
Implementations§
Source§impl Locale
impl Locale
Sourcepub fn user_default() -> Locale
pub fn user_default() -> Locale
Obtain the user default locale.
This is the locale indicated by operating environment.
Sourcepub fn global_default() -> Locale
pub fn global_default() -> Locale
Obtain the global default locale.
The global default for current()
locale. Defaults to user_default()
.
Sourcepub fn set_global_default(lb: Locale)
pub fn set_global_default(lb: Locale)
Change the global default locale.
Setting this overrides the default for new threads and threads that didn’t do any locale-aware operation yet.
Sourcepub fn current() -> Locale
pub fn current() -> Locale
Obtain the current locale of current thread.
Defaults to global_default()
on first use in each thread.
Sourcepub fn set_current(lb: Locale)
pub fn set_current(lb: Locale)
Change the current locale of current thread.
Sourcepub fn new(s: &str) -> Result<Locale, Error>
pub fn new(s: &str) -> Result<Locale, Error>
Construct locale from the string representation.
Locale
is represented by a ,
-separated sequence of tags in LanguageRange
syntax, where
all except the first one may be preceded by category name and =
sign.
The first tag indicates the default locale, the tags prefixed by category names indicate overrides for those categories and the remaining tags indicate fallbacks.
Sourcepub fn invariant() -> Locale
pub fn invariant() -> Locale
Construct invariant locale.
Invariant locale is represented simply with empty string.
Sourcepub fn add(&mut self, tag: &LanguageRange<'_>)
pub fn add(&mut self, tag: &LanguageRange<'_>)
Append fallback language tag.
Adds fallback to the end of the list.
Sourcepub fn add_category(&mut self, category: &str, tag: &LanguageRange<'_>)
pub fn add_category(&mut self, category: &str, tag: &LanguageRange<'_>)
Append category override.
Appending new override for a category that already has one will not replace the existing override. This might change in future.
Iterate over LanguageRange
s in this Locale
.
Returns tuples of optional category (as string) and corresponding LanguageRange
. All tags
in the list are returned, in order of preference.
The iterator is guaranteed to return at least one value.
Iterate over LanguageRange
s in this Locale
applicable to given category.
Returns LanguageRange
s in the Locale
that are applicable to provided category. The tags
are returned in order of preference, which means the category-specific ones first and then
the generic ones.
The iterator is guaranteed to return at least one value.
Trait Implementations§
Source§impl<'a> From<LanguageRange<'a>> for Locale
impl<'a> From<LanguageRange<'a>> for Locale
Source§fn from(t: LanguageRange<'a>) -> Locale
fn from(t: LanguageRange<'a>) -> Locale
impl Eq for Locale
impl StructuralPartialEq for Locale
Auto Trait Implementations§
impl Freeze for Locale
impl RefUnwindSafe for Locale
impl Send for Locale
impl Sync for Locale
impl Unpin for Locale
impl UnwindSafe for Locale
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)