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§
Sourcefn fallback_language(&self) -> &LanguageIdentifier
fn fallback_language(&self) -> &LanguageIdentifier
The fallback language for the module this loader is responsible for.
Sourcefn language_file_name(&self) -> String
fn language_file_name(&self) -> String
The language file name to use for this loader’s domain.
Sourcefn current_language(&self) -> LanguageIdentifier
fn current_language(&self) -> LanguageIdentifier
Get the language which is currently loaded for this loader.
Sourcefn reload(&self, i18n_assets: &dyn I18nAssets) -> Result<(), I18nEmbedError>
fn reload(&self, i18n_assets: &dyn I18nAssets) -> Result<(), I18nEmbedError>
Reload the currently loaded languages.
Sourcefn load_languages(
&self,
i18n_assets: &dyn I18nAssets,
language_ids: &[LanguageIdentifier],
) -> Result<(), I18nEmbedError>
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§
Sourcefn language_files<'a>(
&self,
language_id: &LanguageIdentifier,
i18n_assets: &'a dyn I18nAssets,
) -> (String, Vec<Cow<'a, [u8]>>)
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.
Sourcefn available_languages(
&self,
i18n_assets: &dyn I18nAssets,
) -> Result<Vec<LanguageIdentifier>, I18nEmbedError>
fn available_languages( &self, i18n_assets: &dyn I18nAssets, ) -> Result<Vec<LanguageIdentifier>, I18nEmbedError>
Calculate the languages which are available to be loaded.
Sourcefn load_available_languages(
&self,
i18n_assets: &dyn I18nAssets,
) -> Result<(), I18nEmbedError>
fn load_available_languages( &self, i18n_assets: &dyn I18nAssets, ) -> Result<(), I18nEmbedError>
Load all available languages with LanguageLoader::load_languages().
Sourcefn load_fallback_language(
&self,
i18n_assets: &dyn I18nAssets,
) -> Result<(), I18nEmbedError>
fn load_fallback_language( &self, i18n_assets: &dyn I18nAssets, ) -> Result<(), I18nEmbedError>
Load the LanguageLoader::fallback_language().