#localization #icu4x

i18n_utility-rizzen-yazston

The i18n_utility crate of the Internationalisation project

5 releases (3 breaking)

0.9.1 Mar 24, 2024
0.9.0 Mar 21, 2024
0.8.0 Feb 3, 2024
0.7.0 Dec 18, 2023
0.6.1 Jul 6, 2023

#278 in Internationalization (i18n)

Download history 16/week @ 2024-01-29 16/week @ 2024-02-19 79/week @ 2024-02-26 7/week @ 2024-03-04 9/week @ 2024-03-11 245/week @ 2024-03-18 30/week @ 2024-03-25 47/week @ 2024-04-01 4/week @ 2024-04-08 4/week @ 2024-04-15

213 downloads per month
Used in 9 crates (8 directly)

BSD-3-Clause

38KB
426 lines

i18n_utility

Rizzen Yazston :icu4x: https://github.com/unicode-org/icu4x :url-unicode: https://home.unicode.org/ :BCP_47_Language_Tag: https://www.rfc-editor.org/rfc/bcp/bcp47.txt

Welcome to the i18n_utility crate of the Internationalisation (i18n) project.

This crate consists of five modules:

  • error: Contains the error enum for the language registry,

  • language: Registry of language tags with ICU4X's LanguageIdentifier or Locale instances,

  • tagged_string: Simple tagged string type,

  • traits: Traits for localisation of structs and enums,

  • types: Simple struct and enum types.

Features

Available features for i18n_utility crate:

  • icu_extended: Use the more detailed ICU information structs, types, and methods.

  • sync: Allow for rust's concurrency capabilities to be used. Use of Arc and Mutex instead Rc and RefCell.

Modules

language: Registry for holding ICU4X LanguageIdentifier or Locale instances.

This module contains the LanguageTagRegistry type, to provide a simple container that caches the {BCP_47_Language_Tag}[BCP 47 Language Tag] strings and the LanguageIdentifier instances, or when the icu_extended feature is enabled the Locale instances instances is used instead.

The purpose of the registry is to reduce the need of parsing language tags repeatedly, by storing the result LanguageIdentifier for querying language tag in the registry, and uses the existing LanguageIdentifier for the querying language tag when requested.

The LanguageIdentifier or Locale type can be provided by either the icu_locid crate or the icu meta-crate. These two crates are part of the {icu4x}[ICU4X] project developed by the {url-unicode}[Unicode Consortium].

tagged_string: Tagged string.

The immutable TaggedString type simply associates a language tag ([Rc]<LanguageTag> or [Arc]<LanguageTag>) to a text string (String).

In the context of the i18n project, the identifier tag is expected to be a {BCP_47_Language_Tag}[BCP 47 Language Tag] string.

Acknowledgements

Stefano Angeleri for advice on various design aspects of implementing the library of the Internationalisation project, and also providing the Italian translation of error message strings.

Dependencies

~4MB
~77K SLoC