pub struct I18n { /* private fields */ }Expand description
The aggregate i18n state.
Constructed once per app via App::use_i18n(), threaded
through any code that needs to render translated text.
Cheap to Clone (the internal signal is
Copy-by-pointer).
§Storage
Messages are stored in a Signal<HashMap<String, HashMap<String, String>>> keyed by locale → (key → message). The map is intentionally two-level: it
matches how translation files are typically organized
(en.json is one flat key/value map, zh-CN.json is
another, etc.) and it lets add_messages(locale, &[(k, v), ...]) build the inner map by direct
insertion without the user having to allocate one
HashMap per locale.
Implementations§
Source§impl I18n
Inherent implementation of I18n.
impl I18n
Inherent implementation of I18n.
Sourcepub fn change_locale(&self, locale: &str)
pub fn change_locale(&self, locale: &str)
Sets the active locale to locale. Triggers a
reactive update so any reactive t(key) read
re-evaluates.
Named change_locale (not set_locale) to avoid
colliding with the set_locale getter generated by
#[derive(Data)] on the struct field.
§Arguments
&str- Shared reference to astr.
Sourcepub fn change_fallback_locale(&self, locale: &str)
pub fn change_fallback_locale(&self, locale: &str)
Sets the fallback locale. Trigger a reactive
update for any t(key) whose key is missing in
the active locale — they may now resolve to a
different fallback value.
Named change_fallback_locale (not
set_fallback_locale) for the same reason as
change_locale.
§Arguments
&str- Shared reference to astr.
Sourcepub fn add_messages(&self, locale: &str, entries: &[MessageEntry])
pub fn add_messages(&self, locale: &str, entries: &[MessageEntry])
Adds a batch of (key, message) entries to the
translation table for locale. Existing entries
for that locale are overwritten (last-write-wins).
§Arguments
&str- Shared reference to astr.&[MessageEntry]- Shared reference to a[MessageEntry].
Sourcepub fn remove_locale(&self, locale: &str)
pub fn remove_locale(&self, locale: &str)
Removes every entry for locale. After this
call, t(key) for any key will skip this locale
in its lookup chain.
§Arguments
&str- Shared reference to astr.
Sourcepub fn remove_message(&self, locale: &str, key: &str)
pub fn remove_message(&self, locale: &str, key: &str)
Removes a single message from a locale. After this
call, t(key) for this key in this locale will
fall back to fallback_locale.
§Arguments
&str- Shared reference to astr.&str- Shared reference to astr.
Sourcepub fn t(&self, key: &str) -> String
pub fn t(&self, key: &str) -> String
Translates key to a string under the active
locale, falling back to fallback_locale if the
active locale has no entry. Returns key itself
if neither locale has an entry (debug-friendly).
This is the reactive read — calling it inside a render closure subscribes that closure to locale changes (and to any subsequent edits to the messages map for the active or fallback locale).
§Arguments
&str- Shared reference to astr.
§Returns
String- AStringvalue.
Sourcepub fn t_with(
&self,
key: &str,
vars: &HashMap<&'static str, &'static str>,
) -> String
pub fn t_with( &self, key: &str, vars: &HashMap<&'static str, &'static str>, ) -> String
Translates key and substitutes {name}-style
placeholders from vars.
Placeholders that are present in vars are
replaced with their corresponding value.
Placeholders that are missing from vars are left
as the literal {name} token — matching the
i18next default behavior. No escaping is
supported; add it when a real use case shows up.
§Arguments
&str- Shared reference to astr.&HashMap<&'static str, &'static str>- Shared reference to aHashMap<&'static str, &'static str>.
§Returns
String- AStringvalue.
Sourcepub fn locale_count(&self) -> usize
pub fn locale_count(&self) -> usize
Returns the number of locales currently registered (i.e. the number of distinct keys in the messages map’s outer level).
§Returns
usize- Count of registered locales.
Sourcepub fn active_message_count(&self) -> usize
pub fn active_message_count(&self) -> usize
Returns the number of messages registered for the active locale.
§Returns
usize- Count of currently-registered messages.