From a85f812d04552e9e2b57a5aa1c8b45aaa61f8c11 Mon Sep 17 00:00:00 2001 From: Tad Date: Tue, 2 Feb 2021 09:00:44 -0500 Subject: [PATCH] Add the German string translations, credit Petra Mirelli https://gitlab.com/divested-mobile/hypatia/-/issues/1 --- .idea/caches/build_file_checksums.ser | Bin 532 -> 532 bytes .idea/compiler.xml | 6 ++ .idea/gradle.xml | 12 ++- .idea/jarRepositories.xml | 25 +++++++ .idea/misc.xml | 2 +- .idea/modules.xml | 2 +- app/build.gradle | 2 +- app/src/main/AndroidManifest.xml | 1 - .../spotco/malwarescanner/DownloaderTask.java | 10 +-- .../spotco/malwarescanner/MalwareScanner.java | 18 ++--- .../malwarescanner/MalwareScannerService.java | 4 +- .../java/us/spotco/malwarescanner/Utils.java | 4 + app/src/main/res/values-de/strings.xml | 69 ++++++++++++++++++ app/src/main/res/values/strings.xml | 19 ++++- 14 files changed, 150 insertions(+), 24 deletions(-) create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 app/src/main/res/values-de/strings.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 9bfb9061b5fc7ac241b83ce41445b8942ff3ea60..678f1061036b6b7b12d7dfdf1139a23861db2a7a 100644 GIT binary patch delta 34 qcmbQjGKFQrbk_1@Zcd(!bJ7_F9p-cQI*aY!Vf^w->F + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2996d53..9bba60d 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,14 +1,20 @@ + diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..a5f05cd --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 29bb4c5..9fc235f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -5,7 +5,7 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml index ad860ea..1e2f259 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,7 +3,7 @@ - + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 5e7cade..83aa40a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,7 +6,7 @@ android { applicationId "us.spotco.malwarescanner" minSdkVersion 16 targetSdkVersion 26 - versionCode 41 + versionCode 42 versionName "3.0" resConfigs "en" vectorDrawables.useSupportLibrary = true diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a930942..5da8b54 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -13,7 +13,6 @@ android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:largeHeap="true" - android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" diff --git a/app/src/main/java/us/spotco/malwarescanner/DownloaderTask.java b/app/src/main/java/us/spotco/malwarescanner/DownloaderTask.java index 6b86098..810f8f1 100644 --- a/app/src/main/java/us/spotco/malwarescanner/DownloaderTask.java +++ b/app/src/main/java/us/spotco/malwarescanner/DownloaderTask.java @@ -29,7 +29,7 @@ public class DownloaderTask extends AsyncTask { protected String doInBackground(Object... objects) { String url = (String) objects[0]; File out = new File((String) objects[1]); - publishProgress("Downloading " + url); + publishProgress(Utils.getContext().getString(R.string.main_database_downloading, url)); try { HttpURLConnection connection = Utils.getConnection(url); if (out.exists()) { @@ -51,18 +51,18 @@ public class DownloaderTask extends AsyncTask { } fileOutputStream.close(); - publishProgress("Successfully downloaded\n"); + publishProgress(Utils.getContext().getString(R.string.main_database_download_success) + "\n"); } else { - publishProgress("File not downloaded, response code " + res + "\n"); + publishProgress(Utils.getContext().getString(R.string.main_database_download_error, res + "") + "\n"); } } else { - publishProgress("File not changed\n"); + publishProgress(Utils.getContext().getString(R.string.main_database_not_changed) + "\n"); } connection.disconnect(); } catch (Exception e) { e.printStackTrace(); out.delete(); - publishProgress("Failed to download, check logcat\n"); + publishProgress(Utils.getContext().getString(R.string.main_database_download_error_logcat) + "\n"); } return null; } diff --git a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java index d22550f..f46746c 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java +++ b/app/src/main/java/us/spotco/malwarescanner/MalwareScanner.java @@ -52,7 +52,7 @@ class MalwareScanner extends AsyncTask, Object, String> { @Override protected final void onPreExecute() { scanTime = SystemClock.elapsedRealtime(); - returnResult("Starting scan...", true); + returnResult(Utils.getContext().getString(R.string.main_starting_scan), true); } @Override @@ -62,18 +62,18 @@ class MalwareScanner extends AsyncTask, Object, String> { fileHashesSHA1.clear(); fileHashesSHA256.clear(); - publishProgress(filesToScan[0].size() + " files pending scan\n", true); + publishProgress( Utils.getContext().getString(R.string.main_files_pending_scan, filesToScan[0].size() + "") + "\n", true); DatabaseManager.loadAllAvailableDatabases(false); if (Signatures.getSignatureCount() >= 0) { - publishProgress("Loaded database with " + Signatures.getSignatureCount() + " signatures\n", true); + publishProgress(Utils.getContext().getString(R.string.main_database_loaded, Signatures.getSignatureCount() + "") + "\n", true); //Get file hashes - publishProgress("Hashing files...", true); + publishProgress(Utils.getContext().getString(R.string.main_hashing_files), true); for (File file : filesToScan[0]) { getFileHashes(file); } - publishProgress("Calculated MD5/SHA-1/SHA-256 hashes for all files\n", true); + publishProgress(Utils.getContext().getString(R.string.main_hash_scan_done) + "\n", true); //Check the hashes checkSignature("MD5", fileHashesMD5, Signatures.MD5); @@ -86,9 +86,9 @@ class MalwareScanner extends AsyncTask, Object, String> { fileHashesSHA256.clear(); System.gc(); Utils.amtFilesScanned += filesToScan[0].size(); - publishProgress("Scan completed in " + ((SystemClock.elapsedRealtime() - scanTime) / 1000) + " seconds!\n\n\n\n", true); + publishProgress(Utils.getContext().getString(R.string.main_scanning_done, ((SystemClock.elapsedRealtime() - scanTime) / 1000) + "") + "\n\n\n\n", true); } else { - publishProgress("No database available, not scanning...", true); + publishProgress(Utils.getContext().getString(R.string.main_no_database_available), true); } return null; } @@ -106,9 +106,9 @@ class MalwareScanner extends AsyncTask, Object, String> { publishProgress(result + " in " + file.getValue().toString().replaceAll(Environment.getExternalStorageDirectory().toString(), "~"), false); } } - publishProgress("Checked all " + hashType + " hashes against signature databases\n", true); + publishProgress(Utils.getContext().getString(R.string.main_hash_scan_done, hashType) + "\n", true); } else { - publishProgress("No " + hashType + " signatures available\n", true); + publishProgress(Utils.getContext().getString(R.string.main_no_hashes_available, hashType) + "\n", true); } } diff --git a/app/src/main/java/us/spotco/malwarescanner/MalwareScannerService.java b/app/src/main/java/us/spotco/malwarescanner/MalwareScannerService.java index 8a40175..c2e9f0c 100644 --- a/app/src/main/java/us/spotco/malwarescanner/MalwareScannerService.java +++ b/app/src/main/java/us/spotco/malwarescanner/MalwareScannerService.java @@ -114,7 +114,7 @@ public class MalwareScannerService extends Service { } malwareMonitors.clear(); System.gc(); - //Toast.makeText(this, "Hypatia: Realtime Scanning Stopped", Toast.LENGTH_SHORT).show(); + //Toast.makeText(this, "Hypatia: Realtime Scanning Stopped", Toast.LENGTH_SHORT).show(); //TODO: Move to strings.xml } private void setForeground() { @@ -134,7 +134,7 @@ public class MalwareScannerService extends Service { } private void updateForegroundNotification() { - foregroundNotification.setSubText(Utils.amtFilesScanned + " files scanned"); + foregroundNotification.setSubText(Utils.amtFilesScanned + " files scanned"); //TODO: Move to strings.xml notificationManager.notify(-1, foregroundNotification.build()); } diff --git a/app/src/main/java/us/spotco/malwarescanner/Utils.java b/app/src/main/java/us/spotco/malwarescanner/Utils.java index 9baf093..f844329 100644 --- a/app/src/main/java/us/spotco/malwarescanner/Utils.java +++ b/app/src/main/java/us/spotco/malwarescanner/Utils.java @@ -44,6 +44,10 @@ public class Utils { Utils.context = context; } + public static Context getContext() { + return context; + } + public static SharedPreferences getPrefs(Context context) { return PreferenceManager.getDefaultSharedPreferences(context); } diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml new file mode 100644 index 0000000..d1ad8f6 --- /dev/null +++ b/app/src/main/res/values-de/strings.xml @@ -0,0 +1,69 @@ + + Hypatia V3 + + + Scanner + Verlauf + Datenbanken + Einstellungen + + Update der %s Datenbank... + Download von %s + Erfolgreich heruntergeladen + Datei wurde nicht heruntergeladen. Fehlercode %s + Keine Datenbank verfügbar. Scan wird abgebrochen... + Datei wurd nicht geändert + Download ist fehlgeschlagen. Für weitere Details bitte in logcat nachsehen + + Scan startet... + %s Dateien, die zur Überprüfung vorgesehen sind + Datenbank mit %s Signaturen geladen + Generiere Hashes für Dateien... + Hashes für alle Dateien generiert + Alle %s Hashes wurden mit den Signatur-Datenbanken abgeglichen + Keine %s Hash-Signaturen verfügbar + Scan nach %s Sekunden abgeschlossen! + + + + Malware-Erkennung + Dient zur Warnung in Echtzeit wenn Malware erkannt wird + Bekannte Malware wird in Echtzeit erkannt + + + + Für dieses Feature wird Orbot benöntigt + + + + Echtzeit-Scanner + Echtzeit-Scannen + Überwachung auf Bedrohungen in Echtzeit mit den folgenden Einstellungen + Apps scannen + Apps während der Installation scannen + Internen Speicher überwachen + Rekursive Überwachung des internen Speichers + Externen Speicher überwachen + Rekursive Überwachung des externen Speichers + System überwachen + Warnung bei Änderungen an /system + + Optimierungen + Maximale Datei-Größe + Dateien, die größer als diese Angabe in Megabyte sind, werden nicht gescannt + Maximale Hash-Länge + Geringerer Belegung des Arbeitsspeicher bei Gefahr von vermehrten Fehlalarmen (false positives) + Variantennamen abkürzen + Geringere Belastung des Arbeitsspeichers auf Kosten von detaillierten Erkennungsmeldungen + + Netzwerk + Onion-Routing + Alle Netzwerk-Requests über Tor leiten + + Sonstiges + Dritt-Anbieter-Zugriff erlauben + Anderen Apps erlauben das Scannen von Objekten aufzurufen + Datenbank-Repository + API von der die Datenbanken bezogen werden sollen + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7b4e907..d29f87f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,6 +6,23 @@ History Databases Settings + + Updating %s databases... + Downloading %s + Successfully downloaded + File not downloaded, response code %s + No database available, not scanning... + File not changed + Failed to download, check logcat + + Starting scan... + %s files pending scan + Loaded database with %s signatures + Hashing files... + Calculated hashes for all files + Checked all %s hashes against signature databases + No %s hashes signatures available + Scan completed in %s seconds! @@ -49,4 +66,4 @@ Database repo API to request databases from - + \ No newline at end of file