#icu4x #localization

i18n_icu-rizzen-yazston

The i18n_icu crate of the Internationalisation project

3 releases (breaking)

0.8.0 Feb 3, 2024
0.7.0 Dec 18, 2023
0.6.1 Jul 6, 2023

#414 in Internationalization (i18n)

Download history 1/week @ 2024-06-10

86 downloads per month
Used in 2 crates

BSD-3-Clause

65KB
869 lines

i18n_icu

Rizzen Yazston :icu4x: https://github.com/unicode-org/icu4x :url-unicode: https://home.unicode.org/ :DataProvider: https://docs.rs/icu_provider/1.2.0/icu_provider/trait.DataProvider.html :BlobDataProvider: https://docs.rs/icu_provider_blob/1.2.0/icu_provider_blob/struct.BlobDataProvider.html :FsDataProvider: https://docs.rs/icu_provider_fs/1.2.1/icu_provider_fs/struct.FsDataProvider.html :BufferProvider: https://docs.rs/icu_provider/1.2.0/icu_provider/buf/trait.BufferProvider.html

{icu4x}[ICU4X] project (maintained by the {url-unicode}[Unicode Consortium]) data provider helper.

The IcuDataProvider type contains the DataProvider enum of supported implementations of ICU4X {DataProvider}DataProvider. Depending on the features selected, they are: Internal (internally uses the BakedDataProvider), {BlobDataProvider}BlobDataProvider, or {FsDataProvider}FsDataProvider.

When data provider is not Internal and depending on the data provider used, the IcuDataProvider may contain non-locale based data, such as the grapheme cluster segmenter and the selected character properties set data.

IcuDataProvider type is used within the Rc type as Rc<IcuDataProvider> or Arc type as Arc<IcuDataProvider> to prevent unnecessary duplication.

Features

Available features for i18n_icu crate:

  • compiled_data (Preferred): Allow for the internal data of the various ICU4X components.

  • blob: Allow for instances of BlobDataProvider to be used various ICU4X components that supports {BufferProvider}BufferProvider. An alternative provider when the internal data of ICU4X components are insufficient for a particular use case.

  • fs: Allow for instances of FsDataProvider to be used various ICU4X components that supports BufferProvider. An alternative provider when the internal data of ICU4X components are insufficient for a particular use case.

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

  • log: Enable log support.

Acknowledgement

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

Dependencies

~6MB
~105K SLoC