refactor: flatten Fluent selectors into one message per variant
This commit is contained in:
parent
06952cd20e
commit
c2525fd0f0
3 changed files with 48 additions and 48 deletions
12
src/ops.rs
12
src/ops.rs
|
|
@ -509,11 +509,13 @@ pub fn fetch(
|
|||
(false, false) => "plain",
|
||||
};
|
||||
let mut args = fluent_bundle::FluentArgs::new();
|
||||
args.set("variant", variant);
|
||||
args.set("total", fetched.total as i64);
|
||||
args.set("stored", fetched.stored as i64);
|
||||
args.set("rejected", fetched.rejected.len() as i64);
|
||||
Ok(i18n::t_args("fetch-result-note", Some(&args)))
|
||||
Ok(i18n::t_args(
|
||||
&format!("fetch-result-note-{variant}"),
|
||||
Some(&args),
|
||||
))
|
||||
}
|
||||
|
||||
/// Fields fumi itself attaches to every message (sec 5.7, 5.8); a
|
||||
|
|
@ -634,10 +636,9 @@ pub fn send(
|
|||
(None, false) => "plain".to_string(),
|
||||
};
|
||||
let mut args = fluent_bundle::FluentArgs::new();
|
||||
args.set("variant", variant);
|
||||
args.set("address", addr.short());
|
||||
args.set("bytes", sent.bytes as i64);
|
||||
let mut note = i18n::t_args("send-result-note", Some(&args));
|
||||
let mut note = i18n::t_args(&format!("send-result-note-{variant}"), Some(&args));
|
||||
if let Some(warning) = sent.warning {
|
||||
// Fumi's own warning text, appended as a second, independent
|
||||
// clause rather than folded into the catalogue — it isn't ours
|
||||
|
|
@ -1112,12 +1113,11 @@ mod tests {
|
|||
#[test]
|
||||
fn interpolated_messages_carry_no_bidi_isolation_marks() {
|
||||
let mut args = fluent_bundle::FluentArgs::new();
|
||||
args.set("variant", "plain");
|
||||
args.set("total", 5i64);
|
||||
args.set("stored", 5i64);
|
||||
args.set("rejected", 0i64);
|
||||
assert_eq!(
|
||||
i18n::t_args("fetch-result-note", Some(&args)),
|
||||
i18n::t_args("fetch-result-note-plain", Some(&args)),
|
||||
"5 fetched, 5 stored"
|
||||
);
|
||||
}
|
||||
|
|
|
|||
18
src/view.rs
18
src/view.rs
|
|
@ -1810,11 +1810,13 @@ fn render(model: &Carrier, w: &mut CarrierWidgets, sender: &ComponentSender<Carr
|
|||
// `contact_state` collapses to accepted/blocked once a token
|
||||
// exists, which says nothing about where the key came from —
|
||||
// so the server's pin state is spelled out beside it.
|
||||
let mut meta_args = fluent_bundle::FluentArgs::new();
|
||||
meta_args.set("state", contact_state(contact));
|
||||
meta_args.set("pinned", if contact.pinned { "yes" } else { "no" });
|
||||
let contact_meta_id = if contact.pinned {
|
||||
"contact-meta-line-yes"
|
||||
} else {
|
||||
"contact-meta-line-no"
|
||||
};
|
||||
w.article_meta
|
||||
.set_text(&i18n::t_args("contact-meta-line", Some(&meta_args)));
|
||||
.set_text(&i18n::t1(contact_meta_id, "state", contact_state(contact)));
|
||||
let mut body = detail_body(&contact.address, &contact.key, &contact.fingerprint);
|
||||
if !contact.server.is_empty() {
|
||||
body.push_str(&format!(
|
||||
|
|
@ -1944,13 +1946,17 @@ fn render(model: &Carrier, w: &mut CarrierWidgets, sender: &ComponentSender<Carr
|
|||
} else {
|
||||
address
|
||||
};
|
||||
let mail_meta_id = if msg.kept {
|
||||
"mail-meta-line-yes"
|
||||
} else {
|
||||
"mail-meta-line-no"
|
||||
};
|
||||
let mut meta_args = fluent_bundle::FluentArgs::new();
|
||||
meta_args.set("label", label);
|
||||
meta_args.set("from", from);
|
||||
meta_args.set("time", escape(&ops::when(msg.time)));
|
||||
meta_args.set("id", msg.id[..msg.id.len().min(8)].to_string());
|
||||
meta_args.set("kept", if msg.kept { "yes" } else { "no" });
|
||||
let meta = i18n::t_args("mail-meta-line", Some(&meta_args));
|
||||
let meta = i18n::t_args(mail_meta_id, Some(&meta_args));
|
||||
w.article_meta.set_markup(&meta);
|
||||
let headers: Vec<String> = msg
|
||||
.headers
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue