= i18n_provider
Rizzen Yazston

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

This crate consists of two modules:

* `error`: Contains the enum for common errors regardless of the implementation of the localisation provider trait,

* `provider`: The localisation provider trait.

== Features

Available features for `i18n_provider` crate:

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

== Modules

=== `provider`: A language string provider.

A trait for retrieving localisation language strings from a data repository via a provider that implements the trait methods: `strings()` and `string()`. In addition, there are other trait methods for retrieve the default language for a component, and supported languages for entire data repository, component and identifier respectively.
 
For an implementation example, see the `i18n_provider_sqlite3-rizzen-yazston` crate, which uses Sqlite3 for its data store.

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