Trait i18n_embed::LanguageLoader
source · [−]pub trait LanguageLoader {
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>;
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_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
fn fallback_language(&self) -> &LanguageIdentifier
fn fallback_language(&self) -> &LanguageIdentifier
The fallback language for the module this loader is responsible for.
fn language_file_name(&self) -> String
fn language_file_name(&self) -> String
The language file name to use for this loader’s domain.
fn current_language(&self) -> LanguageIdentifier
fn current_language(&self) -> LanguageIdentifier
Get the language which is currently loaded for this loader.
fn 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
The computed path to the language file, and Cow of the file
itself if it exists.
fn 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.
fn 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().