diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-27 14:54:14 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-03-27 15:27:17 +0000 |
| commit | ed30ee3a7931567546efe09163be0197e06d5cb4 (patch) | |
| tree | 958e070b08b3086be3c9768dc37a47caa2598d3b | |
| parent | 5902b0473682641aa472ec674f19aa8e40ae8899 (diff) | |
| download | mullvadvpn-ed30ee3a7931567546efe09163be0197e06d5cb4.tar.xz mullvadvpn-ed30ee3a7931567546efe09163be0197e06d5cb4.zip | |
Use `gettext::MsgString` for message values
| -rw-r--r-- | android/translations-converter/src/gettext.rs | 12 | ||||
| -rw-r--r-- | android/translations-converter/src/main.rs | 4 |
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), |
