= i18n_provider_sqlite3
Rizzen Yazston
:BufferProvider: https://docs.rs/icu_provider/latest/icu_provider/buf/trait.BufferProvider.html
:CLDR: https://cldr.unicode.org/
:ICU4X: https://github.com/unicode-org/icu4x
:Unicode_Consortium: https://home.unicode.org/

Welcome to the *`i18n_provider_sqlite3`* crate of the _Internationalisation_ (i18n) project.

This crate consists of two modules:

* `error`: Contains the error enum for the Sqlite3 provider,

* `provider`: The provider implementation using Sqlite3 for the data store.

== Features

Available features for `i18n_provider_sqlite3` crate:

* `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`.

== Modules

=== Sqlite3 provider for localisation strings.

This crate implements [`LocalisationProviderTrait`] using Sqlite3 as the data store for localisation strings. As a directory path is used at the time of creating a `LocalisationProviderSqlite3` instance, it means that an application can have multiple data stores for both application localisation strings, and also for data packages' localisation strings.

== Localisation Sqlite3 templates
 
Can find the templates `all_in_one.sqlite3` and component `application.sqlite3` for the application in the `l10n` directory.

== 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.
