Trait i18n_embed::LanguageLoader [−][src]
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().