#[derive(Debug, Clone, Default)]
pub struct MessageEntry {
pub msgid: String,
pub msgctxt: Option<String>,
pub msgstr: String,
pub msgid_plural: Option<String>,
pub msgstr_plural: Vec<String>,
pub extracted_comment: Vec<String>,
pub translator_comment: Vec<String>,
pub source_locations: Vec<String>,
pub flags: Vec<String>,
pub previous_msgid: Option<String>,
}
impl MessageEntry {
pub fn is_fuzzy(&self) -> bool {
self.flags.iter().any(|f| f == "fuzzy")
}
pub fn is_translated(&self) -> bool {
if self.is_fuzzy() {
return false;
}
if self.msgid_plural.is_some() {
!self.msgstr_plural.is_empty() && self.msgstr_plural.iter().all(|s| !s.is_empty())
} else {
!self.msgstr.is_empty()
}
}
}