diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-05-12 12:33:43 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2021-05-19 12:13:36 +0000 |
| commit | 80231d9ba287c94aca919b10eb4ed38814808adb (patch) | |
| tree | 6f85db38851bc49247ad8dc2fe12b614857d0011 /android | |
| parent | fe922d4188e93b2bf59aad0e33b136f9eeaa4302 (diff) | |
| download | mullvadvpn-80231d9ba287c94aca919b10eb4ed38814808adb.tar.xz mullvadvpn-80231d9ba287c94aca919b10eb4ed38814808adb.zip | |
Rename `android::StringValue` constructor
Make it consistent with `gettext::MsgString` and make it clearer that
escaping will be performed.
Diffstat (limited to 'android')
4 files changed, 8 insertions, 5 deletions
diff --git a/android/translations-converter/src/android/plurals.rs b/android/translations-converter/src/android/plurals.rs index 285add6e5b..6378eb502c 100644 --- a/android/translations-converter/src/android/plurals.rs +++ b/android/translations-converter/src/android/plurals.rs @@ -90,7 +90,7 @@ impl PluralResource { let items = values .map(|(quantity, string)| PluralVariant { quantity, - string: StringValue::from(&*string), + string: StringValue::from_unescaped(&string), }) .collect(); diff --git a/android/translations-converter/src/android/string_value.rs b/android/translations-converter/src/android/string_value.rs index 7100b034aa..735bc1f9d0 100644 --- a/android/translations-converter/src/android/string_value.rs +++ b/android/translations-converter/src/android/string_value.rs @@ -8,8 +8,11 @@ use std::{ #[derive(Clone, Debug, Eq, Deserialize, Hash, PartialEq, Serialize)] pub struct StringValue(String); -impl From<&str> for StringValue { - fn from(string: &str) -> Self { +impl StringValue { + /// Create a `StringValue` from an unescaped string. + /// + /// The string will be properly escaped, and all parameters will have indices added to them. + pub fn from_unescaped(string: &str) -> Self { let value_with_parameters = htmlize::escape_text(string) .replace(r"\", r"\\") .replace("\"", "\\\"") diff --git a/android/translations-converter/src/android/strings.rs b/android/translations-converter/src/android/strings.rs index da9923db6f..4d52417614 100644 --- a/android/translations-converter/src/android/strings.rs +++ b/android/translations-converter/src/android/strings.rs @@ -75,7 +75,7 @@ impl StringResource { StringResource { name, translatable: true, - value: StringValue::from(value), + value: StringValue::from_unescaped(value), } } } diff --git a/android/translations-converter/src/gettext/mod.rs b/android/translations-converter/src/gettext/mod.rs index 06f50458f9..1bed501b72 100644 --- a/android/translations-converter/src/gettext/mod.rs +++ b/android/translations-converter/src/gettext/mod.rs @@ -97,7 +97,7 @@ impl Translation { for line in lines { match_str! { (line.trim()) ["msgid \"", msg_id, "\""] => { - current_id = Some(msg_id.into()); + current_id = Some(MsgString::from_escaped(msg_id)); } ["msgstr \"", translation, "\""] => { if let Some(id) = current_id.take() { |
