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

#283 in Internationalization (i18n)

29 downloads per month
Used in iced_af

BSD-3-Clause

455KB
7.5K SLoC

i18n

Rizzen Yazston

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

This convenience meta crate contains selected available crates:

  • i18n_lexer: A simple lexer to tokenise a string,

  • i18n_localiser: The multilingual localisation system,

  • i18n_provider: Trait for providing language strings, and error struct,

  • i18n_provider_sqlite3: Implementation of i18n_provider using Sqlite3 as its data store,

  • i18n_utility: Contains the LanguageTagRegistry``, and the TaggedString` type.

NOTE: All these crates on crates.io have the names appended with the suffix -rizzen-yazston to distinguish them from internationalisation crates created by other authors.

Features

Available features for i18n_icu crate:

  • icu_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.

  • icu_compiled_data [default]: Allow for the internal data of the various ICU4X components.

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

  • icu_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.

  • logging: To provide some logging information.

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

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.

Usage

For most use cases, just the use of i18n-rizzen-yazston crate will be sufficient to use the multilingual message system, though the individual crates can be selected individual if the entire i18n project is not required.

Cargo.toml

[dependencies]
i18n-rizzen-yazston = "0.9.0"

Examples

See the various component crates for usage examples.

Dependencies

~29MB
~525K SLoC