Trait i18n_embed::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 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§
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 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_file<'a>(
&self,
language_id: &LanguageIdentifier,
i18n_assets: &'a dyn I18nAssets
) -> (String, Option<Cow<'a, [u8]>>)
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.
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().