pub trait LanguageLoader {
    // Required methods
    fn fallback_language(&self) -> &LanguageIdentifier;
    fn domain(&self) -> &str;
    fn language_file_name(&self) -> String;
    fn current_language(&self) -> LanguageIdentifier;
    fn load_languages(
        &self,
        i18n_assets: &dyn I18nAssets,
        language_ids: &[&LanguageIdentifier]
    ) -> Result<(), I18nEmbedError>;

    // Provided methods
    fn language_file<'a>(
        &self,
        language_id: &LanguageIdentifier,
        i18n_assets: &'a dyn I18nAssets
    ) -> (String, Option<Cow<'a, [u8]>>) { ... }
    fn available_languages(
        &self,
        i18n_assets: &dyn I18nAssets
    ) -> Result<Vec<LanguageIdentifier>, I18nEmbedError> { ... }
    fn load_available_languages(
        &self,
        i18n_assets: &dyn I18nAssets
    ) -> Result<(), I18nEmbedError> { ... }
    fn load_fallback_language(
        &self,
        i18n_assets: &dyn I18nAssets
    ) -> Result<(), I18nEmbedError> { ... }
}
Expand description

A trait used by I18nAssets to load a language file for a specific rust module using a specific localization system. The trait is designed such that the loader could be swapped during runtime, or contain state if required.

Required Methods§

source

fn fallback_language(&self) -> &LanguageIdentifier

The fallback language for the module this loader is responsible for.

source

fn domain(&self) -> &str

The domain for the translation that this loader is associated with.

source

fn language_file_name(&self) -> String

The language file name to use for this loader’s domain.

source

fn current_language(&self) -> LanguageIdentifier

Get the language which is currently loaded for this loader.

source

fn load_languages( &self, i18n_assets: &dyn I18nAssets, language_ids: &[&LanguageIdentifier] ) -> Result<(), I18nEmbedError>

Load the languages language_ids using the resources packaged in the i18n_embed in order of fallback preference. This also sets the LanguageLoader::current_language() to the first in the language_ids slice. You can use select() to determine which fallbacks are actually available for an arbitrary slice of preferences.

Provided Methods§

source

fn language_file<'a>( &self, language_id: &LanguageIdentifier, i18n_assets: &'a dyn I18nAssets ) -> (String, Option<Cow<'a, [u8]>>)

The computed path to the language file, and Cow of the file itself if it exists.

source

fn available_languages( &self, i18n_assets: &dyn I18nAssets ) -> Result<Vec<LanguageIdentifier>, I18nEmbedError>

Calculate the languages which are available to be loaded.

source

fn load_available_languages( &self, i18n_assets: &dyn I18nAssets ) -> Result<(), I18nEmbedError>

Load all available languages with LanguageLoader::load_languages().

source

fn load_fallback_language( &self, i18n_assets: &dyn I18nAssets ) -> Result<(), I18nEmbedError>

Implementors§