diff options
| author | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-07-10 18:15:13 +0000 |
|---|---|---|
| committer | Janito Vaqueiro Ferreira Filho <janito@mullvad.net> | 2020-08-11 22:04:43 +0000 |
| commit | b0dc31066f83252a6bc8559e24549cfd6be1c97b (patch) | |
| tree | 2729edeca893cbbdd42bdda380acbfe26aaca7a5 /android | |
| parent | 757a4885c4c46d13712108ac3f86744f44da3ed0 (diff) | |
| download | mullvadvpn-b0dc31066f83252a6bc8559e24549cfd6be1c97b.tar.xz mullvadvpn-b0dc31066f83252a6bc8559e24549cfd6be1c97b.zip | |
Collect known Android strings
Diffstat (limited to 'android')
| -rw-r--r-- | android/translations-converter/Cargo.toml | 1 | ||||
| -rw-r--r-- | android/translations-converter/src/android.rs | 16 | ||||
| -rw-r--r-- | android/translations-converter/src/main.rs | 17 |
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); } |
