diff --git a/AGENTS.md b/AGENTS.md index b62d427b..fba2b9e4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,13 +12,14 @@ Amber is a single-module Android app (`:app`, package `com.greenart7c3.nostrsign - `./gradlew ktlintCheck` — Kotlin style check (pre-commit hook runs this). - `./gradlew ktlintFormat` — auto-fix formatting issues. -- `./gradlew test --no-daemon` — JVM unit tests for all variants (pre-push hook runs `./gradlew test`). +- `./gradlew lint` — Android Lint on the default variant; `warningsAsErrors` is on, so any new warning fails the build (pre-commit and pre-push hooks run this). Version-freshness checks (`GradleDependency` etc.) are disabled in `app/build.gradle.kts`; per-path exemptions live in `app/lint.xml`. +- `./gradlew test --no-daemon` — JVM unit tests for all variants (pre-push hook runs `./gradlew test lint`). - Run one test: `./gradlew :app:testFreeDebugUnitTest --tests "com.greenart7c3.nostrsigner.SomeTest"` (or `--tests "*SomeTest.method"`). - `./gradlew assembleDebug --no-daemon` — debug APK for both product flavors. - `./gradlew assembleRelease --no-daemon` — release APK; signing only activates when env `SIGN_RELEASE` is set **and** `keystore.properties` exists. CI otherwise `touch`es an empty one. - `./build.sh ` — builds free + offline release APKs/AABs into `~/release/` and calls `generate_manifest.sh`. -Required order when pushing: `ktlintCheck` → `test` → build (mirrored by the hooks, but run them directly; do not rely on hooks). +Required order when pushing: `ktlintCheck` → `lint` → `test` → build (mirrored by the hooks, but run them directly; do not rely on hooks). ## Releases / version bumps diff --git a/CLAUDE.md b/CLAUDE.md index 810470f4..860158ba 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -7,8 +7,9 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ```bash ./gradlew assembleDebug # debug build ./gradlew assembleRelease # release build (requires signing keystore) -./gradlew ktlintCheck # lint check (also runs on every git commit via pre-commit hook) -./gradlew ktlintFormat # auto-fix lint issues +./gradlew ktlintCheck # Kotlin style check (also runs on every git commit via pre-commit hook) +./gradlew ktlintFormat # auto-fix Kotlin style issues +./gradlew lint # Android Lint, warnings fail the build (runs on commit and push via hooks) ./gradlew test --no-daemon # unit tests (also runs on every git push via pre-push hook) ./build.sh # builds both offline and free release variants to ~/release/ ``` diff --git a/app/build.gradle.kts b/app/build.gradle.kts index df1582b7..ef734b56 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,9 +24,23 @@ android { vectorDrawables { useSupportLibrary = true } - lint { - disable += listOf("MissingTranslation", "LocalContextGetResourceValueCall") - } + } + + lint { + // Any new warning fails the build (enforced by the pre-commit/pre-push hooks and CI) + warningsAsErrors = true + abortOnError = true + disable += listOf( + "MissingTranslation", + "LocalContextGetResourceValueCall", + // Version bumps are handled deliberately, not because a hook went red the + // day a new release was published + "AndroidGradlePluginVersion", + "GradleDependency", + "NewerVersionAvailable", + // Resource shrinking is a release-packaging decision, tracked separately + "NotShrinkingResources", + ) } androidResources { diff --git a/app/lint.xml b/app/lint.xml new file mode 100644 index 00000000..81f05c4f --- /dev/null +++ b/app/lint.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9c3892ab..2738fe79 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,8 +10,13 @@ - - + + + if (response.isSuccessful) { + // Safe call needed: the offline flavor compiles against OkHttp 4, where body is nullable val body = response.body?.string() ?: "" Result.success(body) } else { diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/service/ZapstoreUpdater.kt b/app/src/main/java/com/greenart7c3/nostrsigner/service/ZapstoreUpdater.kt index 665e9ecb..5a06e6b3 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/service/ZapstoreUpdater.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/service/ZapstoreUpdater.kt @@ -288,6 +288,7 @@ class ZapstoreUpdater( return null } + // Safe call needed: the offline flavor compiles against OkHttp 4, where body is nullable val body = response.body ?: return null val contentLength = body.contentLength() val apkFile = File(context.cacheDir, "amber-update-${release.version}.apk") diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/SettingsScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/SettingsScreen.kt index ad264e35..e1219108 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/SettingsScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/SettingsScreen.kt @@ -16,8 +16,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.automirrored.filled.Article import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight -import androidx.compose.material.icons.filled.Article import androidx.compose.material.icons.filled.CloudUpload import androidx.compose.material.icons.filled.Draw import androidx.compose.material.icons.filled.Feedback @@ -219,7 +219,7 @@ fun SettingsScreen( SettingsItem( title = stringResource(R.string.logs), subtitle = stringResource(R.string.logs_subtitle), - painter = rememberVectorPainter(Icons.Default.Article), + painter = rememberVectorPainter(Icons.AutoMirrored.Filled.Article), onClick = { onNav(Route.Logs.route) }, ) } diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/AmberToggles.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/AmberToggles.kt index 048e55aa..cf1e838b 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/AmberToggles.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/AmberToggles.kt @@ -94,7 +94,7 @@ fun AmberToggles( ) { Box( modifier = Modifier - .offset(x = indicatorOffset) + .offset { IntOffset(indicatorOffset.roundToPx(), 0) } .width(segmentWidth) .fillMaxHeight() .clip(RoundedCornerShape(4.dp)) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/IntentSingleEventHomeScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/IntentSingleEventHomeScreen.kt index 49a991f2..703b4848 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/IntentSingleEventHomeScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/IntentSingleEventHomeScreen.kt @@ -241,7 +241,6 @@ fun IntentSingleEventHomeScreen( val nip = when (intentData.type) { SignerType.NIP04_DECRYPT, SignerType.NIP04_ENCRYPT -> 4 SignerType.NIP44_ENCRYPT, SignerType.NIP44_DECRYPT -> 44 - SignerType.DECRYPT_ZAP_EVENT -> null else -> null } val isEncrypt = intentData.type == SignerType.NIP04_ENCRYPT || intentData.type == SignerType.NIP44_ENCRYPT diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RemoteAppIcon.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RemoteAppIcon.kt index 3ebc3038..b6cfbe56 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RemoteAppIcon.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RemoteAppIcon.kt @@ -16,7 +16,7 @@ import androidx.compose.ui.unit.dp @Composable fun RemoteAppIcon( imageUrl: String?, - name: String = "", + name: String, modifier: Modifier = Modifier, size: Dp = 48.dp, ) { diff --git a/app/src/main/res/drawable/ic_qrcode.png b/app/src/main/res/drawable-nodpi/ic_qrcode.png similarity index 100% rename from app/src/main/res/drawable/ic_qrcode.png rename to app/src/main/res/drawable-nodpi/ic_qrcode.png diff --git a/app/src/main/res/drawable/frame.xml b/app/src/main/res/drawable/frame.xml index b7640ea6..b6917c8e 100644 --- a/app/src/main/res/drawable/frame.xml +++ b/app/src/main/res/drawable/frame.xml @@ -1,8 +1,11 @@ + + android:viewportHeight="225" + tools:ignore="VectorRaster"> diff --git a/app/src/main/res/drawable/ic_launcher_background_white.xml b/app/src/main/res/drawable/ic_launcher_background_white.xml deleted file mode 100644 index 924f7373..00000000 --- a/app/src/main/res/drawable/ic_launcher_background_white.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/src/main/res/drawable/ic_tor.xml b/app/src/main/res/drawable/ic_tor.xml index bafee0c1..a5cdf5ce 100644 --- a/app/src/main/res/drawable/ic_tor.xml +++ b/app/src/main/res/drawable/ic_tor.xml @@ -1,4 +1,8 @@ - + + diff --git a/app/src/main/res/drawable/settings.xml b/app/src/main/res/drawable/settings.xml index f0c4eb22..45ffa887 100644 --- a/app/src/main/res/drawable/settings.xml +++ b/app/src/main/res/drawable/settings.xml @@ -1,8 +1,11 @@ + + android:viewportHeight="24" + tools:ignore="VectorPath"> - - - - - \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index 96b3d596..00000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/app/src/main/res/mipmap-hdpi/ic_launcher_background.png deleted file mode 100644 index db0880dd..00000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_background.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index afa1471c..00000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png deleted file mode 100644 index afa1471c..00000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index bb1b518d..00000000 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 33fa6f32..00000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/app/src/main/res/mipmap-mdpi/ic_launcher_background.png deleted file mode 100644 index 484813e3..00000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_background.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 76841c12..00000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png deleted file mode 100644 index 76841c12..00000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp deleted file mode 100644 index 90ef6c56..00000000 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index b23b2101..00000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png deleted file mode 100644 index 64c18c7e..00000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index 8143f239..00000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 8143f239..00000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index bae84ac3..00000000 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index a08cee7a..00000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png deleted file mode 100644 index 500b2b23..00000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index f01af448..00000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png deleted file mode 100644 index f01af448..00000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 553b6ecb..00000000 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index 06f678d7..00000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png deleted file mode 100644 index 19c0c5de..00000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 2abd09c1..00000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png deleted file mode 100644 index 2abd09c1..00000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png and /dev/null differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 31c14a80..00000000 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 5c087f72..0e7e078c 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -55,7 +55,7 @@ In Zwischenablage kopieren Noch nichts zu genehmigen Warum nicht deine Lieblings-Nostr-App ein wenig erkunden? - %1$s mehr... + %1$s mehr… " möchte deinen öffentlichen Schlüssel lesen und Events in deinem Namen signieren" ## Verbinde dich über Tor mit Orbot \n\n1. Installiere [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android) @@ -202,7 +202,6 @@ Senden Wechselgeld Gebühr - %1$s Sats Rohes PSBT (Hex) PSBT konnte nicht dekodiert werden: %1$s Signieren als @@ -368,8 +367,8 @@ Das Passwort muss mindestens 8 Zeichen lang sein Passwörter stimmen nicht überein Alle Konten exportieren - Export wird vorbereitet... - Konto %1$d von %2$d wird exportiert... + Export wird vorbereitet… + Konto %1$d von %2$d wird exportiert… %d Konten erfolgreich exportiert Export fehlgeschlagen: %s Export bestätigen @@ -413,7 +412,7 @@ Erstellen Name Keine Relays hinzugefügt - wss://... + wss://… "Name darf nicht leer sein " Dein nsecbunker ist bereit! Verwende diese URL in deiner App: @@ -450,7 +449,7 @@ Standard-Profil-Relays Verwalte die Relays, die zum Abrufen deiner Profildaten verwendet werden Verwalte die Relays, die zur Kommunikation mit externen Anwendungen verwendet werden - Relay wird getestet... + Relay wird getestet… EIN SICHERER NOSTR-SIGNIERER Zurück Dein Nostr-Konto ist bereit! @@ -709,7 +708,6 @@ Client-Schlüsselankündigung Anwendungs-Backup Wenn aktiviert, veröffentlicht Amber einmal täglich eine verschlüsselte Kopie deiner verbundenen Anwendungen und ihrer Berechtigungen auf Relays, damit du sie auf einem neuen Gerät wiederherstellen kannst. Nur du kannst das Backup entschlüsseln. - Verschlüsseltes Anwendungs-Backup aktivieren Jetzt sichern Von Relays wiederherstellen Anwendungen wiederherstellen? diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index dbb82716..072986df 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -57,7 +57,7 @@ Copiar al portapapeles Nada que aprobar aún ¿Por qué no explorar un poco tu app favorita de nostr? - %1$s más... + %1$s más… " desea tu permiso para leer tu clave pública y firmar eventos en tu nombre" ## Conectarse a través de Tor con Orbot @@ -205,7 +205,6 @@ Enviando Cambio Comisión - %1$s sats PSBT sin formato (hex) No se pudo decodificar el PSBT: %1$s Firmando como @@ -371,8 +370,8 @@ La contraseña debe tener al menos 8 caracteres Las contraseñas no coinciden Exportar todas las cuentas - Preparando exportación... - Exportando cuenta %1$d de %2$d... + Preparando exportación… + Exportando cuenta %1$d de %2$d… Se exportaron correctamente %d cuentas Error en la exportación: %s Confirmar exportación @@ -416,7 +415,7 @@ Crear Nombre No se han añadido relays - wss://... + wss://… "El nombre no puede estar vacío " ¡Tu nsecbunker está listo! Usa esta URL en tu aplicación: @@ -453,7 +452,7 @@ Relays de perfil predeterminados Gestiona los relays usados para obtener los datos de tu perfil Gestiona los relays usados para comunicarse con aplicaciones externas - Probando relay... + Probando relay… UN FIRMANTE SEGURO DE NOSTR Volver ¡Tu cuenta de Nostr está lista! @@ -712,7 +711,6 @@ Anuncio de clave de cliente Copia de seguridad de aplicaciones Cuando está activado, Amber publica una copia cifrada de tus aplicaciones conectadas y sus permisos en los relays una vez al día para que puedas restaurarlos en un nuevo dispositivo. Solo tú puedes descifrar la copia de seguridad. - Activar copia de seguridad cifrada de aplicaciones Hacer copia de seguridad ahora Restaurar desde relays ¿Restaurar aplicaciones? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 118f86f9..f67e6a49 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -55,7 +55,7 @@ Copier dans le presse-papiers Rien à approuver pour l\'instant Pourquoi ne pas explorer un peu votre application Nostr préférée ? - %1$s plus... + %1$s plus… " aimerait avoir la permission de lire votre clé publique et de signer des évènements en votre nom" ## Se connecter à travers Tor avec Orbot \n\n1. Installe [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android) @@ -202,7 +202,6 @@ Envoi Monnaie Frais - %1$s sats PSBT brut (hex) Impossible de décoder le PSBT : %1$s Signature en tant que @@ -368,8 +367,8 @@ Le mot de passe doit contenir au moins 8 caractères Les mots de passe ne correspondent pas Exporter tous les comptes - Préparation de l\'exportation... - Exportation du compte %1$d sur %2$d... + Préparation de l\'exportation… + Exportation du compte %1$d sur %2$d… %d comptes exportés avec succès Échec de l\'exportation : %s Confirmer l\'exportation @@ -413,7 +412,7 @@ Créer Nom Aucun relay ajouté - wss://... + wss://… "Le nom ne peut pas être vide " Votre nsecbunker est prêt ! Utilisez cette URL dans votre application : @@ -450,7 +449,7 @@ Relays de profil par défaut Gérez les relays utilisés pour récupérer les données de votre profil Gérez les relays utilisés pour communiquer avec les applications externes - Test du relay... + Test du relay… UN SIGNATAIRE SÉCURISÉ NOSTR Retour Votre compte Nostr est prêt ! @@ -709,7 +708,6 @@ Annonce de clé client Sauvegarde des applications Lorsqu\'il est activé, Amber publie une copie chiffrée de vos applications connectées et de leurs permissions sur les relays une fois par jour afin que vous puissiez les restaurer sur un nouvel appareil. Vous seul pouvez déchiffrer la sauvegarde. - Activer la sauvegarde chiffrée des applications Sauvegarder maintenant Restaurer depuis les relays Restaurer les applications ? diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index ddbbcc51..5515404e 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -57,7 +57,7 @@ Salin ke clipboard Belum ada yang perlu disetujui Mengapa tidak menjelajahi aplikasi nostr favorit Anda sebentar? - %1$s lagi... + %1$s lagi… "Meminta izin Anda untuk membaca kunci publik dan menandatangani event atas nama Anda" ## Hubungkan melalui Tor dengan Orbot @@ -205,7 +205,6 @@ Mengirim Kembalian Biaya - %1$s sats PSBT mentah (hex) Tidak dapat mendekode PSBT: %1$s Menandatangani sebagai @@ -371,8 +370,8 @@ Kata sandi harus minimal 8 karakter Kata sandi tidak cocok Ekspor Semua Akun - Menyiapkan ekspor... - Mengekspor akun %1$d dari %2$d... + Menyiapkan ekspor… + Mengekspor akun %1$d dari %2$d… Berhasil mengekspor %d akun Ekspor gagal: %s Konfirmasi Ekspor @@ -416,7 +415,7 @@ Buat Nama Belum ada relay ditambahkan - wss://... + wss://… "Nama tidak boleh kosong " nsecbunker Anda siap! Gunakan URL ini di aplikasi Anda: @@ -453,7 +452,7 @@ Relay profil default Kelola relay yang digunakan untuk mengambil data profil Anda Kelola relay yang digunakan untuk berkomunikasi dengan aplikasi eksternal - Menguji relay... + Menguji relay… PENANDA AMAN NOSTR Kembali Akun Nostr Anda siap! @@ -712,7 +711,6 @@ Pengumuman kunci klien Cadangan aplikasi Jika diaktifkan, Amber menerbitkan salinan terenkripsi aplikasi yang terhubung dan izinnya ke relay sekali sehari sehingga Anda dapat memulihkannya di perangkat baru. Hanya Anda yang dapat mendekripsi cadangan. - Aktifkan cadangan aplikasi terenkripsi Cadangkan sekarang Pulihkan dari relay Pulihkan aplikasi? diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 39c00484..292aade3 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -57,7 +57,7 @@ Copia negli appunti Niente da approvare per ora Perché non esplori un po\' la tua app Nostr preferita? - %1$s altri... + %1$s altri… " Vorrebbe il tuo permesso per leggere la tua chiave pubblica e firmare gli eventi per tuo conto" ## Connettiti tramite Tor con Orbot @@ -205,7 +205,6 @@ Invio Resto Commissione - %1$s sats PSBT grezzo (hex) Impossibile decodificare PSBT: %1$s Firma come @@ -371,8 +370,8 @@ La password deve contenere almeno 8 caratteri Le password non corrispondono Esporta tutti gli account - Preparazione esportazione... - Esportazione account %1$d di %2$d... + Preparazione esportazione… + Esportazione account %1$d di %2$d… Esportati con successo %d account Esportazione fallita: %s Conferma esportazione @@ -416,7 +415,7 @@ Crea Nome Nessun relay aggiunto - wss://... + wss://… "Il nome non può essere vuoto " Il tuo nsecbunker è pronto! Usa questo URL nella tua app: @@ -453,7 +452,7 @@ Relay profilo predefiniti Gestisci i relay usati per recuperare i dati del tuo profilo Gestisci i relay usati per comunicare con le applicazioni esterne - Test relay in corso... + Test relay in corso… UN SIGNER SICURO NOSTR Torna indietro Il tuo account Nostr è pronto! @@ -712,7 +711,6 @@ Annuncio chiave client Backup applicazioni Quando abilitato, Amber pubblica una copia cifrata delle tue applicazioni connesse e dei loro permessi sui relay una volta al giorno, così puoi ripristinarli su un nuovo dispositivo. Solo tu puoi decifrare il backup. - Abilita backup cifrato delle applicazioni Backup ora Ripristina dai relay Ripristinare le applicazioni? diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index b55ef543..850012f8 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -48,7 +48,7 @@ クリップボードにコピー まだ承認するものはありません お気に入りの Nostr アプリを少し探索してみませんか? - あと %1$s 件... + あと %1$s 件… "あなたの公開鍵を読み取り、あなたに代わってイベントに署名する許可を求めています" \n ## Orbot で Tor 接続する\n \n\n1. [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android) をインストール\n \n2. Orbot を起動\n \n3. Orbot で Socks ポートを確認(デフォルトは 9050)\n \n4. 必要に応じて Orbot でポートを変更\n \n5. この画面で Socks ポートを設定\n \n6. 「有効化」ボタンを押して Orbot をプロキシとして使用\n \n 1. [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android) をインストール\n \n2. Orbot を起動\n \n3. Orbot で Socks ポートを確認(デフォルトは 9050)\n \n4. 必要に応じて Orbot でポートを変更\n \n5. この画面で Socks ポートを設定\n \n6. 「有効化」ボタンを押して Orbot をプロキシとして使用\n @@ -181,7 +181,6 @@ 送信額 おつり 手数料 - %1$s sats 生の PSBT(hex) PSBT をデコードできませんでした: %1$s 署名アカウント @@ -347,8 +346,8 @@ パスワードは最低 8 文字必要です パスワードが一致しません すべてのアカウントをエクスポート - エクスポートを準備中... - アカウント %1$d / %2$d をエクスポート中... + エクスポートを準備中… + アカウント %1$d / %2$d をエクスポート中… %d 件のアカウントを正常にエクスポートしました エクスポートに失敗しました: %s エクスポートの確認 @@ -392,7 +391,7 @@ 作成 名前 Relay が追加されていません - wss://... + wss://… "名前は空にできません " nsecbunker の準備ができました! アプリでこの URL を使用してください: @@ -429,7 +428,7 @@ デフォルトプロフィール relay プロフィールデータの取得に使用する relay を管理 外部アプリケーションとの通信に使用する relay を管理 - Relay をテスト中... + Relay をテスト中… NOSTR セキュア署名者 戻る Nostr アカウントの準備ができました! @@ -688,7 +687,6 @@ クライアントキーアナウンス アプリケーションバックアップ 有効にすると、Amber は接続されたアプリケーションとその権限の暗号化されたコピーを 1 日 1 回 relay に公開します。これにより新しいデバイスで復元できます。バックアップを復号できるのはあなただけです。 - 暗号化されたアプリケーションバックアップを有効にする 今すぐバックアップ Relay から復元 アプリケーションを復元しますか? diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 20113564..523047e6 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -57,7 +57,7 @@ 클립보드에 복사 아직 승인할 항목이 없습니다 즐겨 사용하는 Nostr 앱을 조금 더 탐색해 보세요. - %1$s 더 보기... + %1$s 더 보기… " 공개 키를 읽고 귀하를 대신하여 이벤트에 서명할 권한을 요청합니다" ## Orbot으로 Tor에 연결하기 @@ -205,7 +205,6 @@ 송금 잔돈 수수료 - %1$s sats Raw PSBT (hex) PSBT를 디코딩할 수 없습니다: %1$s 서명 계정 @@ -371,8 +370,8 @@ 비밀번호는 최소 8자 이상이어야 합니다 비밀번호가 일치하지 않습니다 모든 계정 내보내기 - 내보내기 준비 중... - %2$d개 중 %1$d번째 계정 내보내는 중... + 내보내기 준비 중… + %2$d개 중 %1$d번째 계정 내보내는 중… %d개 계정을 성공적으로 내보냈습니다 내보내기 실패: %s 내보내기 확인 @@ -416,7 +415,7 @@ 만들기 이름 추가된 relay 없음 - wss://... + wss://… "이름을 비워둘 수 없습니다 " nsecbunker가 준비되었습니다! 앱에서 이 URL을 사용하세요: @@ -453,7 +452,7 @@ 기본 프로필 relay 프로필 데이터를 가져오는 데 사용되는 relay를 관리합니다 외부 애플리케이션과 통신하는 데 사용되는 relay를 관리합니다 - relay 테스트 중... + relay 테스트 중… NOSTR 보안 서명자 뒤로 가기 Nostr 계정이 준비되었습니다! @@ -712,7 +711,6 @@ 클라이언트 키 공지 애플리케이션 백업 활성화하면 Amber가 연결된 애플리케이션과 권한의 암호화된 복사본을 하루에 한 번 relay에 게시하여 새 기기에서 복원할 수 있습니다. 본인만 백업을 복호화할 수 있습니다. - 암호화된 애플리케이션 백업 활성화 지금 백업 relay에서 복원 애플리케이션을 복원하시겠습니까? diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index cc1233de..8e79ba7d 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -53,7 +53,7 @@ Copiar para área de transferência Nada para aprovar ainda Por que não explorar um pouco seu aplicativo nostr favorito? - %1$s mais... + %1$s mais… " gostaria de sua permissão para ler sua chave pública e assinar eventos em seu nome" ## Conecte-se através do Tor com o Orbot \n\n1. Instale o [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android) @@ -200,7 +200,6 @@ Enviando Troco Taxa - %1$s sats PSBT bruto (hex) Não foi possível decodificar o PSBT: %1$s Assinando como @@ -366,8 +365,8 @@ A senha deve ter pelo menos 8 caracteres Senhas não são iguais Exportar Todas as Contas - Preparando para exportar... - Exportando conta %1$d de %2$d... + Preparando para exportar… + Exportando conta %1$d de %2$d… Contas %d exportadas com sucesso Falha na exportação: %s Confirmar Exportação @@ -411,7 +410,7 @@ Criar Nome Nenhum relay adicionado - wss://... + wss://… "O nome não pode estar vazio " Seu nsecbunker está pronto! Use esta URL em sua aplicação: @@ -448,7 +447,7 @@ Relays de perfil padrão Gerenciar os relays usados para obter seus dados de perfil Gerenciar os relays usados para comunicação com aplicativos externos - Testando relay... + Testando relay… UM ASSINADOR SEGURO NOSTR Voltar Sua conta Nostr está pronta! @@ -707,7 +706,6 @@ Anúncio de chave do cliente Backup de aplicativos Quando ativado, o Amber publica uma cópia criptografada dos seus aplicativos conectados e suas permissões nos relays uma vez por dia, para que você possa restaurá-los em um novo dispositivo. Somente você pode descriptografar o backup. - Ativar backup criptografado de aplicativos Fazer backup agora Restaurar dos relays Restaurar aplicativos? diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 9d2385b6..dc9baf98 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -57,7 +57,7 @@ Копировать в буфер обмена Пока нечего подтверждать Почему бы немного не изучить ваше любимое Nostr-приложение? - Ещё %1$s... + Ещё %1$s… " Запрашивает разрешение на чтение вашего публичного ключа и подпись событий от вашего имени" ## Подключение через Tor с помощью Orbot @@ -205,7 +205,6 @@ Отправка Сдача Комиссия - %1$s сат Исходный PSBT (hex) Не удалось декодировать PSBT: %1$s Подписывается как @@ -371,8 +370,8 @@ Пароль должен содержать не менее 8 символов Пароли не совпадают Экспортировать все аккаунты - Подготовка экспорта... - Экспорт аккаунта %1$d из %2$d... + Подготовка экспорта… + Экспорт аккаунта %1$d из %2$d… Успешно экспортировано %d аккаунтов Ошибка экспорта: %s Подтвердить экспорт @@ -416,7 +415,7 @@ Создать Имя Relay-серверы не добавлены - wss://... + wss://… "Имя не может быть пустым " Ваш nsecbunker готов! Используйте этот URL в вашем приложении: @@ -453,7 +452,7 @@ Relay-серверы профиля по умолчанию Управление relay-серверами для получения данных профиля Управление relay-серверами для связи с внешними приложениями - Проверка relay-сервера... + Проверка relay-сервера… БЕЗОПАСНЫЙ ПОДПИСЧИК NOSTR Назад Ваш Nostr-аккаунт готов! @@ -712,7 +711,6 @@ Объявление ключа клиента Резервное копирование приложений При включении Amber публикует зашифрованную копию ваших подключённых приложений и их разрешений на relay-серверы раз в день, чтобы вы могли восстановить их на новом устройстве. Расшифровать резервную копию можете только вы. - Включить зашифрованное резервное копирование приложений Создать резервную копию сейчас Восстановить с relay-серверов Восстановить приложения? diff --git a/app/src/main/res/values-th/strings.xml b/app/src/main/res/values-th/strings.xml index ecea3a2c..bd8bf8d5 100644 --- a/app/src/main/res/values-th/strings.xml +++ b/app/src/main/res/values-th/strings.xml @@ -48,7 +48,7 @@ คัดลอกไปยังคลิปบอร์ด ยังไม่มีรายการที่ต้องอนุมัติ ลองสำรวจแอป Nostr ที่คุณชื่นชอบสักหน่อยดีไหม? - %1$s รายการเพิ่มเติม... + %1$s รายการเพิ่มเติม… " ต้องการขออนุญาตอ่านคีย์สาธารณะของคุณและลงนามในเหตุการณ์แทนคุณ" \n ## เชื่อมต่อผ่าน Tor ด้วย Orbot\n \n\n1. ติดตั้ง [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. เริ่มต้น Orbot\n \n3. ใน Orbot ตรวจสอบพอร์ต Socks ค่าเริ่มต้นคือ 9050\n \n4. หากจำเป็น ให้เปลี่ยนพอร์ตใน Orbot\n \n5. กำหนดค่าพอร์ต Socks ในหน้าจอนี้\n \n6. กดปุ่ม เปิดใช้งาน เพื่อใช้ Orbot เป็น proxy\n \n 1. ติดตั้ง [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. เริ่มต้น Orbot\n \n3. ใน Orbot ตรวจสอบพอร์ต Socks ค่าเริ่มต้นคือ 9050\n \n4. หากจำเป็น ให้เปลี่ยนพอร์ตใน Orbot\n \n5. กำหนดค่าพอร์ต Socks ในหน้าจอนี้\n \n6. กดปุ่ม เปิดใช้งาน เพื่อใช้ Orbot เป็น proxy\n @@ -181,7 +181,6 @@ กำลังส่ง ทอน ค่าธรรมเนียม - %1$s sats Raw PSBT (hex) ไม่สามารถถอดรหัส PSBT ได้: %1$s กำลังลงนามในนาม @@ -347,8 +346,8 @@ รหัสผ่านต้องมีอย่างน้อย 8 ตัวอักษร รหัสผ่านไม่ตรงกัน ส่งออกบัญชีทั้งหมด - กำลังเตรียมการส่งออก... - กำลังส่งออกบัญชีที่ %1$d จาก %2$d... + กำลังเตรียมการส่งออก… + กำลังส่งออกบัญชีที่ %1$d จาก %2$d… ส่งออก %d บัญชีสำเร็จ การส่งออกล้มเหลว: %s ยืนยันการส่งออก @@ -392,7 +391,7 @@ สร้าง ชื่อ ยังไม่มี relay ที่เพิ่ม - wss://... + wss://… "ชื่อต้องไม่ว่างเปล่า " nsecbunker ของคุณพร้อมใช้งานแล้ว! ใช้ URL นี้ในแอปของคุณ: @@ -429,7 +428,7 @@ Relay โปรไฟล์เริ่มต้น จัดการ relay ที่ใช้สำหรับดึงข้อมูลโปรไฟล์ของคุณ จัดการ relay ที่ใช้สำหรับการสื่อสารกับแอปพลิเคชันภายนอก - กำลังทดสอบ relay... + กำลังทดสอบ relay… ตัวลงนาม NOSTR ที่ปลอดภัย กลับ บัญชี Nostr ของคุณพร้อมใช้งานแล้ว! @@ -688,7 +687,6 @@ ประกาศคีย์ client สำรองข้อมูลแอปพลิเคชัน เมื่อเปิดใช้งาน Amber จะเผยแพร่สำเนาที่เข้ารหัสของแอปพลิเคชันที่เชื่อมต่อและสิทธิ์ไปยัง relay วันละครั้ง เพื่อให้คุณกู้คืนบนอุปกรณ์ใหม่ได้ มีเพียงคุณเท่านั้นที่สามารถถอดรหัสข้อมูลสำรอง - เปิดใช้งานการสำรองข้อมูลแอปพลิเคชันที่เข้ารหัส สำรองข้อมูลตอนนี้ กู้คืนจาก relay กู้คืนแอปพลิเคชัน? diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index fdc9406f..b7f05531 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -55,7 +55,7 @@ Panoya kopyala Henüz onaylanacak bir şey yok Neden favori Nostr uygulamanızı biraz keşfetmiyorsunuz? - %1$s tane daha... + %1$s tane daha… "Açık anahtarınızı okumak ve sizin adınıza olayları imzalamak için izninizi istiyor" ## Orbot aracılığıyla Tor\'a bağlanın \n\n1. [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\'u yükleyin @@ -201,7 +201,6 @@ Gönderiliyor Para üstü Ücret - %1$s sats Ham PSBT (hex) PSBT çözümlenemedi: %1$s Olarak imzalanıyor: @@ -367,8 +366,8 @@ Şifre en az 8 karakter olmalıdır Şifreler eşleşmiyor Tüm Hesapları Dışa Aktar - Dışa aktarmaya hazırlanıyor... - Hesap dışa aktarılıyor %1$d / %2$d... + Dışa aktarmaya hazırlanıyor… + Hesap dışa aktarılıyor %1$d / %2$d… %d hesap başarıyla dışa aktarıldı Dışa aktarma başarısız: %s Dışa Aktarmayı Onayla @@ -412,7 +411,7 @@ Oluştur İsim Eklenmiş relay yok - wss://... + wss://… "İsim boş olamaz " Nsecbunker\'ınız hazır! Uygulamanızda bu URL\'yi kullanın: @@ -449,7 +448,7 @@ Varsayılan profil relay\'leri Profil verilerinizi getirmek için kullanılan relay\'leri yönetin Harici uygulamalarla iletişim için kullanılan relay\'leri yönetin - Relay test ediliyor... + Relay test ediliyor… BİR NOSTR GÜVENLİ İMZALAYICI Geri git Nostr hesabınız hazır! @@ -708,7 +707,6 @@ İstemci anahtar duyurusu Uygulama yedekleme Etkinleştirildiğinde Amber, bağlı uygulamalarınızın ve izinlerinin şifrelenmiş bir kopyasını günde bir kez relay\'lere yayımlar; böylece bunları yeni bir cihazda geri yükleyebilirsiniz. Yedeği yalnızca siz çözebilirsiniz. - Şifrelenmiş uygulama yedeklemeyi etkinleştir Şimdi yedekle Relay\'lerden geri yükle Uygulamalar geri yüklensin mi? diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index 3f44ce6e..287ef45a 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -48,7 +48,7 @@ Sao chép vào khay nhớ tạm Chưa có gì để phê duyệt Tại sao không khám phá ứng dụng Nostr yêu thích của bạn một chút? - %1$s thêm... + %1$s thêm… " Muốn xin phép đọc khóa công khai của bạn và ký các sự kiện thay mặt bạn" \n ## Kết nối qua Tor với Orbot\n \n\n1. Cài đặt [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. Khởi động Orbot\n \n3. Trong Orbot, kiểm tra cổng Socks. Mặc định sử dụng 9050\n \n4. Nếu cần, thay đổi cổng trong Orbot\n \n5. Cấu hình cổng Socks trên màn hình này\n \n6. Nhấn nút Kích hoạt để sử dụng Orbot làm proxy\n \n 1. Cài đặt [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. Khởi động Orbot\n \n3. Trong Orbot, kiểm tra cổng Socks. Mặc định sử dụng 9050\n \n4. Nếu cần, thay đổi cổng trong Orbot\n \n5. Cấu hình cổng Socks trên màn hình này\n \n6. Nhấn nút Kích hoạt để sử dụng Orbot làm proxy\n @@ -181,7 +181,6 @@ Đang gửi Tiền thừa Phí - %1$s sats PSBT thô (hex) Không thể giải mã PSBT: %1$s Ký với tư cách @@ -347,8 +346,8 @@ Mật khẩu phải có ít nhất 8 ký tự Mật khẩu không khớp Xuất Tất Cả Tài Khoản - Đang chuẩn bị xuất... - Đang xuất tài khoản %1$d trong %2$d... + Đang chuẩn bị xuất… + Đang xuất tài khoản %1$d trong %2$d… Đã xuất thành công %d tài khoản Xuất thất bại: %s Xác Nhận Xuất @@ -392,7 +391,7 @@ Tạo Tên Chưa thêm relay nào - wss://... + wss://… "Tên không được để trống " nsecbunker của bạn đã sẵn sàng! Sử dụng URL này trong ứng dụng của bạn: @@ -429,7 +428,7 @@ Relay hồ sơ mặc định Quản lý các relay dùng để tải dữ liệu hồ sơ của bạn Quản lý các relay dùng để giao tiếp với các ứng dụng bên ngoài - Đang kiểm tra relay... + Đang kiểm tra relay… TRÌNH KÝ NOSTR AN TOÀN Quay lại Tài khoản Nostr của bạn đã sẵn sàng! @@ -688,7 +687,6 @@ Thông báo khóa máy khách Sao lưu ứng dụng Khi được bật, Amber xuất bản bản sao được mã hóa của các ứng dụng đã kết nối và quyền của chúng lên relay mỗi ngày một lần để bạn có thể khôi phục trên thiết bị mới. Chỉ bạn mới có thể giải mã bản sao lưu. - Bật sao lưu ứng dụng được mã hóa Sao lưu ngay Khôi phục từ relay Khôi phục ứng dụng? diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 2ba11ce0..8e443476 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -53,7 +53,7 @@ 复制到剪贴板 暂无批复请求 为什么不去探索一下你喜欢的 Nostr 应用呢? - %1$s 项其他权限... + %1$s 项其他权限… "想要获取权限读取公钥并签署事件" \n ## 通过 Tor 使用 Orbot 连接\n \n\n1. 安装 [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. 启动 Orbot\n \n3. 在 Orbot 中,检查 Socks 端口。默认使用 9050\n \n4. 如有必要,在 Orbot 中更改端口\n \n5. 在此界面中配置 Socks 端口\n \n6. 按下\"激活\"按钮以将 Orbot 用作代理\n \n 1. 安装 [Orbot](https://play.google.com/store/apps/details?id=org.torproject.android)\n \n2. 启动 Orbot\n \n3. 在 Orbot 中,检查 Socks 端口。默认使用 9050\n \n4. 如有必要,在 Orbot 中更改端口\n \n5. 在此界面中配置 Socks 端口\n \n6. 按下\"激活\"按钮以将 Orbot 用作代理\n @@ -186,7 +186,6 @@ 发送 找零 手续费 - %1$s sats 原始 PSBT(十六进制) 无法解码 PSBT:%1$s 签署为 @@ -352,7 +351,7 @@ 密码必须至少八位字符 密码不一致 导出所有账户 - 正在准备导出... + 正在准备导出… 正在导出账户(%1$d/%2$d) 成功导出账户 %d 导出失败:%s @@ -397,7 +396,7 @@ 创建 名称 未添加中继器 - wss://... + wss://… "名称不能为空" nsecBunker 准备就绪! 在应用中使用这个链接: @@ -434,7 +433,7 @@ 默认用户资料中继 管理用于获取个人资料的中继 管理用于外部应用通讯的中继 - 测试中继... + 测试中继… NOSTR 安全签名器 返回 Nostr 账户已准备就绪! @@ -693,7 +692,6 @@ 客户端密钥宣告 应用备份 启用后,Amber 每天将您已连接的应用及其权限的加密副本发布到 relay,以便您在新设备上恢复。只有您才能解密此备份。 - 启用加密应用备份 立即备份 从 relay 恢复 恢复应用? diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f32a764c..b3803101 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -2,7 +2,4 @@ #FF3700B3 #FF000000 - #FFFFFFFF - #FFFFCA62 - #FFB0B0B0 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index abddffec..c3c1883c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,7 +1,8 @@ Amber - Amber Debug - Amber Benchmark + + Amber Debug + Amber Benchmark Account & keys Network @@ -80,7 +81,7 @@ Copy to clipboard Nothing to approve yet Why not explore your favorite nostr app a bit? - %1$s more... + %1$s more… "Would like your permission to read your public key and sign events on your behalf" ## Connect through Tor with Orbot @@ -228,7 +229,6 @@ Sending Change Fee - %1$s sats Raw PSBT (hex) Could not decode PSBT: %1$s Signing as @@ -353,7 +353,7 @@ Enter each word of your seed phrase in order. You can also paste the full phrase using the clipboard button. 12 words 24 words - %1$d of %2$d words entered + %1$d of %2$d words entered Account index Use a different index if this mnemonic was used to create multiple accounts (m/44\'/1237\'/%1$d\'/0/0) Sign policy @@ -394,12 +394,12 @@ Password must be at least 8 characters Passwords do not match Export All Accounts - Preparing export... - Exporting account %1$d of %2$d... - Successfully exported %d accounts + Preparing export… + Exporting account %1$d of %2$d… + Successfully exported %d accounts Export failed: %s Confirm Export - You are about to export %d accounts to an encrypted file. + You are about to export %d accounts to an encrypted file. This file will contain all your private keys. Store it securely! Export Cloud Backup @@ -439,7 +439,7 @@ Create Name No relays added - wss://... + wss://… "Name can't be empty " Your nsecbunker is ready! Use this url in your app: @@ -476,7 +476,7 @@ Default profile relays Manage the relays used to fetch your profile data Manage the relays used for communicating with external applications - Testing relay... + Testing relay… A NOSTR SECURE SIGNER Go back Your Nostr account is ready! @@ -605,7 +605,7 @@ Create a new connection Failed to connect to relay/proxy. Check if you enabled the network permission for Amber Reconnect - %1$d of %2$d connected relays + %1$d of %2$d connected relays Proxy Default Enable kill switch @@ -739,18 +739,17 @@ Client key announcement Applications backup When enabled, Amber publishes an encrypted copy of your connected applications and their permissions to relays once a day so you can restore them on a new device. Only you can decrypt the backup. - Enable encrypted applications backup Backup now Restore from relays Restore applications? Permissions for applications that already exist on this device will be replaced with the backed-up permissions. New applications from the backup will be added. Continue? Backup published Failed to publish backup - Restored %1$d applications and %2$d permissions + Restored %1$d applications and %2$d permissions Restore failed: %1$s No backup found on relays Restore backup? - Found an encrypted applications backup with %1$d applications and %2$d permissions. Restore now? + Found an encrypted applications backup with %1$d applications and %2$d permissions. Restore now? Restore Skip Public web bookmark diff --git a/app/src/main/res/xml/network_security_config.xml b/app/src/main/res/xml/network_security_config.xml index 2439f15c..7f5715bd 100644 --- a/app/src/main/res/xml/network_security_config.xml +++ b/app/src/main/res/xml/network_security_config.xml @@ -1,4 +1,7 @@ - - + + + diff --git a/git-hooks/pre-commit b/git-hooks/pre-commit index c913761b..9382298a 100644 --- a/git-hooks/pre-commit +++ b/git-hooks/pre-commit @@ -4,10 +4,10 @@ GREEN='\033[0;32m' NO_COLOR='\033[0m' echo "*********************************************************" -echo "Running git pre-commit hook. Running Static analysis... " +echo "Running git pre-commit hook. Running Static analysis and Android Lint... " echo "*********************************************************" -./gradlew ktlintCheck +./gradlew ktlintCheck lint status=$? @@ -18,6 +18,7 @@ else echo "*********************************************************" echo 1>&2 "Static analysis found violations it could not fix." printf "Run ${GREEN}./gradlew ktlintFormat${NO_COLOR} to fix formatting related issues...\n" + printf "Run ${GREEN}./gradlew lint${NO_COLOR} and open the report to see Android Lint issues...\n" echo "*********************************************************" exit 1 fi diff --git a/git-hooks/pre-push b/git-hooks/pre-push index 19c523c3..433c9241 100644 --- a/git-hooks/pre-push +++ b/git-hooks/pre-push @@ -4,20 +4,21 @@ GREEN='\033[0;32m' NO_COLOR='\033[0m' echo "*********************************************************" -echo "Running git pre-push hook. Running test... " +echo "Running git pre-push hook. Running tests and Android Lint... " echo "*********************************************************" -./gradlew test +./gradlew test lint status=$? if [ "$status" = 0 ] ; then - echo "All test passed." + echo "All tests and lint checks passed." exit 0 else echo "*********************************************************" - echo 1>&2 "Failing test" + echo 1>&2 "Failing tests or lint checks" printf "Run ${GREEN}./gradlew test${NO_COLOR} to make sure you have all tests green before pushing...\n" + printf "Run ${GREEN}./gradlew lint${NO_COLOR} and open the report to see Android Lint issues...\n" echo "*********************************************************" exit 1 fi