summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-05-12 12:33:43 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2021-05-19 12:13:36 +0000
commit80231d9ba287c94aca919b10eb4ed38814808adb (patch)
tree6f85db38851bc49247ad8dc2fe12b614857d0011 /android
parentfe922d4188e93b2bf59aad0e33b136f9eeaa4302 (diff)
downloadmullvadvpn-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')
-rw-r--r--android/translations-converter/src/android/plurals.rs2
-rw-r--r--android/translations-converter/src/android/string_value.rs7
-rw-r--r--android/translations-converter/src/android/strings.rs2
-rw-r--r--android/translations-converter/src/gettext/mod.rs2
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() {