Skip to content

Commit

Permalink
added translations, ss
Browse files Browse the repository at this point in the history
  • Loading branch information
StellarSand committed May 18, 2024
1 parent 400f16d commit 862953b
Show file tree
Hide file tree
Showing 66 changed files with 1,233 additions and 29 deletions.
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
liberapay: stellarsand
ko_fi: stellarsand
custom: ["https://paypal.me/stellarsand"]
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

### Description
A clear and concise description of what the bug is.



### Steps to reproduce the behaviour
1. Go to '...'
2. Tap on '....'
3. See error



### Screenshots/error messages (optional)
If applicable, add screenshots or error messages to help explain the issue.



### Additional context (optional)
Any other relevant information or context that can help us understand the issue.
27 changes: 27 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/fixes_and_feature.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
### Description
A clear and concise description of the changes made in this pull request.

- If there are any breaking changes, describe the impact and why it is necessary.
- If there are any UI changes, include screenshots or design mockups to help illustrate the changes.
- If something has not been tested, please provide a reason why.



### Issue(s) fixed
If applicable, list the issue(s) being fixed in this PR.
Fixes # issue

Remove this section if not applicable.



### Type of change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)



### Checklist
- [ ] I have read the [contributing guidelines](https://github.com/StellarSand/Password-Monitor/blob/main/CONTRIBUTING.md).
- [ ] I have properly tested new/changed/fixed functionality.
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE/string_translations.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Language:
English, German, French etc.



## Type of change
- [ ] New strings have been added
- [ ] Existing strings have been modified



### Checklist
- [ ] I have read the [contributing guidelines](https://github.com/StellarSand/Password-Monitor/blob/main/CONTRIBUTING.md).
- [ ] Proper encoding has been used for characters (example: `ä` as `\u00E4`, `é` as `\u00E9` etc).
2 changes: 0 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
# CHANGELOG

All notable changes to this project will be documented in this file.



## v1.0.0
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# CONTRIBUTING
- Do not submit pull requests to update gradle, dependencies or SDK.
- Try not to use any deprecated libraries, dependencies or methods, if other alternatives are available.
- Make sure the characters are properly encoded when translating strings (example: ä as \u00E4, é as \u00E9 etc).
- Make sure the characters are properly encoded when translating strings (example: `ä` as `\u00E4`, `é` as `\u00E9` etc).
<br>You can use websites like [Compart](https://www.compart.com/en/unicode), [Symbl](https://symbl.cc/en/unicode/table/) or something else.
<br>Example: `é` would be shown as `U+00E9` on these websites, so just convert it to `\u00E9` for the android strings.
<br>The strings can be found here:
Expand Down
80 changes: 65 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

Ensure your password safety by scanning for potential breaches.

<img src="https://img.shields.io/f-droid/v/com.password.monitor?logo=FDroid&color=green&style=for-the-badge" alt="F-Droid Version"> <img src="https://img.shields.io/endpoint?url=https://play.cuzi.workers.dev/play?i=com.password.monitor&m=$version&logo=GooglePlay&color=3BCCFF&label=Google%20Play&style=for-the-badge" alt="Google Play Version"> <img src="https://img.shields.io/github/v/release/StellarSand/Password-Monitor?logo=GitHub&color=212121&label=GitHub&style=for-the-badge" alt="GitHub Version">
<img src="https://img.shields.io/f-droid/v/com.password.monitor?logo=FDroid&color=green&style=for-the-badge" alt="F-Droid Version"> <img src="https://img.shields.io/github/v/release/StellarSand/Password-Monitor?logo=GitHub&color=212121&label=GitHub&style=for-the-badge" alt="GitHub Version">



Expand All @@ -24,11 +24,8 @@ Ensure your password safety by scanning for potential breaches.


## Overview
Two things that should always be strong: Coffee ☕ and Passwords 🔑.

In our digital age, where data breaches and hacks have skyrocketed, robust passwords are vital for safeguarding our online accounts. Using a password manager like [Bitwarden](https://bitwarden.com/) or [KeePass](https://keepass.info/) is strongly recommended for storing and generating unique, strong passwords. However, preferences vary, and even if you're using a password manager, it's crucial to ensure that your passwords haven't been compromised in data breaches.

This app seamlessly integrates with [Have I Been Pwned?](https://haveibeenpwned.com) to check if your password has been compromised in any known breaches, without actually sending your password to it.
This app seamlessly integrates with [Have I Been Pwned?](https://haveibeenpwned.com) to help you verify whether your passwords have been compromised in any publicly disclosed data breaches.
<br>Your passwords stay private and are never shared anywhere. Check [ensuring the privacy of your passwords](#ensuring-the-privacy-of-your-passwords)



Expand All @@ -38,35 +35,88 @@ This app seamlessly integrates with [Have I Been Pwned?](https://haveibeenpwned.
- Supports both light and dark theme
- No ads
- No collection of personal data
- Supported languages: English, Dutch, French, German, Italian, Japanese, Spanish, Swedish, Turkish
- Supported languages:
- English
- Chinese
- Dutch
- French
- German
- Italian
- Japanese
- Spanish
- Swedish
- Turkish



## Screenshots

<img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width="200"/> <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width="200"/>

<img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" width="200"/> <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width="200"/>

<img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width="200"/> <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width="200"/>



## Download
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/packages/com.password.monitor)
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
alt="Get it on Google Play"
height="80">](https://play.google.com/store/apps/details?id=com.password.monitor)
[<img src="https://camo.githubusercontent.com/70bffd8873ab81e1bb0bccc44e488c3a989e3bd5/68747470733a2f2f692e6962622e636f2f71306d6463345a2f6765742d69742d6f6e2d6769746875622e706e67"
[<img src="https://raw.githubusercontent.com/Kunzisoft/Github-badge/main/get-it-on-github.png"
alt="Get it on GitHub"
height="80">](https://github.com/StellarSand/Password-Monitor/releases/latest)

### Verify integrity if downloaded from GitHub
To verify the integrity of the `.apk`/`.aab` files, if downloaded from GitHub, perform the following steps:

<details>
<summary><b>Windows</b></summary>

1. Open Powershell by searching for it in the `Start menu` OR by pressing `Win + R` and typing `powershell`
2. Change directory to the downloaded path
```
cd "C:\path\to\downloaded\file"
```
Example:
```
cd "C:\Users\JohnDoe\Downloads"
```
3. Compute the SHA-256 Hash
```
Get-FileHash -Algorithm SHA256 -Path "filename"
```
Example:
```
Get-FileHash -Algorithm SHA256 -Path "PasswordMonitor_v1.5.0.apk"
```
4. The computed hash value should be exactly the same as the one provided in the `.sha256` file on GitHub.
</details>

<details>
<summary><b>Linux & macOS</b></summary>

1. Open terminal
2. Change directory to the downloaded path
```
cd /path/to/downloaded/file
```
Example:
```
cd /home/JohnDoe/Downloads/
```
3. Compute the SHA-256 Hash
```
sha256sum filename
```
Example:
```
sha256sum PasswordMonitor_v1.5.0.apk
```
4. The computed hash value should be exactly the same as the one provided in the `.sha256` file on GitHub.
</details>



## Changelog
All notable changes to this project will be documented in the [changelog](https://github.com/StellarSand/Password-Monitor/blob/master/CHANGELOG.md).
All notable changes are documented in the [changelog](https://github.com/StellarSand/Password-Monitor/blob/master/CHANGELOG.md).



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,12 @@ class NoNetworkBottomSheet(
}

// Retry
footerBinding.positiveButton.setOnClickListener {
dismiss()
positiveButtonClickListener.invoke()
footerBinding.positiveButton.apply {
isVisible = true
setOnClickListener {
dismiss()
positiveButtonClickListener.invoke()
}
}

// Exit/Cancel
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import com.password.monitor.databinding.FragmentScanBinding
import com.password.monitor.fragments.bottomsheets.NoNetworkBottomSheet
import com.password.monitor.utils.HashUtils
import com.password.monitor.utils.HashUtils.Companion.generateSHA1Hash
import com.password.monitor.utils.HashUtils.Companion.getHashCount
import com.password.monitor.utils.IntentUtils
import com.password.monitor.utils.NetworkUtils
import com.password.monitor.utils.NetworkUtils.Companion.hasInternet
Expand Down Expand Up @@ -85,6 +86,7 @@ class DetailsFragment : Fragment() {
hashPrefix = take(5).uppercase() // First 5 chars
hashSuffix = substring(5).uppercase() // Rest of the hash
}

checkPassword()

// Tap here
Expand Down Expand Up @@ -130,7 +132,7 @@ class DetailsFragment : Fragment() {

if (hashesResponse.isSuccessful) {
val responseBody = hashesResponse.body()
val count = HashUtils.getHashCount(responseBody, hashSuffix)
val count = getHashCount(responseBody, hashSuffix)
fragmentBinding.progressIndicator.visibility = View.INVISIBLE
displayResult(count)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ class ScanFragment : Fragment() {

// Fab
fragmentBinding.scanMultipleFab.setOnClickListener {
ScanMultiPwdBottomSheet().show(parentFragmentManager, "TestMultiplePwdBottomSheet")
ScanMultiPwdBottomSheet().show(parentFragmentManager, "ScanMultiplePwdBottomSheet")
}
}

Expand Down
6 changes: 3 additions & 3 deletions app/src/main/res/drawable/ic_licenses.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="24dp"
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24"
android:viewportWidth="960"
android:viewportHeight="960"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M9,18H15Q15.425,18 15.713,17.712Q16,17.425 16,17Q16,16.575 15.713,16.288Q15.425,16 15,16H9Q8.575,16 8.288,16.288Q8,16.575 8,17Q8,17.425 8.288,17.712Q8.575,18 9,18ZM9,14H15Q15.425,14 15.713,13.712Q16,13.425 16,13Q16,12.575 15.713,12.287Q15.425,12 15,12H9Q8.575,12 8.288,12.287Q8,12.575 8,13Q8,13.425 8.288,13.712Q8.575,14 9,14ZM6,22Q5.175,22 4.588,21.413Q4,20.825 4,20V4Q4,3.175 4.588,2.587Q5.175,2 6,2H13.175Q13.575,2 13.938,2.15Q14.3,2.3 14.575,2.575L19.425,7.425Q19.7,7.7 19.85,8.062Q20,8.425 20,8.825V20Q20,20.825 19.413,21.413Q18.825,22 18,22ZM13,8V4H6Q6,4 6,4Q6,4 6,4V20Q6,20 6,20Q6,20 6,20H18Q18,20 18,20Q18,20 18,20V9H14Q13.575,9 13.288,8.712Q13,8.425 13,8ZM6,4V8Q6,8.425 6,8.712Q6,9 6,9V4V8Q6,8.425 6,8.712Q6,9 6,9V20Q6,20 6,20Q6,20 6,20Q6,20 6,20Q6,20 6,20V4Q6,4 6,4Q6,4 6,4Z" />
android:pathData="M480 520q-50 0-85-35t-35-85q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35zm0 320l-187 62q-20 7-36.5-5T240 865V611q-38-42-59-96t-21-115q0-134 93-227t227-93q134 0 227 93t93 227q0 61-21 115t-59 96v254q0 20-16.5 32t-36.5 5l-187-62zm0-200q100 0 170-70t70-170q0-100-70-170t-170-70q-100 0-170 70t-70 170q0 100 70 170t170 70zM320 801l160-41 160 41V677q-35 20-75.5 31.5T480 720q-44 0-84.5-11.5T320 677v124zm160-62z" />
</vector>
107 changes: 107 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>

<!--
~ Copyright (C) 2024-present StellarSand
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU General Public License as published by
~ the Free Software Foundation, either version 3 of the License, or
~ (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU General Public License for more details.
~
~ You should have received a copy of the GNU General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->

<resources>

<!--
Ensure proper encoding of characters
ä = \u00E4
ß = \u00DF
ü = \u00FC
Ü = \u00DC
ö = \u00F6
-->

<string name="app_version">Version</string>

<!--Bottom nav view-->
<string name="scan">Scannen</string>
<string name="settings">Einstellungen</string>

<!--#########################################################################################-->

<!--Scan fragment-->
<string name="scan_your_password">Scannen Sie Ihr Passwort</string>
<string name="check">Siehe</string>
<string name="details">Details</string>
<string name="found_in_breach">Verst\u00F6\u00DFe festgestellt</string>
<string name="yes">Ja</string>
<string name="no">Nein</string>
<string name="times_found">Anzahl der gefundenen F\u00E4lle</string>
<string name="suggestion">Empfehlungen</string>
<string name="breached_suggestion">Dieses Kennwort wurde bei einem Datenschutzversto\u00DF kompromittiert und sollte niemals verwendet werden.\nWenn Sie es jemals irgendwo benutzt haben, \u00E4ndern Sie es sofort.</string>
<string name="not_breached_suggestion">Ihr Passwort wurde nicht bei einem Datenschutzversto\u00DF entdeckt.\nDas bedeutet nicht unbedingt, dass es ein sicheres Passwort ist.</string>
<string name="passwords_stays_private">Ihr Passwort bleibt vertraulich und wird niemals an Dritte weitergegeben.
\nSind Sie neugierig, wie dies erreicht wird?</string>
<string name="tap_here">Tippen Sie hier, um eine ausf\u00FChrliche Erkl\u00E4rung zu erhalten.</string>

<!--#########################################################################################-->

<!--Multi password activity-->
<string name="view">Siehe</string>
<string name="sort">Sortieren</string>

<!--#########################################################################################-->

<!--Settings fragment-->
<string name="appearance">Aussehen</string>
<string name="theme">Thema</string>
<string name="material_you">Material You\n(app neustart erforderlich)</string>
<string name="privacy">Datenschutz</string>
<string name="block_screenshots">Screenshots in der app blockieren</string>
<string name="incognito_keyboard">Inkognito tastatur</string>
<string name="about">\u00DCber</string>
<string name="privacy_policy">Datenschutzbestimmungen</string>
<string name="report_issue">Ein Problem melden</string>
<string name="support">Unterst\u00FCtzung</string>
<string name="third_party_licenses">Lizenzen von drittanbietern</string>
<string name="view_on_github">Auf GitHub anschauen</string>

<!--#########################################################################################-->

<!--Bottom sheet-->
<string name="cancel">Abbrechen</string>
<string name="retry">Wiederholung</string>
<string name="done">Erledigt</string>

<!--No Network/Internet-->
<string name="no_network_title">Kein Netzwerk/Internet</string>
<string name="no_network_subtitle">Verbinden Sie sich mit Wi-Fi oder mobilen Daten und versuchen Sie es erneut.
Wenn bereits eine Verbindung besteht, vergewissern Sie sich, dass das Gerät eine Internetverbindung hat.</string>

<!--Scan multiple passwords-->
<string name="scan_multi_pwds">Mehrere Passw\u00F6rter scannen</string>
<string name="add">Hinzuf\u00FCgen</string>
<string name="select_file">Datei aussuchen</string>

<!--Add multiple passwords-->
<string name="add_multi_pwds">Mehrere Passw\u00F6rter hinzuf\u00FCgen</string>

<!--Theme-->
<string name="follow_system">System verfolgen</string>
<string name="light">Hell</string>
<string name="dark">Dunkel</string>

<!--#########################################################################################-->

<!--Snackbars-->
<string name="no_browsers">Es ist kein browser auf diesem ger\u00E4t installiert</string>
<string name="something_went_wrong">Etwas ist schief gelaufen</string>

</resources>
Loading

0 comments on commit 862953b

Please sign in to comment.