pub struct Translator {
language: String,
bundle: FluentBundle<FluentResource>,
fallback: OnceLock<FluentBundle<FluentResource>>,
}Expand description
Sentences in one language.
Fields§
§language: String§bundle: FluentBundle<FluentResource>§fallback: OnceLock<FluentBundle<FluentResource>>English, for a message this language lacks: parsed the first time English has one it lacks, never when the language is English. Each language parsed holds some 3 MB, and every message is in both files (tools/check-messages.py), so a running Sioul rarely needs it.
Implementations§
Source§impl Translator
impl Translator
Sourcepub fn new(requested: &str) -> Translator
pub fn new(requested: &str) -> Translator
A translator for a language code (“fr”, “fr_FR.UTF-8”, “en-GB”); English if Sioul lacks it.
Sourcefn fallback(&self, id: &str) -> Option<&FluentBundle<FluentResource>>
fn fallback(&self, id: &str) -> Option<&FluentBundle<FluentResource>>
English, when it holds the message id this language lacks; none
for English itself, nor for a message English lacks too (a count past twelve).
Sourcepub fn text(&self, id: &str, args: Option<&FluentArgs<'_>>) -> String
pub fn text(&self, id: &str, args: Option<&FluentArgs<'_>>) -> String
One message with its arguments; the English one if this language lacks it.
fn attribute(&self, id: &str, attribute: &str) -> Option<String>
Sourcepub fn count(&self, n: usize, capital: bool, feminine: bool) -> String
pub fn count(&self, n: usize, capital: bool, feminine: bool) -> String
A number in words: “two”, “Two”; in French also “une”, “Une”. Digits beyond twelve.
Sourcepub fn counted(&self, n: usize) -> FluentArgs<'static>
pub fn counted(&self, n: usize) -> FluentArgs<'static>
The arguments every counted sentence receives: n, count, Count, countf, Countf.
Sourcepub fn summary(&self, s: &Summary, projects: Option<&ProjectStore>) -> String
pub fn summary(&self, s: &Summary, projects: Option<&ProjectStore>) -> String
What came, in a few calm sentences.
fn push_counted(&self, sentences: &mut Vec<String>, id: &str, n: usize)
Sourcefn project_sentence(
&self,
s: &Summary,
projects: Option<&ProjectStore>,
) -> String
fn project_sentence( &self, s: &Summary, projects: Option<&ProjectStore>, ) -> String
“Three belong to projects: Taxes (two), Health cover (one).”
Sourcepub fn reason(&self, reason: &Reason, projects: Option<&ProjectStore>) -> String
pub fn reason(&self, reason: &Reason, projects: Option<&ProjectStore>) -> String
One reason, as a phrase.
fn spam_reason(&self, source: &str, score: Option<f32>) -> String
Sourcepub fn decimal(&self, value: f32) -> String
pub fn decimal(&self, value: f32) -> String
A decimal with this language’s separator: “9.1”, “9,1”.
fn route_match(&self, m: &RouteMatch) -> String
Sourcefn kind_args(&self, kind: CodeKind) -> FluentArgs<'static>
fn kind_args(&self, kind: CodeKind) -> FluentArgs<'static>
kind, Kind (capitalised) and akind (with its article: “a code”, “un code”).
Sourcepub fn right_now(
&self,
kind: CodeKind,
sender: &str,
trust: Trust,
code: Option<&str>,
minutes: Option<u32>,
) -> String
pub fn right_now( &self, kind: CodeKind, sender: &str, trust: Trust, code: Option<&str>, minutes: Option<u32>, ) -> String
“Code from La Banque Exemple (verified): 482913, valid about 10 minutes”.
Sourcepub fn validity(&self, minutes: u32) -> String
pub fn validity(&self, minutes: u32) -> String
“valid about 10 minutes”, “valid about 2 hours”, “valid about 2 days”.
Source§impl Translator
impl Translator
Sourcepub fn money(&self, m: Money) -> String
pub fn money(&self, m: Money) -> String
“€1,234.56”, “1 234,56 €”; whole amounts without cents.
Sourcepub fn number(&self, m: Money) -> String
pub fn number(&self, m: Money) -> String
An amount in another currency, signed, without symbol: “−20”, “−1 234,50”.
Sourcepub fn topic(&self, topic: Topic) -> String
pub fn topic(&self, topic: Topic) -> String
What a shielded message is about: “work”, “a question”.
Sourcepub fn day_in(&self, d: Date, today: Date) -> String
pub fn day_in(&self, d: Date, today: Date) -> String
“Monday 5 October”, with its year when it is not today’s: “Monday 1 March 2027”.
Sourcepub fn weekday_short(&self, d: Date) -> String
pub fn weekday_short(&self, d: Date) -> String
“Mon”, “lun.”.
Sourcepub fn month_short(&self, d: Date) -> String
pub fn month_short(&self, d: Date) -> String
“Jun”, “juin”; “Jul”, “juil.”: a month’s short name, as a graph’s axis says it.
Sourcepub fn month_year(&self, d: Date) -> String
pub fn month_year(&self, d: Date) -> String
“October 2026”, “octobre 2026”.
Sourcepub fn budget_lines(
&self,
title: &str,
period: Period,
s: &BudgetStatus,
reserve_title: Option<&str>,
) -> Vec<String>
pub fn budget_lines( &self, title: &str, period: Period, s: &BudgetStatus, reserve_title: Option<&str>, ) -> Vec<String>
One budget’s period, in a sentence, and what a reserve does at its end.
Sourcepub fn reserve_lines(
&self,
title: &str,
s: &ReserveStatus,
today: Date,
) -> Vec<String>
pub fn reserve_lines( &self, title: &str, s: &ReserveStatus, today: Date, ) -> Vec<String>
One reserve, in a sentence or two.
Auto Trait Implementations§
impl !Freeze for Translator
impl !RefUnwindSafe for Translator
impl !UnwindSafe for Translator
impl Send for Translator
impl Sync for Translator
impl Unpin for Translator
impl UnsafeUnpin for Translator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.