LanguageLoader

Trait LanguageLoader 

Source
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 reload(&self, i18n_assets: &dyn I18nAssets) -> Result<(), I18nEmbedError>;
    fn load_languages(
        &self,
        i18n_assets: &dyn I18nAssets,
        language_ids: &[LanguageIdentifier],
    ) -> Result<(), I18nEmbedError>;

    // Provided methods
    fn language_files<'a>(
        &self,
        language_id: &LanguageIdentifier,
        i18n_assets: &'a dyn I18nAssets,
    ) -> (String, Vec<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 reload(&self, i18n_assets: &dyn I18nAssets) -> Result<(), I18nEmbedError>

Reload the currently loaded languages.

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_files<'a>( &self, language_id: &LanguageIdentifier, i18n_assets: &'a dyn I18nAssets, ) -> (String, Vec<Cow<'a, [u8]>>)

The computed path to the language files, and data contained within the files at that path itself if they exist. There can be multiple files at a given path, in order of preference from high to low.

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§