summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-27 14:54:14 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-03-27 15:27:17 +0000
commited30ee3a7931567546efe09163be0197e06d5cb4 (patch)
tree958e070b08b3086be3c9768dc37a47caa2598d3b
parent5902b0473682641aa472ec674f19aa8e40ae8899 (diff)
downloadmullvadvpn-ed30ee3a7931567546efe09163be0197e06d5cb4.tar.xz
mullvadvpn-ed30ee3a7931567546efe09163be0197e06d5cb4.zip
Use `gettext::MsgString` for message values
-rw-r--r--android/translations-converter/src/gettext.rs12
-rw-r--r--android/translations-converter/src/main.rs4
2 files changed, 9 insertions, 7 deletions
diff --git a/android/translations-converter/src/gettext.rs b/android/translations-converter/src/gettext.rs
index 62f274d394..2d7917a556 100644
--- a/android/translations-converter/src/gettext.rs
+++ b/android/translations-converter/src/gettext.rs
@@ -43,10 +43,10 @@ pub struct MsgEntry {
/// A message string or plural set in a gettext translation file.
#[derive(Clone, Debug)]
pub enum MsgValue {
- Invariant(String),
+ Invariant(MsgString),
Plural {
plural_id: String,
- values: Vec<String>,
+ values: Vec<MsgString>,
},
}
@@ -148,7 +148,7 @@ impl Translation {
let variant_msg = parse_line(&plural_translation[variant_id_end..], "] \"", "")
.expect("Invalid plural msgstr");
- variants.insert(variant_id, normalize(variant_msg));
+ variants.insert(variant_id, MsgString(normalize(variant_msg)));
parsing_header = false;
}
["\"", header, "\\n\""] => {
@@ -252,7 +252,7 @@ impl Deref for MsgString {
impl From<String> for MsgValue {
fn from(string: String) -> Self {
- MsgValue::Invariant(string)
+ MsgValue::Invariant(string.into())
}
}
@@ -277,12 +277,12 @@ pub fn append_to_template(
writeln!(writer, "msgid {:?}", entry.id)?;
match entry.value {
- MsgValue::Invariant(value) => writeln!(writer, "msgstr {:?}", value)?,
+ MsgValue::Invariant(value) => writeln!(writer, r#"msgstr "{}""#, value)?,
MsgValue::Plural { plural_id, values } => {
writeln!(writer, "msgid_plural {:?}", plural_id)?;
for (index, value) in values.into_iter().enumerate() {
- writeln!(writer, "msgstr[{}] {:?}", index, value)?;
+ writeln!(writer, r#"msgstr[{}] "{}""#, index, value)?;
}
}
}
diff --git a/android/translations-converter/src/main.rs b/android/translations-converter/src/main.rs
index 5188a40ef2..09042b133f 100644
--- a/android/translations-converter/src/main.rs
+++ b/android/translations-converter/src/main.rs
@@ -192,7 +192,7 @@ fn main() {
id,
value: gettext::MsgValue::Plural {
plural_id,
- values: vec!["".to_owned(), "".to_owned()],
+ values: vec!["".into(), "".into()],
},
}
}),
@@ -262,6 +262,8 @@ fn generate_translations(
}
gettext::MsgValue::Plural { values, .. } => {
if let Some(android_key) = known_plurals.remove(&translation.id) {
+ let values = values.into_iter().map(|message| message.to_string());
+
localized_plurals.push(android::PluralResource::new(
android_key,
plural_quantities.clone().zip(values),