Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs translations #682

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 31 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,35 @@
# Zingo Android and iOS apps
# Zingo Mobile Documentation

## 🌍 Language Menu
> Select your preferred language for documentation:

- 🇪🇸 [Español](./docs/es/README-es.md)
Guía completa para usar Zingo Mobile en español.
- 🇩🇪 [Deutsch](./docs/de/readme-de.md)
Umfassender Leitfaden zur Verwendung von Zingo Mobile auf Deutsch
- 🇹🇷 [Türkçe](./docs/tu/readme-tu.md)
Zingo Mobile'nin Türkçe kullanımı için kapsamlı kılavuz

## Zingo Android and iOS apps
App Store: [https://apps.apple.com/app/zingo/id1668209531](https://apps.apple.com/app/zingo/id1668209531)
Google Play: [https://play.google.com/store/apps/details?id=org.ZingoLabs.Zingo](https://play.google.com/store/apps/details?id=org.ZingoLabs.Zingo)

# Security Vulnerability Disclosure
## Security Vulnerability Disclosure

If you believe you have discovered a security issue, please contact us at:

zingodisclosure@proton.me

# iOS
## Prerequisites
## iOS
### Prerequisites
1. Yarn
2. NodeJS (recommended version 17+)
3. Rust (https://www.rust-lang.org/tools/install)
4. Rustup iOS targets (`rustup target add aarch64-apple-ios aarch64-apple-ios-sim`)
5. Cargo-lipo (`cargo install cargo-lipo`)
6. Cocaopods (`sudo gem install cocoapods`)

## Building for physical device
### Building for physical device
1. Clone the repository.
2. Go to the cloned repo `cd zingo-mobile`.
3. In the `rust/ios` directory, run: <br />
Expand All @@ -28,7 +40,7 @@ zingodisclosure@proton.me
5. In the `ios` directory, run: <br />
`pod install`

## Building for simulator
### Building for simulator
1. Clone the repository.
2. Go to the cloned repo `cd zingo-mobile`.
3. In the `rust/ios` directory, run: <br />
Expand All @@ -39,15 +51,15 @@ zingodisclosure@proton.me
5. In the `ios` directory, run: <br />
`pod install`

## Launching the app
### Launching the app
1. In a terminal, run: <br />
`yarn start`
2. In a separate terminal, run: <br />
`yarn ios` <br />
You can also open the `ios` directory in XCode and run it there.

# Android
## Prerequisites
## Android
### Prerequisites
1. Yarn
2. NodeJS (recommended version 17+)
3. Rust (https://www.rust-lang.org/tools/install)
Expand Down Expand Up @@ -75,7 +87,7 @@ Add the following lines to your `$HOME/.bashrc` config file: <br />
Also, make sure your JAVA_HOME is set, for example: <br />
`export JAVA_HOME="/usr/lib/jvm/jdk-18.0.2"`

## Building
### Building
1. Clone the repository.
2. Go to the cloned repo `cd zingo-mobile`.
3. In the `rust` directory, run: <br />
Expand All @@ -84,8 +96,8 @@ Also, make sure your JAVA_HOME is set, for example: <br />
4. From the root of the project, run: <br />
`yarn`

## Launching the app
### Android Studio
### Launching the app
#### Android Studio
1. For Android emulations, you can create a new AVD, compatible with your CPU architecture
i.e. x86_64 (https://developer.android.com/studio/run/managing-avds). The recommended API is API
30 (Android 11). Alternatively, you can connect to a physical device
Expand All @@ -99,16 +111,16 @@ Also, make sure your JAVA_HOME is set, for example: <br />
Alternatively, launch an AVD and in a separate terminal, run: <br />
`yarn android`

### Android SDK Command-line Tools (Standalone)
#### Android SDK Command-line Tools (Standalone)
You can also emulate android from the command line without using Android Studio.
1. Check that the Android SDK cmdline-tools binaries are in the following directory path: <br />
`$ANDROID_HOME/cmdline-tools/latest/bin`
2. From the root directory run: <br />
`scripts/start_interactive.sh -a x86` <br />
Outputs are generated in `android/app/build/outputs/emulator_output`

## Testing
### Prerequesites
### Testing
#### Prerequesites
Integration tests and end-to-end tests require a regtest server. On linux hosts, these may be run
locally by installing the lightwalletd, zcashd and zcash-cli binaries
(https://github.com/zingolabs/zingolib#regtest). From the `rust/android/regtest/bin/` directory run: <br />
Expand All @@ -121,11 +133,11 @@ Alternatively, integration tests and end-to-end tests can be run on non-linux ho
network in a docker container. Before running tests, pull the latest Regchest image from docker: <br />
`docker pull zingodevops/regchest:007`

### Yarn Tests
#### Yarn Tests
1. From the root directory, run: <br />
`yarn test`

### Integration Tests
#### Integration Tests
1. Create quick-boot snapshots to speed up AVD launch times. From the root directory, run: <br />
`./scripts/integration_tests.sh -a x86_64 -s` <br />
`./scripts/integration_tests.sh -a x86 -s` <br />
Expand All @@ -152,7 +164,7 @@ For more information on running integration tests on non-default AVDs, run: <br
Without the cargo test runner these emulated android devices will not be able to connect to a
lightwalletd/zcashd regtest network. Therefore, only tests in the "Offline Testsuite" may be tested.

### End-to-End Tests
#### End-to-End Tests
0. Note there needs to be a lightwalletd in rust/android/lightwalletd_bin
1. Launch the emulated AVD by clicking the 'play' icon in Android Studio's `Device Manager`.
Alternatively, connect to a physical device. See previous section 'Launching the app' for more
Expand All @@ -167,5 +179,5 @@ lightwalletd/zcashd regtest network. Therefore, only tests in the "Offline Tests
Regchest is still under development and currently not able to run darkside end-to-end tests: <br />
`cargo nextest run --features regchest -E 'test(e2e) and not test(darkside)'`

# Troubleshooting
## Troubleshooting
For notes on known issues and problems, see the [trouble-shooting notes](./TROUBLESHOOTING.md).
22 changes: 22 additions & 0 deletions docs/de/privacy_policy-de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Zingo: Eine Zcash-Anwendung

Nutze Kryptographie mit Zero-Knowledge-Beweisen, um Transaktionen durchzuführen und deinen Transaktionsverlauf auf private und achtsame Weise zu verwalten.

Übernehme die exklusive und einzigartige Kontrolle über deine Finanzhistorie. Nutze diese einzigartigen Einblicke in dein eigenes Finanzverhalten, um zu reflektieren, wie du Geld ausgibst. Teile Erkenntnisse nach deinen eigenen Bedingungen. Baue gesunde Beziehungen zu verschiedenen Wirtschaftsgemeinschaften auf.

Nur du hast die Macht, deine Informationen zu teilen! Deine Perspektive zählt. Du zählst.

Memos und Transaktionen
Wenn du Zcash sendest, kannst du ein Memo schreiben, das alles enthält, was du möchtest. Wenn du Zcash erhältst, erhältst du auch das Memo, das der Absender geschrieben hat. Wie bei den meisten Kryptowährungen senden Wallets routinemäßig Transaktionen an sich selbst, um "Wechselgeld" aus der Transaktion zurückzuerhalten. In diesem Fall, in dem die Anwendung sowohl Absender als auch Empfänger ist, verwendet Zingo das Memo-System, um sich selbst Notizen über die Transaktionen zu machen, die sie für den Benutzer erstellt.

Zingo extrahiert diese Daten, um dir exklusive Einblicke zu bieten. In unserer ersten Version verwenden wir diesen introspektiven Mechanismus bereits, um uns zu "merken", an welche vollständigen Unified Addresses du zuvor Zcash gesendet hast. Mit anderen Worten, Zingo verfolgt, an wen du Zcash gesendet hast, auf der Blockchain. Dieses "Adressbuch" von Personen, an die du in der Vergangenheit "gesendet" hast, ist völlig privat und wird, solange du deine Seed-Phrase ordnungsgemäß schützt, vollständig wiederhergestellt, selbst wenn du dein Gerät verlierst.

Wir implementieren derzeit eine weitere Verwendung dieser On-Chain-Memos, die es dir ermöglicht, (auch wenn du dein Gerät verlierst) zu verfolgen, welche Adressen du zuvor erstellt hast, um Gelder zu empfangen. Das heißt, du hast immer eine vollständige Liste aller Adressen, die du Personen gebeten hast, zu verwenden, um dir Zcash zu senden.

Zusammengenommen bieten dir diese beiden introspektiven Mechanismen Einblicke darüber, an wen du Gelder gesendet und von wem du Gelder angefordert hast. Dies ist erst der Anfang! Wir beabsichtigen, Mechanismen zu implementieren, die es Benutzern ermöglichen, ihre Erkenntnisse auf anonyme und wirtschaftlich tragfähige Weise zu teilen, wodurch sich Gemeinschaften um Marktplätze mit interessanten Erkenntnissen bilden können!

Datenschutz und Community
Deine On-Chain-Transaktionsdetails werden niemals Dritten zugänglich gemacht. Indem wir dir private Einblicke in dein eigenes wirtschaftliches Verhalten geben, ermöglichen wir es jedem, gesündere finanzielle Entscheidungen zu treffen. Wir erwarten vielfältige Gemeinschaften, die sich um verschiedene Arten von Erkenntnissen bilden, um auf gemeinsamen Werten zusammenzuarbeiten.

Technisches Detail des UA-Caching:
Zcash unterstützt eine Unified Address mit mehreren Protokollen, die es dem Protokoll ermöglicht, auf neuere Versionen zu aktualisieren, ohne die Abwärtskompatibilität mit früheren Versionen zu beeinträchtigen. Dieses Unified Address-System wird von Clients außerhalb der Chain implementiert. Clients teilen Unified Addresses miteinander. Die Unified Addresses enthalten protokollspezifische Adressen, die der Client auspacken und als Teil der von ihm erstellten Transaktion in der Blockchain veröffentlichen kann. Dies bedeutet, dass die On-Chain-Adresse, die mit einer Transaktion verknüpft ist, nicht alle Informationen enthält, die der sendende Client als "Unified Address" vom empfangenden Client außerhalb der Chain erhalten hat. Wenn der sendende Client die UA einfach außerhalb der Chain aufzeichnen würde, gäbe es im Falle eines Re-Sprouting des Clients aus seiner Seed-Phrase keine Möglichkeit, diese Beziehungsdaten wiederherzustellen. Zingo löst dieses Problem, indem es die vom ursprünglichen Empfänger bereitgestellte UA im Memo-Feld des Wechselgelds aus der Transaktion aufzeichnet.
141 changes: 141 additions & 0 deletions docs/de/readme-de.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
# Zingo Mobile Dokumentation

## 🌍 Sprachmenü
> Wählen Sie Ihre bevorzugte Sprache für die Dokumentation:

- 🇬🇧 [English](../../README.md)
Comprehensive guide to using Zingo Mobile in English.
- 🇪🇸 [Español](../es/README-es.md)
Guía completa para usar Zingo Mobile en español.
- 🇹🇷 [Türkçe](../tu/readme-tu.md)
Zingo Mobile'nin Türkçe kullanımı için kapsamlı kılavuz

## Zingo Android- und iOS-Apps
App Store: [https://apps.apple.com/app/zingo/id1668209531](https://apps.apple.com/app/zingo/id1668209531)
Google Play: [https://play.google.com/store/apps/details?id=org.ZingoLabs.Zingo](https://play.google.com/store/apps/details?id=org.ZingoLabs.Zingo)

## Offenlegung von Sicherheitslücken

Wenn Sie glauben, ein Sicherheitsproblem entdeckt zu haben, kontaktieren Sie uns bitte unter:

zingodisclosure@proton.me

## iOS
### Voraussetzungen
1. Yarn
2. NodeJS (empfohlene Version 17+)
3. Rust ([https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install))
4. Rustup iOS-Ziele (`rustup target add aarch64-apple-ios aarch64-apple-ios-sim`)
5. Cargo-lipo (`cargo install cargo-lipo`)
6. Cocaopods (`sudo gem install cocoapods`)

### Erstellen für physisches Gerät
1. Klonen Sie das Repository.
2. Gehen Sie zum geklonten Repository `cd zingo-mobile`.
3. Führen Sie im Verzeichnis `rust/ios` Folgendes aus: <br />
`./build.sh` <br />
Dieser Schritt kann lange dauern.
4. Führen Sie vom Stammverzeichnis des Projekts aus Folgendes aus: <br />
`yarn`
5. Führen Sie im Verzeichnis `ios` Folgendes aus: <br />
`pod install`

### Erstellen für Simulator
1. Klonen Sie das Repository.
2. Gehen Sie zum geklonten Repository `cd zingo-mobile`.
3. Führen Sie im Verzeichnis `rust/ios` Folgendes aus: <br />
`./buildsimulator.sh` <br />
Dieser Schritt kann lange dauern.
4. Führen Sie vom Stammverzeichnis des Projekts aus Folgendes aus: <br />
`yarn`
5. Führen Sie im Verzeichnis `ios` Folgendes aus: <br />
`pod install`

### Starten der App
1. Führen Sie in einem Terminal Folgendes aus: <br />
`yarn start`
2. Führen Sie in einem separaten Terminal Folgendes aus: <br />
`yarn ios` <br />
Sie können auch das Verzeichnis `ios` in XCode öffnen und dort ausführen.

## Android
### Voraussetzungen
1. Yarn
2. NodeJS (empfohlene Version 17+)
3. Rust ([https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install))
4. Docker (Docker Engine)
5. OpenJDK 18 ([https://jdk.java.net/archive/](https://jdk.java.net/archive/))

1. curl [https://download.java.net/java/GA/jdk18.0.2/f6ad4b4450fd4d298113270ec84f30ee/9/GPL/openjdk-18.0.2_linux-x64_bin.tar.gz](https://download.java.net/java/GA/jdk18.0.2/f6ad4b4450fd4d298113270ec84f30ee/9/GPL/openjdk-18.0.2_linux-x64_bin.tar.gz) -o openjdk-18.0.2_linux-x64_bin.tar.gz
2. tar -xzvf openjdk-18.0.2_linux-x64_bin.tar.gz

6. Android SDK Command-line Tools <br />
Installieren über Android Studio SDK Manager: <br />
[https://developer.android.com/studio/install](https://developer.android.com/studio/install) <br />
oder als eigenständige Version: <br />
[https://developer.android.com/tools](https://developer.android.com/tools)
7. Cargo nextest ([https://nexte.st/book/installing-from-source.html](https://nexte.st/book/installing-from-source.html))

Die React Native-Tools erfordern die Einrichtung einiger Umgebungsvariablen, um Apps mit nativem Code zu erstellen. <br />
Fügen Sie die folgenden Zeilen zu Ihrer Konfigurationsdatei `$HOME/.bash_profile` oder `$HOME/.profile` hinzu: <br />
`PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin"` <br />
`PATH="$PATH:$ANDROID_HOME/platform-tools"` <br />
`PATH="$PATH:$ANDROID_HOME/emulator"` <br />
Fügen Sie die folgenden Zeilen zu Ihrer Konfigurationsdatei `$HOME/.bashrc` hinzu: <br />
`export ANDROID_SDK_ROOT="$HOME/Android/Sdk"` <br />
Stellen Sie außerdem sicher, dass Ihr JAVA_HOME festgelegt ist, zum Beispiel: <br />
`export JAVA_HOME="/usr/lib/jvm/jdk-18.0.2"`

### Erstellen
1. Klonen Sie das Repository.
2. Gehen Sie zum geklonten Repository `cd zingo-mobile`.
3. Führen Sie im Verzeichnis `rust` Folgendes aus: <br />
`./build.sh` <br />
Dieser Schritt kann lange dauern.
4. Führen Sie vom Stammverzeichnis des Projekts aus Folgendes aus: <br />
`yarn`

### Starten der App
#### Android Studio
1. Für Android-Emulationen können Sie ein neues AVD erstellen, das mit Ihrer CPU-Architektur kompatibel ist,
z. B. x86_64 ([https://developer.android.com/studio/run/managing-avds](https://developer.android.com/studio/run/managing-avds)). Die empfohlene API ist API
30 (Android 11). Alternativ können Sie eine Verbindung zu einem physischen Gerät herstellen
([https://reactnative.dev/docs/running-on-device](https://reactnative.dev/docs/running-on-device)).
2. Navigieren Sie in `File > Settings` zu `Build, Execution and Deployment > Build Tools > Gradle` und
überprüfen Sie, ob das `Gradle JDK` mit Ihrer JDK-Version übereinstimmt.
2. Führen Sie in einem Terminal Folgendes aus: <br />
`yarn start`
3. Öffnen Sie das Verzeichnis `android` in Android Studio als Projekt, wählen Sie 'app' und das zuvor
erstellte AVD in der oberen Symbolleiste und klicken Sie auf die Schaltfläche "Run 'app'".
Alternativ starten Sie ein AVD und führen Sie in einem separaten Terminal Folgendes aus: <br />
`yarn android`

#### Android SDK Command-line Tools (Eigenständig)
Sie können Android auch über die Befehlszeile emulieren, ohne Android Studio zu verwenden.
1. Überprüfen Sie, ob sich die Binärdateien der Android SDK cmdline-tools im folgenden Verzeichnispfad befinden: <br />
`$ANDROID_HOME/cmdline-tools/latest/bin`
2. Führen Sie vom Stammverzeichnis aus Folgendes aus: <br />
`scripts/start_interactive.sh -a x86` <br />
Die Ausgaben werden in `android/app/build/outputs/emulator_output` generiert

### Testen
#### Voraussetzungen
Integrationstests und End-to-End-Tests erfordern einen Regtest-Server. Auf Linux-Hosts können diese
lokal ausgeführt werden, indem die Binärdateien lightwalletd, zcashd und zcash-cli installiert werden
([https://github.com/zingolabs/zingolib#regtest](https://github.com/zingolabs/zingolib#regtest)). Führen Sie vom Verzeichnis `rust/android/regtest/bin/` aus Folgendes aus: <br />
`ln -s path/to/lightwalletd/binary path/to/zcashd/binary path/to/zcash-cli/binary ./` <br />
Führen Sie vom Verzeichnis `rust/android/lightwalletd_bin` aus Folgendes aus: <br />
`ln -s path/to/lightwalletd/binary ./`

Alternativ können Integrationstests und End-to-End-Tests auf Nicht-Linux-Hosts mit Regchest
([https://github.com/zingolabs/zingo-regchest](https://github.com/zingolabs/zingo-regchest)) ausgeführt werden. Regchest verwaltet das zcash/lightwalletd-Regtest-
Netzwerk in einem Docker-Container. Bevor Sie Tests ausführen, ziehen Sie das neueste Regchest-Image von Docker: <br />
`docker pull zingodevops/regchest:007`

#### Yarn-Tests
1. Führen Sie vom Stammverzeichnis aus Folgendes aus: <br />
`yarn test`

#### Integrationstests
1. Erstellen Sie Quick-Boot-Snapshots, um die Startzeiten von AVD zu beschleunigen. Führen Sie vom Stammverzeichnis aus Folgendes aus: <br />
`./scripts/integration_tests.sh -a x86_64 -s
Loading
Loading