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

The fallback language for the module this loader is responsible for.

The domain for the translation that this loader is associated with.

The language file name to use for this loader’s domain.

Get the language which is currently loaded for this loader.

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.

Calculate the languages which are available to be loaded.

Implementors

The fallback language for the module this loader is responsible for.

The domain for the translation that this loader is associated with.

The language file name to use for this loader.

Get the language which is currently loaded for this loader.

Load the languages language_ids using the resources packaged in the i18n_assets 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.

The fallback language for the module this loader is responsible for.

The domain for the translation that this loader is associated with.

The language file name to use for this loader’s domain.

Get the language which is currently loaded for this loader.

Load the languages language_ids using the resources packaged in the i18n_assets 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.

Note: Gettext doesn’t support loading multiple languages as multiple fallbacks. We only load the first of the requested languages, and the fallback is the src language.