summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-07-10 18:15:13 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2020-08-11 22:04:43 +0000
commitb0dc31066f83252a6bc8559e24549cfd6be1c97b (patch)
tree2729edeca893cbbdd42bdda380acbfe26aaca7a5 /android
parent757a4885c4c46d13712108ac3f86744f44da3ed0 (diff)
downloadmullvadvpn-b0dc31066f83252a6bc8559e24549cfd6be1c97b.tar.xz
mullvadvpn-b0dc31066f83252a6bc8559e24549cfd6be1c97b.zip
Collect known Android strings
Diffstat (limited to 'android')
-rw-r--r--android/translations-converter/Cargo.toml1
-rw-r--r--android/translations-converter/src/android.rs16
-rw-r--r--android/translations-converter/src/main.rs17
3 files changed, 30 insertions, 4 deletions
diff --git a/android/translations-converter/Cargo.toml b/android/translations-converter/Cargo.toml
index 5ab975215a..fab9c4484d 100644
--- a/android/translations-converter/Cargo.toml
+++ b/android/translations-converter/Cargo.toml
@@ -7,5 +7,6 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
+regex = "1"
serde = { version = "1", features = ["derive"] }
serde-xml-rs = "0.4"
diff --git a/android/translations-converter/src/android.rs b/android/translations-converter/src/android.rs
index b79580db8f..2d1c710e9f 100644
--- a/android/translations-converter/src/android.rs
+++ b/android/translations-converter/src/android.rs
@@ -12,7 +12,19 @@ pub struct StringResources {
/// An entry in an Android string resources file.
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct StringResource {
- name: String,
+ /// The string resource ID.
+ pub name: String,
+
+ /// The string value.
#[serde(rename = "$value")]
- value: String,
+ pub value: String,
+}
+
+impl IntoIterator for StringResources {
+ type Item = StringResource;
+ type IntoIter = std::vec::IntoIter<Self::Item>;
+
+ fn into_iter(self) -> Self::IntoIter {
+ self.entries.into_iter()
+ }
}
diff --git a/android/translations-converter/src/main.rs b/android/translations-converter/src/main.rs
index 28297c6131..2b7741ada4 100644
--- a/android/translations-converter/src/main.rs
+++ b/android/translations-converter/src/main.rs
@@ -2,7 +2,8 @@
mod android;
-use std::fs::File;
+use regex::Regex;
+use std::{collections::HashMap, fs::File};
fn main() {
let strings_file = File::open("../src/main/res/values/strings.xml")
@@ -10,5 +11,17 @@ fn main() {
let string_resources: android::StringResources =
serde_xml_rs::from_reader(strings_file).expect("Failed to read string resources file");
- dbg!(string_resources);
+ let line_breaks = Regex::new(r"\s*\n\s*").unwrap();
+
+ let known_strings: HashMap<_, _> = string_resources
+ .into_iter()
+ .map(|string| {
+ let android_id = string.name;
+ let string_value = line_breaks.replace_all(&string.value, " ").into_owned();
+
+ (string_value, android_id)
+ })
+ .collect();
+
+ dbg!(known_strings);
}