diff --git a/CHANGELOG.md b/CHANGELOG.md index fbfd942b..93a9be0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this application adheres to [Semantic Versioning](https://semver.org/spec/v2 ### Added - The device authentication feature on the Zashi app launch has been added +- Zashi app now supports Spanish language - The Flexa SDK has been adopted to enable payments using the embedded Flexa UI ### Fixed diff --git a/build-conventions-secant/src/main/kotlin/publish/secant.publish-conventions.gradle.kts b/build-conventions-secant/src/main/kotlin/publish/secant.publish-conventions.gradle.kts index 48758dad..d404e121 100644 --- a/build-conventions-secant/src/main/kotlin/publish/secant.publish-conventions.gradle.kts +++ b/build-conventions-secant/src/main/kotlin/publish/secant.publish-conventions.gradle.kts @@ -30,7 +30,6 @@ import java.io.FileInputStream import java.io.IOException import java.security.GeneralSecurityException import java.security.KeyStore -import java.util.Locale @CacheableTask abstract class PublishToGooglePlay @Inject constructor( @@ -241,15 +240,9 @@ abstract class PublishToGooglePlay @Inject constructor( // In-app update priority of the release. Can take values in the range [0, 5], with 5 the highest priority. val inAppUpdatePriority = project.property("ZCASH_IN_APP_UPDATE_PRIORITY").toString().toInt() - // A description of what is new in this release in form of [LocalizedText] - val localizedText = LocalizedText().apply { - language = Locale.ENGLISH.toLanguageTag() - text = ChangelogParser.getChangelogEntry( - filePath = "docs/whatsNew/WHATS_NEW_EN.md", - versionNameFallback = gradleVersionName - ).toInAppUpdateReleaseNotesText() - } - val releaseNotes: MutableList = arrayListOf(localizedText) + val releaseNotes: List = getReleaseNotesFor( + gradleVersionName, listOf("EN", "ES") + ) log("Publish - Version: $versionName has been uploaded") @@ -283,6 +276,24 @@ abstract class PublishToGooglePlay @Inject constructor( log("App edit with id ${appEdit.id} has been committed") } + private val releaseNotesFilePath = "docs/whatsNew/WHATS_NEW_" + private val releaseNotesFileSuffix = ".md" + + private fun getReleaseNotesFor(gradleVersionName: String, languageTags: List): MutableList { + return buildList { + languageTags.forEach { languageTag -> + // A description of what is new in this release in form of [LocalizedText] + add(LocalizedText().apply { + language = languageTag + text = ChangelogParser.getChangelogEntry( + filePath = releaseNotesFilePath + languageTag + releaseNotesFileSuffix, + versionNameFallback = gradleVersionName + ).toInAppUpdateReleaseNotesText() + }) + } + }.toMutableList() + } + @TaskAction fun runTask() { log("Publish starting for track: $track and status: $status") diff --git a/build-conventions-secant/src/main/kotlin/secant.android-build-conventions.gradle.kts b/build-conventions-secant/src/main/kotlin/secant.android-build-conventions.gradle.kts index cd2513ef..c0477988 100644 --- a/build-conventions-secant/src/main/kotlin/secant.android-build-conventions.gradle.kts +++ b/build-conventions-secant/src/main/kotlin/secant.android-build-conventions.gradle.kts @@ -14,7 +14,7 @@ pluginManager.withPlugin("com.android.application") { // The rest of the locales provides an explicit list of the languages to keep in the // final app. Doing this will strip out additional locales from libraries like // Google Play Services and Firebase, which add unnecessary bloat. - resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "en_XA", "ar_XB")) + resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "es", "en_XA", "ar_XB")) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" @@ -39,7 +39,7 @@ pluginManager.withPlugin("com.android.library") { // If we add other localizations, they should be included in this list. // By explicitly setting supported locales, we strip out unused localizations from third party // libraries (e.g. play services) - resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "en_XA", "ar_XB")) + resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "es", "en_XA", "ar_XB")) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("proguard-consumer.txt") @@ -68,7 +68,7 @@ pluginManager.withPlugin("com.android.test") { // If we add other localizations, they should be included in this list. // By explicitly setting supported locales, we strip out unused localizations from third party // libraries (e.g. play services) - resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "en_XA", "ar_XB")) + resourceConfigurations.addAll(listOf("en", "en-rUS", "en-rGB", "en-rAU", "es", "en_XA", "ar_XB")) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/build-info-lib/build.gradle.kts b/build-info-lib/build.gradle.kts index ee8f646e..64fb0d84 100644 --- a/build-info-lib/build.gradle.kts +++ b/build-info-lib/build.gradle.kts @@ -1,7 +1,8 @@ import co.electriccoin.zcash.Git import publish.ChangelogParser import java.text.SimpleDateFormat -import java.util.* +import java.util.Date +import java.util.TimeZone plugins { kotlin("multiplatform") @@ -9,6 +10,14 @@ plugins { id("secant.dependency-conventions") } +private val gitShaKey = "gitSha" +private val gitCommitCountKey = "gitCommitCount" +private val releaseNotesEn = "releaseNotesEn" +private val releaseNotesEs = "releaseNotesEs" + +private val releaseNotesEnPath = "docs/whatsNew/WHATS_NEW_EN.md" +private val releaseNotesEsPath = "docs/whatsNew/WHATS_NEW_ES.md" + // Injects build information // Note timestamp is not currently injected because it effectively disables the cache since it // changes with every build @@ -20,20 +29,14 @@ val generateBuildConfigTask = tasks.create("buildConfig") { parent!!.projectDir ) + inputs.property(gitShaKey, gitInfo.sha) + inputs.property(gitCommitCountKey, gitInfo.commitCount) + //val buildTimestamp = newIso8601Timestamp() - - val gradleVersionName = project.property("ZCASH_VERSION_NAME").toString() - - val releaseNotesJson = ChangelogParser.getChangelogEntry( - filePath = "docs/whatsNew/WHATS_NEW_EN.md", - versionNameFallback = gradleVersionName - ).toJsonString() - - inputs.property("gitSha", gitInfo.sha) - inputs.property("gitCommitCount", gitInfo.commitCount) //inputs.property("buildTimestamp", buildTimestamp) - inputs.property("releaseNotesEn", releaseNotesJson) + // Add release notes for all supported languages + fillInReleaseNotes(inputs) outputs.dir(generatedDir) @@ -50,9 +53,10 @@ val generateBuildConfigTask = tasks.create("buildConfig") { // Generated file package co.electriccoin.zcash.build -const val gitSha: String = "${gitInfo.sha}" -const val gitCommitCount: Int = ${gitInfo.commitCount} -const val releaseNotesEn: String = "$releaseNotesJson" +const val gitSha: String = "${inputs.properties[gitShaKey]}" +const val gitCommitCount: Int = ${inputs.properties[gitCommitCountKey]} +const val releaseNotesEn: String = "${inputs.properties[releaseNotesEn]}" +const val releaseNotesEs: String = "${inputs.properties[releaseNotesEs]}" """.trimIndent() ) } @@ -93,3 +97,21 @@ fun newIso8601Timestamp(): String { } return formatter.format(Date()) } + +fun fillInReleaseNotes(inputs: TaskInputs) { + val gradleVersionName = project.property("ZCASH_VERSION_NAME").toString() + + val releaseNotesEnJson = ChangelogParser.getChangelogEntry( + filePath = releaseNotesEnPath, + versionNameFallback = gradleVersionName + ).toJsonString() + + inputs.property(releaseNotesEn, releaseNotesEnJson) + + val releaseNotesEsJson = ChangelogParser.getChangelogEntry( + filePath = releaseNotesEsPath, + versionNameFallback = gradleVersionName + ).toJsonString() + + inputs.property(releaseNotesEs, releaseNotesEsJson) +} diff --git a/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_EN.md b/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_EN.md new file mode 100644 index 00000000..1c760d24 --- /dev/null +++ b/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_EN.md @@ -0,0 +1,27 @@ +# Google Play Store Listing: English +This file covers all the store listing texts for Zashi's presence in the Google Play Store. + +*Note: Only the texts under the titles are meant to be translated. + +## Store presence + +### App name + +Zashi: Zcash Wallet + +### Short description + +Zashi is a Zcash wallet that keeps your transaction and message history private. + +### Full description + +Zashi is a Zcash wallet that keeps your transaction and message history private. + +Built and maintained by Electric Coin Co. (ECC), the inventor of Zcash, Zashi is the easiest way to use $ZEC. + +Why use the Zashi Zcash wallet? +* You can send and receive ZEC and private memos. (Zashi your mom! Zashi your barista!) +* It’s reliable and fast, and it includes the ability to Spend before Sync. (Funds are available before sync completes.) +* The UI is fully updated — simple and clean. +* It supports Sapling and Orchard pools, plus Unified Addresses, a single address type that works across all Zcash pools, transparent and shielded. +* It has built-in mechanisms for user support and developer feedback. diff --git a/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_ES.md b/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_ES.md new file mode 100644 index 00000000..522d2ce6 --- /dev/null +++ b/docs/GooglePlayStoreListing/GOOGLE_PLAY_STORE_LISTING_ES.md @@ -0,0 +1,29 @@ +# Google Play Store Listing: Spanish +This file covers all the store listing texts for Zashi's presence in the Google Play Store. + +*Note: Only the texts under the titles are meant to be translated. + +## Store presence + +### App name + +Zashi: Billetera de Zcash + +### Short description + +Zashi es una billetera de Zcash que mantiene privado el historial de tus transacciones y mensajes. + +### Full description + +Zashi es una billetera de Zcash que mantiene privado el historial de tus transacciones y mensajes. + +Creada y gestionada por Electric Coin Co. (ECC), los creadores de Zcash, Zashi es la manera más sencilla de usar $ZEC. + +¿Por qué usar la billetera Zashi de Zcash? +* Puedes enviar y recibir ZEC y mensajes privados. (¡Envía Zashi a tu mamá! ¡Envía Zashi a tu barista!) +* Es confiable y rápida, e incluye la función "Gastar antes de Sincronizar" (los fondos están disponibles antes de + que se complete la sincronización). +* La interfaz está completamente actualizada: simple y clara. +* Soporta los pools Sapling y Orchard, además de Direcciones Unificadas, un tipo de dirección única que funciona en + todos los pools de Zcash, tanto transparentes como protegidos. +* Cuenta con funciones integradas para soporte al usuario y feedback de desarrolladores. \ No newline at end of file diff --git a/docs/whatsNew/WHATS_NEW_EN.md b/docs/whatsNew/WHATS_NEW_EN.md index f6b43e8b..74ced6e6 100644 --- a/docs/whatsNew/WHATS_NEW_EN.md +++ b/docs/whatsNew/WHATS_NEW_EN.md @@ -11,6 +11,7 @@ directly impact users rather than highlighting other key architectural updates.* ### Added - The device authentication feature on the Zashi app launch has been added +- Zashi app now supports Spanish language - The Flexa SDK has been adopted to enable payments using the embedded Flexa UI ### Fixed diff --git a/docs/whatsNew/WHATS_NEW_ES.md b/docs/whatsNew/WHATS_NEW_ES.md new file mode 100644 index 00000000..0b5d296c --- /dev/null +++ b/docs/whatsNew/WHATS_NEW_ES.md @@ -0,0 +1,20 @@ +# Changelog +All notable changes to this application will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this application adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +**Please be aware that this changelog primarily focuses on user-related modifications, emphasizing changes that can +directly impact users rather than highlighting other key architectural updates.** + +## [Unreleased] + +### Added +- The device authentication feature on the Zashi app launch has been added +- Zashi app now supports Spanish language +- The Flexa SDK has been adopted to enable payments using the embedded Flexa UI + +### Fixed +- Address book toast now correctly shows on send screen when adding both new and known addresses to text field +- The application now correctly navigates to the homepage after deleting the current wallet and creating a new or + recovering an older one diff --git a/ui-design-lib/src/main/res/ui/common/values-es/strings.xml b/ui-design-lib/src/main/res/ui/common/values-es/strings.xml new file mode 100644 index 00000000..87c4b76c --- /dev/null +++ b/ui-design-lib/src/main/res/ui/common/values-es/strings.xml @@ -0,0 +1,6 @@ + + %1$s%2$s + ----- + Atrás + + diff --git a/ui-lib/build.gradle.kts b/ui-lib/build.gradle.kts index 153a27ad..4f8494a7 100644 --- a/ui-lib/build.gradle.kts +++ b/ui-lib/build.gradle.kts @@ -30,6 +30,10 @@ android { getByName("main").apply { res.setSrcDirs( setOf( + // This is a special case as these texts are not translated, they are replaced in build time via + // app/build.gradle.kts instead + "src/main/res/ui/non_translatable", + "src/main/res/ui/about", "src/main/res/ui/account", "src/main/res/ui/address_book", diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/VersionInfo.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/VersionInfo.kt index f5bc7f82..accba927 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/VersionInfo.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/VersionInfo.kt @@ -2,9 +2,11 @@ package co.electriccoin.zcash.ui.common.model import android.content.Context import android.content.pm.ApplicationInfo +import cash.z.ecc.android.sdk.model.Locale import co.electriccoin.zcash.build.gitCommitCount import co.electriccoin.zcash.build.gitSha import co.electriccoin.zcash.build.releaseNotesEn +import co.electriccoin.zcash.build.releaseNotesEs import co.electriccoin.zcash.spackle.EmulatorWtfUtil import co.electriccoin.zcash.spackle.FirebaseTestLabUtil import co.electriccoin.zcash.spackle.getPackageInfoCompat @@ -38,8 +40,16 @@ data class VersionInfo( isTestnet = context.resources.getBoolean(cash.z.ecc.sdk.ext.R.bool.zcash_is_testnet), gitSha = gitSha, gitCommitCount = gitCommitCount.toLong(), - changelog = Changelog.new(json = releaseNotesEn) + changelog = Changelog.new(json = resolveBestReleaseNotes()) ) } + + private fun resolveBestReleaseNotes(): String { + return if (Locale.getDefault().language.contains("es", ignoreCase = true)) { + releaseNotesEs + } else { + releaseNotesEn + } + } } } diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/account/view/HistoryView.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/account/view/HistoryView.kt index 91af9984..9c966511 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/account/view/HistoryView.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/account/view/HistoryView.kt @@ -615,7 +615,7 @@ private fun HistoryItemExpandedAddressPart( Spacer(modifier = Modifier.height(16.dp)) - Row { + Row(verticalAlignment = Alignment.CenterVertically) { TextWithIcon( text = stringResource(id = R.string.account_history_item_tap_to_copy), style = ZashiTypography.textSm, @@ -633,6 +633,8 @@ private fun HistoryItemExpandedAddressPart( ) { onAction(TrxItemAction.AddressClick(recipient)) } ) + Spacer(modifier = Modifier.width(ZashiDimensions.Spacing.spacingSm)) + if (contact == null) { TextWithIcon( text = stringResource(id = R.string.account_history_item_save_address), diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/exchangerate/BaseExchangeRateOptIn.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/exchangerate/BaseExchangeRateOptIn.kt index 7bb38f75..4b71aed3 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/exchangerate/BaseExchangeRateOptIn.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/exchangerate/BaseExchangeRateOptIn.kt @@ -71,7 +71,7 @@ internal fun BaseExchangeRateOptIn( Image(painter = painterResource(R.drawable.exchange_rate), contentDescription = "") Spacer(modifier = Modifier.height(16.dp)) Text( - text = "Currency Conversion", + text = stringResource(id = R.string.exchange_rate_opt_in_subtitle), color = ZashiColors.Text.textPrimary, style = ZashiTypography.header6, fontWeight = FontWeight.SemiBold diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/integrations/viewmodel/IntegrationsViewModel.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/integrations/viewmodel/IntegrationsViewModel.kt index ebbd5f50..5c5afef8 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/integrations/viewmodel/IntegrationsViewModel.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/integrations/viewmodel/IntegrationsViewModel.kt @@ -155,7 +155,7 @@ class IntegrationsViewModel( viewModelScope.launch { runCatching { biometricRepository.requestBiometrics( - BiometricRequest(message = stringRes(R.string.integrations_biometric_message)) + BiometricRequest(message = stringRes(R.string.integrations_flexa_biometric_message)) ) Twig.debug { "Getting send transaction proposal" } getSynchronizer() diff --git a/ui-lib/src/main/res/ui/about/values-es/strings.xml b/ui-lib/src/main/res/ui/about/values-es/strings.xml new file mode 100644 index 00000000..837b157d --- /dev/null +++ b/ui-lib/src/main/res/ui/about/values-es/strings.xml @@ -0,0 +1,14 @@ + + Acerca de + Versión de Zashi %s + Nombre de la app:%1$s + Compilación: %1$s + ¡Envía y recibe ZEC en Zashi!\nZashi es una billetera de diseño minimalista y autogestionada, exclusivamente para ZEC, que mantiene tu historial de transacciones y saldo de la billetera privados. Construida por Zcashers, para Zcashers. Desarrollada y mantenida por Electric Coin Co., el inventor de Zcash, Zashi cuenta con un mecanismo de retroalimentación integrado para habilitar más funciones, más rápidamente. + + Consulta nuestra Política de Privacidad\u0020 + aquí + . + No se pudo encontrar una aplicación de navegador web. + Novedades + Política de Privacidad + diff --git a/ui-lib/src/main/res/ui/about/values/strings.xml b/ui-lib/src/main/res/ui/about/values/strings.xml index 64c14330..41c88f94 100644 --- a/ui-lib/src/main/res/ui/about/values/strings.xml +++ b/ui-lib/src/main/res/ui/about/values/strings.xml @@ -11,4 +11,4 @@ Unable to find a web browser app. What\'s new Privacy Policy - + \ No newline at end of file diff --git a/ui-lib/src/main/res/ui/account/values-es/strings.xml b/ui-lib/src/main/res/ui/account/values-es/strings.xml new file mode 100644 index 00000000..a411f765 --- /dev/null +++ b/ui-lib/src/main/res/ui/account/values-es/strings.xml @@ -0,0 +1,29 @@ + + + Sin historial de transacciones + + Enviado + Recibido + Enviando… + Recibiendo… + Error al recibir + Error al enviar + Transacción protegida + - + + + Toca para copiar + Guardar dirección + + Mensaje + Mensajes + Mensajes + + Colapsar transacción + ID de transacción + Tarifa de transacción + Tarifa típica < %1$s + + Mensaje de transacción + ID de transacción + Dirección de transacción + diff --git a/ui-lib/src/main/res/ui/account/values/strings.xml b/ui-lib/src/main/res/ui/account/values/strings.xml index f227c907..254a83ea 100644 --- a/ui-lib/src/main/res/ui/account/values/strings.xml +++ b/ui-lib/src/main/res/ui/account/values/strings.xml @@ -13,7 +13,7 @@ + Tap to copy Save address -n + Message Messages diff --git a/ui-lib/src/main/res/ui/add_contact/values-es/strings.xml b/ui-lib/src/main/res/ui/add_contact/values-es/strings.xml new file mode 100644 index 00000000..86817a89 --- /dev/null +++ b/ui-lib/src/main/res/ui/add_contact/values-es/strings.xml @@ -0,0 +1,4 @@ + + Agregar nuevo contacto + Guardar + diff --git a/ui-lib/src/main/res/ui/address_book/values-es/strings.xml b/ui-lib/src/main/res/ui/address_book/values-es/strings.xml new file mode 100644 index 00000000..1e2fd324 --- /dev/null +++ b/ui-lib/src/main/res/ui/address_book/values-es/strings.xml @@ -0,0 +1,8 @@ + + Libreta de direcciones + Agregar nuevo contacto + Tu libreta de direcciones está vacía + Versión %s + Escanear código QR + Entrada manual + diff --git a/ui-lib/src/main/res/ui/advanced_settings/values-es/strings.xml b/ui-lib/src/main/res/ui/advanced_settings/values-es/strings.xml new file mode 100644 index 00000000..93e7d8e5 --- /dev/null +++ b/ui-lib/src/main/res/ui/advanced_settings/values-es/strings.xml @@ -0,0 +1,9 @@ + + Configuración avanzada + Frase de recuperación + Exportar datos privados + Elegir un servidor + Conversión de moneda + Se te pedirá confirmación en la siguiente pantalla + Eliminar Zashi + diff --git a/ui-lib/src/main/res/ui/authentication/values-es/strings.xml b/ui-lib/src/main/res/ui/authentication/values-es/strings.xml new file mode 100644 index 00000000..593226b3 --- /dev/null +++ b/ui-lib/src/main/res/ui/authentication/values-es/strings.xml @@ -0,0 +1,36 @@ + + + + Autenticación para %1$s + + + Usa credenciales biométricas o del dispositivo para acceder a %1$s. + + + Función Eliminar Cartera + Función Exportar Datos Privados + Función Recuperación de Semilla + Función Enviar Fondos + + Autenticación cancelada + Autenticación fallida + + Error de autenticación + La autenticación falló por la siguiente razón. Reintenta la autenticación o contacta al equipo de soporte para obtener ayuda. + + Código de error: %1$d\nMensaje de error: %2$s + + Reintentar + Contactar Soporte + + Autenticación fallida + + La autenticación fue presentada pero no fue reconocida. Reintenta la autenticación o contacta al equipo de soporte para obtener ayuda. + + Reintentar + Contactar Soporte + + Toca para desbloquear la app %1$s + Tu cuenta de Zashi está segura. + Toca el ícono de la llave para desbloquearla. + diff --git a/ui-lib/src/main/res/ui/balances/values-es/strings.xml b/ui-lib/src/main/res/ui/balances/values-es/strings.xml new file mode 100644 index 00000000..19187761 --- /dev/null +++ b/ui-lib/src/main/res/ui/balances/values-es/strings.xml @@ -0,0 +1,53 @@ + + Saldos + ZEC protegidos (disponibles) + Cambio pendiente + Transacciones pendientes + Saldo transparente + + %1$s utiliza la última actualización de la red y no + admite el envío de %2$s transparentes (no protegidos). Usa el botón de Proteger y Consolidar para proteger tus fondos, lo cual se sumará a tu saldo disponible y hará que tus %2$s sean gastables. + ¡Entendido! + Mostrar ayuda + Proteger y consolidar fondos + (Tarifa típica < %1$s) + + Sincronizando… + %1$s hasta ahora + %1$s%% + Sincronizado + Por favor, actualiza %1$s usando Google Play + %1$s encontró un error al sincronizar, intentando resolver… + El proceso de restauración puede tomar varias horas en dispositivos de baja potencia, e incluso en dispositivos potentes es probable que tome más de una hora. + + La protección ha sido enviada con éxito + + Error + + Desconectado. Por favor, revisa tu conexión a internet. + + Error: + %1$s\n\nRastro de error: + %2$s + + + Causa desconocida. Por favor contacta a nuestro equipo de soporte si el problema persiste. + + Rastro de error desconocido. + La sincronización está detenida. Se reanudará pronto. + OK + Reportar + + Transacción Fallida + El intento de proteger los fondos transparentes falló. Inténtalo de nuevo, por favor. + OK + Reportar + El saldo transparente actual es cero o está por debajo del límite permitido para proteger. + + Error de conexión + Zashi encontró algunos problemas de conexión al enviar la transacción protegida a la red. Lo intentará de nuevo en los próximos minutos. + OK + + diff --git a/ui-lib/src/main/res/ui/choose_server/values-es/strings.xml b/ui-lib/src/main/res/ui/choose_server/values-es/strings.xml new file mode 100644 index 00000000..ef1661ff --- /dev/null +++ b/ui-lib/src/main/res/ui/choose_server/values-es/strings.xml @@ -0,0 +1,35 @@ + + Servidor + predeterminado: %1$s + personalizado + : + + %1$s: + %2$d + + + %1$s:%2$d + + <nombre del host>:<puerto> + Guardar selección + + Punto final del servidor no válido + Error: El intento de cambiar el punto final falló. + Verifique que el nombre del host y el puerto sean correctos, y estén formateados como <nombre del host>:<puerto>. + OK + + Servidor guardado + El punto final del servidor seleccionado se ha + guardado correctamente. + OK + Predeterminado + + Realizando prueba de servidor + Esto puede tardar un momento… + + Servidores más rápidos + Otros servidores + Actualizar + Activo + Predeterminado + diff --git a/ui-lib/src/main/res/ui/common/values-es/strings.xml b/ui-lib/src/main/res/ui/common/values-es/strings.xml new file mode 100644 index 00000000..029dc521 --- /dev/null +++ b/ui-lib/src/main/res/ui/common/values-es/strings.xml @@ -0,0 +1,25 @@ + + Atrás + Atrás + + No disponible + - + Logotipo de Zcash + Abrir Configuración + Saldo Disponible: + + Ocultar saldos + + No se pudo iniciar la aplicación de correo electrónico. + + [Restaurando tu billetera…] + [Desconectado…] + No se pudo iniciar la aplicación de Google Play Store… + + Aviso + Tu servidor actual está experimentando dificultades. Verifica la conexión de tu dispositivo y/o navega a Configuración Avanzada para elegir un servidor diferente. + Cambiar Servidor + Ignorar + + + diff --git a/ui-lib/src/main/res/ui/common/values/strings.xml b/ui-lib/src/main/res/ui/common/values/strings.xml index d70256c5..cea380ba 100644 --- a/ui-lib/src/main/res/ui/common/values/strings.xml +++ b/ui-lib/src/main/res/ui/common/values/strings.xml @@ -1,7 +1,4 @@ - - zashi-ui - Back Back @@ -13,13 +10,11 @@ Hide balances - - Unable to launch email app. [Restoring Your Wallet…] [Disconnected…] - Unable to launch Google Play store app… + Unable to launch Google Play Store app… Heads up Your current server is experiencing difficulties. Check your diff --git a/ui-lib/src/main/res/ui/contact/values-es/strings.xml b/ui-lib/src/main/res/ui/contact/values-es/strings.xml new file mode 100644 index 00000000..f836cf8b --- /dev/null +++ b/ui-lib/src/main/res/ui/contact/values-es/strings.xml @@ -0,0 +1,11 @@ + + Nombre de contacto + Ingrese el nombre del contacto… + Dirección de billetera + Ingrese la dirección de la billetera… + + Este nombre de contacto ya está en uso. Por favor, elija un nombre diferente. + Este nombre de contacto supera el límite de 32 caracteres. Por favor, acorte el nombre. + Esta dirección de billetera ya está en su libreta de direcciones. + Dirección inválida + diff --git a/ui-lib/src/main/res/ui/delete_wallet/values-es/strings.xml b/ui-lib/src/main/res/ui/delete_wallet/values-es/strings.xml new file mode 100644 index 00000000..22972bb6 --- /dev/null +++ b/ui-lib/src/main/res/ui/delete_wallet/values-es/strings.xml @@ -0,0 +1,23 @@ + + + Eliminar %1$s + + + + Por favor, no elimine esta aplicación a menos que esté seguro de comprender los efectos. + + + Eliminar la aplicación %1$s eliminará la base de datos y los datos + almacenados en caché. Cualquier fondo que tenga en esta billetera se perderá y solo podrá recuperarse utilizando su frase de + recuperación secreta de %1$s en %1$s u otra billetera Zcash. + + + Entiendo + + + Eliminar %1$s + + + La eliminación de la billetera falló. Inténtelo de nuevo, por favor. + diff --git a/ui-lib/src/main/res/ui/exchange_rate/values-es/strings.xml b/ui-lib/src/main/res/ui/exchange_rate/values-es/strings.xml new file mode 100644 index 00000000..b69b6e6c --- /dev/null +++ b/ui-lib/src/main/res/ui/exchange_rate/values-es/strings.xml @@ -0,0 +1,25 @@ + + Protección de dirección IP + La función de conversión de moneda de Zashi no compromete su dirección IP. + Actualización de tasas + La tasa se actualiza automáticamente y también se puede actualizar manualmente. + + Tasa de cambio no disponible + Lo intentamos, pero no pudimos actualizar la tasa de cambio para usted. Verifique su conexión, reinicie la aplicación e intentaremos de nuevo. + Nueva Función + Conversión de Moneda + Revisar + + Habilitar + Guardar cambios + Omitir por ahora + Nota para los más conscientes de la privacidad: Debido a que obtenemos la tasa de conversión de los intercambios, un intercambio podría ver que la tasa de cambio fue consultada antes de que ocurriera una transacción. + + Habilitar + Mostrar la conversión de moneda. + Deshabilitar + No mostrar la conversión de moneda. + Muestra tu saldo y los montos de pago en USD.\nPuedes gestionar esta función en Configuración Avanzada. + Muestra tu saldo y los montos de pago en USD.\nLa función de conversión de moneda de Zashi protege tu dirección IP en todo momento. + + diff --git a/ui-lib/src/main/res/ui/export_data/values-es/strings.xml b/ui-lib/src/main/res/ui/export_data/values-es/strings.xml new file mode 100644 index 00000000..e2fcb083 --- /dev/null +++ b/ui-lib/src/main/res/ui/export_data/values-es/strings.xml @@ -0,0 +1,9 @@ + + Consentimiento para Exportar Datos Privados + Al hacer clic en \"Estoy de acuerdo\" a continuación, das tu consentimiento para exportar los datos privados de Zashi, lo cual incluye todo el historial de la billetera, toda la información privada, los memos, los montos y las direcciones de los destinatarios, incluso para tu actividad protegida.*\n\nEstos datos privados también permiten ver ciertas acciones futuras que realices con Zashi.\n\nCompartir estos datos privados es irrevocable: una vez que hayas compartido estos datos privados con alguien, no hay forma de revocar su acceso. + *Ten en cuenta que estos datos privados no les dan la capacidad de gastar tus fondos, solo la capacidad de ver lo que haces con tus fondos. + Exportar datos privados + Estoy de acuerdo + Compartir datos internos de Zashi con: + No se pudo encontrar una aplicación con la cual compartir. + diff --git a/ui-lib/src/main/res/ui/home/values-es/strings.xml b/ui-lib/src/main/res/ui/home/values-es/strings.xml new file mode 100644 index 00000000..1af324f1 --- /dev/null +++ b/ui-lib/src/main/res/ui/home/values-es/strings.xml @@ -0,0 +1,6 @@ + + Cuenta + Enviar + Recibir + Saldos + diff --git a/ui-lib/src/main/res/ui/integrations/values-es/strings.xml b/ui-lib/src/main/res/ui/integrations/values-es/strings.xml new file mode 100644 index 00000000..195f6d76 --- /dev/null +++ b/ui-lib/src/main/res/ui/integrations/values-es/strings.xml @@ -0,0 +1,11 @@ + + Integraciones + Compra %1$s con Coinbase + Una forma sencilla de comprar %1$s y recibirlo directamente en tu billetera Zashi. + Versión %1$s + Durante el proceso de restauración, no es posible utilizar integraciones de pago. + Paga con Flexa + Paga con clips de pago de Flexa y explora una nueva forma de gastar Zcash. + Autentifícate para pagar con Flexa + Clave de Flexa faltante + diff --git a/ui-lib/src/main/res/ui/integrations/values/strings.xml b/ui-lib/src/main/res/ui/integrations/values/strings.xml index 247d44f6..b0d30d6e 100644 --- a/ui-lib/src/main/res/ui/integrations/values/strings.xml +++ b/ui-lib/src/main/res/ui/integrations/values/strings.xml @@ -2,10 +2,10 @@ Integrations Buy %1$s with Coinbase A hassle-free way to buy %1$s and get it directly into your Zashi wallet. - Pay with Flexa - Pay with Flexa payment clips and explore a new way of spending Zcash. Version %1$s During the Restore process, it is not possible to use payment integrations. - Authenticate yourself to pay with Flexa + Pay with Flexa + Pay with Flexa payment clips and explore a new way of spending Zcash. + Authenticate yourself to pay with Flexa Flexa key missing diff --git a/ui-lib/src/main/res/ui/new_wallet_recovery/values-es/strings.xml b/ui-lib/src/main/res/ui/new_wallet_recovery/values-es/strings.xml new file mode 100644 index 00000000..2bb01750 --- /dev/null +++ b/ui-lib/src/main/res/ui/new_wallet_recovery/values-es/strings.xml @@ -0,0 +1,9 @@ + + Tu frase secreta de recuperación + Las siguientes 24 palabras son la clave para tus fondos y constituyen la única forma de recuperarlos si pierdes el acceso o adquieres un nuevo dispositivo. ¡Protege tu ZEC almacenando esta frase en un lugar de confianza y nunca la compartas con nadie! + Altura de cumpleaños de la billetera: %1$d + Ya la he guardado + Toca para copiar + Frase de Semilla de Zcash + Cumpleaños de la Billetera Zcash + diff --git a/ui-lib/src/main/res/ui/non_translatable/values/strings.xml b/ui-lib/src/main/res/ui/non_translatable/values/strings.xml new file mode 100644 index 00000000..aa5b35c4 --- /dev/null +++ b/ui-lib/src/main/res/ui/non_translatable/values/strings.xml @@ -0,0 +1,6 @@ + + + + zashi-ui + + \ No newline at end of file diff --git a/ui-lib/src/main/res/ui/onboarding/values-es/strings.xml b/ui-lib/src/main/res/ui/onboarding/values-es/strings.xml new file mode 100644 index 00000000..aedc16a8 --- /dev/null +++ b/ui-lib/src/main/res/ui/onboarding/values-es/strings.xml @@ -0,0 +1,6 @@ + + Una billetera sencilla para enviar y recibir Zcash (ZEC) + + Crear Nueva Billetera + Restaurar Billetera Existente + diff --git a/ui-lib/src/main/res/ui/payment_request/values-es/strings.xml b/ui-lib/src/main/res/ui/payment_request/values-es/strings.xml new file mode 100644 index 00000000..39389993 --- /dev/null +++ b/ui-lib/src/main/res/ui/payment_request/values-es/strings.xml @@ -0,0 +1,28 @@ + + + Solicitud de Pago + Cerrar + + Solicitado Por + Mostrar + Ocultar + Guardar + + Para: + + Tarifa + Total + + Enviar + + Transacción Fallida + Ocurrió un error y el intento de enviar fondos falló. Inténtelo de nuevo, por favor. + OK + Reportar + + Error de Conexión + Zashi encontró algunos problemas de conexión al enviar la transacción a la red. Volverá a intentarlo durante los próximos minutos. + OK + + No se pudo iniciar la aplicación de correo. + diff --git a/ui-lib/src/main/res/ui/qr_code/values-es/strings.xml b/ui-lib/src/main/res/ui/qr_code/values-es/strings.xml new file mode 100644 index 00000000..d63ad8ba --- /dev/null +++ b/ui-lib/src/main/res/ui/qr_code/values-es/strings.xml @@ -0,0 +1,19 @@ + + + Cerrar + Código QR de Dirección Unificada + Código QR de Dirección Sapling + Código QR de Dirección Transparente + Dirección Protegida de Zcash + Dirección Sapling de Zcash + Dirección Transparente de Zcash + Privacidad Máxima + Baja Privacidad + Compartir Código QR + Copiar Dirección + Dirección de Billetera Zcash + No se pudo encontrar una aplicación para compartir el código QR. + Mi Dirección ZEC de Zashi + Hola, ¡escanea este código QR para enviarme un pago en ZEC! Enlace de descarga: + https://play.google.com/store/apps/details?id=co.electriccoin.zcash + diff --git a/ui-lib/src/main/res/ui/receive/values-es/strings.xml b/ui-lib/src/main/res/ui/receive/values-es/strings.xml new file mode 100644 index 00000000..46951547 --- /dev/null +++ b/ui-lib/src/main/res/ui/receive/values-es/strings.xml @@ -0,0 +1,13 @@ + + + Recibir + Recibir Zcash + Prioriza usar tu dirección protegida para máxima privacidad. + Dirección Protegida de Zcash + Dirección Sapling de Zcash + Dirección Transparente de Zcash + Copiar + Código QR + Solicitar + Dirección de Billetera Zcash + diff --git a/ui-lib/src/main/res/ui/request/values-es/strings.xml b/ui-lib/src/main/res/ui/request/values-es/strings.xml new file mode 100644 index 00000000..3ae73149 --- /dev/null +++ b/ui-lib/src/main/res/ui/request/values-es/strings.xml @@ -0,0 +1,36 @@ + + + Solicitar + Este monto de transacción no es válido + Siguiente + Solicitar + Compartir Código QR + Cerrar + Máxima Privacidad + Baja Privacidad + + 0 + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + Eliminar + + Solicitud de Pago + ¿Para qué es esto? + + %1$s/%2$s + + + Solicitar Código QR + No se pudo encontrar una aplicación para compartir el código QR. + Solicitar ZEC + Hola, ¡escanea este código QR para enviarme un pago en ZEC! Enlace de descarga: + https://play.google.com/store/apps/details?id=co.electriccoin.zcash + diff --git a/ui-lib/src/main/res/ui/restore/values-es/strings.xml b/ui-lib/src/main/res/ui/restore/values-es/strings.xml new file mode 100644 index 00000000..d80ea854 --- /dev/null +++ b/ui-lib/src/main/res/ui/restore/values-es/strings.xml @@ -0,0 +1,15 @@ + + Borrar Semilla + + Ingresa la frase secreta de recuperación + Ingresa tu frase de semilla de 24 palabras para restaurar la billetera asociada. + privacidad dignidad libertad … + Siguiente + + Esta palabra no está en el diccionario de frases semilla. Por favor, selecciona la correcta de las sugerencias. + Esta palabra no está en el diccionario de frases semilla. + + Altura de cumpleaños de la billetera + (opcional) + Restaurar + diff --git a/ui-lib/src/main/res/ui/restore_success/values-es/strings.xml b/ui-lib/src/main/res/ui/restore_success/values-es/strings.xml new file mode 100644 index 00000000..2d96543f --- /dev/null +++ b/ui-lib/src/main/res/ui/restore_success/values-es/strings.xml @@ -0,0 +1,9 @@ + + ¡Mantén Zashi abierto! + Tu billetera ha sido restaurada con éxito y ahora se está sincronizando + Para evitar interrupciones, mantén la pantalla encendida, conecta tu dispositivo a una fuente de energía y guárdalo en un lugar seguro. + Mantener la pantalla encendida mientras se restaura. + Nota: + Durante la sincronización inicial, tus fondos no se pueden enviar ni gastar. Dependiendo de la antigüedad de tu billetera, la sincronización completa puede tomar algunas horas. + ¡Entendido! + diff --git a/ui-lib/src/main/res/ui/scan/values-es/strings.xml b/ui-lib/src/main/res/ui/scan/values-es/strings.xml new file mode 100644 index 00000000..1f06be0a --- /dev/null +++ b/ui-lib/src/main/res/ui/scan/values-es/strings.xml @@ -0,0 +1,14 @@ + + Cámara + + Cancelar + Abrir Configuración + No se pudo iniciar la aplicación de Configuración. + + La cámara no está autorizada. Por favor, ve a la configuración del sistema de Zashi y actívala. + Falló la inicialización de la cámara. Inténtalo de nuevo, por favor. + Este código QR no es una dirección válida de Zcash. + + Alternar linterna de la cámara + Galería + diff --git a/ui-lib/src/main/res/ui/security_warning/values-es/strings.xml b/ui-lib/src/main/res/ui/security_warning/values-es/strings.xml new file mode 100644 index 00000000..2f9b1a88 --- /dev/null +++ b/ui-lib/src/main/res/ui/security_warning/values-es/strings.xml @@ -0,0 +1,10 @@ + + Advertencia de seguridad: + + Zashi %1$s es una billetera exclusiva para Zcash, con protección de privacidad — creada por Zcashers para Zcashers. Zashi ha sido diseñada para tu privacidad y seguridad. Al instalar y usar Zashi, aceptas compartir informes de fallos con Electric Coin Co. (el desarrollador de la billetera), lo que nos ayudará a mejorar la experiencia del usuario de Zashi.*\n\nPor favor, confirma y acepta a continuación para continuar. + *Nota: + \u0020Los informes de fallos podrían revelar la fecha y hora del fallo y los eventos que ocurrieron, pero no revelarían las claves de gasto o de visualización. + + Confirmar + Acepto + diff --git a/ui-lib/src/main/res/ui/seed_recovery/values-es/strings.xml b/ui-lib/src/main/res/ui/seed_recovery/values-es/strings.xml new file mode 100644 index 00000000..14175bf8 --- /dev/null +++ b/ui-lib/src/main/res/ui/seed_recovery/values-es/strings.xml @@ -0,0 +1,9 @@ + + Tu frase secreta de recuperación + Las siguientes 24 palabras son la clave para tus fondos y constituyen la única forma de recuperarlos si pierdes el acceso o adquieres un nuevo dispositivo. ¡Protege tu ZEC almacenando esta frase en un lugar de confianza y nunca la compartas con nadie! + Altura de cumpleaños de la billetera: %1$d + ¡Entendido! + Toca para copiar + Frase de Semilla de Zcash + Cumpleaños de la Billetera Zcash + diff --git a/ui-lib/src/main/res/ui/send/values-es/strings.xml b/ui-lib/src/main/res/ui/send/values-es/strings.xml new file mode 100644 index 00000000..fca4367f --- /dev/null +++ b/ui-lib/src/main/res/ui/send/values-es/strings.xml @@ -0,0 +1,29 @@ + + Enviar + Escanear + Enviar a + Dirección de Zcash + Dirección no válida + Monto + %1$s + USD + Fondos insuficientes + Monto no válido + Mensaje + Escribe un mensaje cifrado aquí… + + %1$s/%2$s + + Revisar + (Tarifa típica < %1$s) + + Error al enviar fondos + Error: El intento de enviar fondos falló. Inténtelo de nuevo, por favor. + OK + + %1$s%2$s + Las transacciones transparentes no pueden tener mensajes + + Agrega un contacto tocando el ícono de la libreta de direcciones. + + diff --git a/ui-lib/src/main/res/ui/send_confirmation/values-es/strings.xml b/ui-lib/src/main/res/ui/send_confirmation/values-es/strings.xml new file mode 100644 index 00000000..efad2f3d --- /dev/null +++ b/ui-lib/src/main/res/ui/send_confirmation/values-es/strings.xml @@ -0,0 +1,46 @@ + + + Confirmación + Monto Total + Enviando a + Mensaje + Tarifa + Monto + Enviar + Cancelar + + Transacción Fallida + Ocurrió un error y el intento de enviar fondos falló. Inténtelo de nuevo, por favor. + OK + Reportar + + Error de Conexión + Zashi encontró algunos problemas de conexión al enviar la transacción a la red. Volverá a intentarlo durante los próximos minutos. + OK + + Error de Transacción + Enviar a este destinatario requirió múltiples transacciones, pero solo algunas de ellas se completaron con éxito. Tus fondos están seguros, pero deben recuperarse con la ayuda del soporte del equipo de Zashi. + Por favor, usa el botón de abajo para contactarnos y recuperar tus fondos. Tu mensaje para nosotros estará pre-rellenado con todos los datos necesarios para resolver este problema. + IDs DE TRANSACCIÓN: + + %1$d. ID: + + Contactar Soporte + + Hola, equipo de Zashi.\n\nAl enviar una transacción a una dirección TEX, encontré un estado de error. Me pongo en contacto para recibir orientación sobre cómo recuperar mis fondos.\n\nGracias. + Estados de la transacción: + + %1$d: Éxito + + + %1$d: Sin intentar + + + %1$d: Fallo: + gRPC: %2$s, + código: %3$d, + descripción: %4$s + + No se pudo iniciar la aplicación de correo. + + diff --git a/ui-lib/src/main/res/ui/settings/values-es/strings.xml b/ui-lib/src/main/res/ui/settings/values-es/strings.xml new file mode 100644 index 00000000..0f583a53 --- /dev/null +++ b/ui-lib/src/main/res/ui/settings/values-es/strings.xml @@ -0,0 +1,15 @@ + + Configuración + Configuración Avanzada + Integraciones + Acerca de Nosotros + Envíanos tus Comentarios + Versión %s + Libreta de Direcciones + + Configuraciones adicionales + Reescanear blockchain + Sincronización en segundo plano + Mantener pantalla encendida durante la sincronización + Reportar fallos + diff --git a/ui-lib/src/main/res/ui/support/values-es/strings.xml b/ui-lib/src/main/res/ui/support/values-es/strings.xml new file mode 100644 index 00000000..791bf8d0 --- /dev/null +++ b/ui-lib/src/main/res/ui/support/values-es/strings.xml @@ -0,0 +1,11 @@ + + Soporte + + ¿Cómo podemos ayudarte? + Enviar + OK + Cancelar + Abrir aplicación de correo electrónico + %1$s está a punto de abrir tu aplicación de correo electrónico con un mensaje pre-rellenado.\n\nAsegúrate de presionar enviar dentro de tu aplicación de correo. + Por favor, háznos saber sobre cualquier problema que hayas tenido, o funciones que te gustaría ver en el futuro. + diff --git a/ui-lib/src/main/res/ui/update/values-es/strings.xml b/ui-lib/src/main/res/ui/update/values-es/strings.xml new file mode 100644 index 00000000..e8dcb27e --- /dev/null +++ b/ui-lib/src/main/res/ui/update/values-es/strings.xml @@ -0,0 +1,17 @@ + + + Actualización disponible + Actualización requerida + %1$s aquí. + No eres tú, soy yo. + + Hay una actualización requerida para %1$s que realiza importantes mejoras en el rendimiento y/o la seguridad. + + + Hay una nueva versión de %1$s que realiza actualizaciones menores para mejorar el rendimiento y/o la seguridad.\n\nPor favor, toma un momento para actualizar a la última versión. + + Obtén más información sobre esta actualización aquí. + Actualizar + Recordarme más tarde + (requerido) + diff --git a/ui-lib/src/main/res/ui/update_contact/values-es/strings.xml b/ui-lib/src/main/res/ui/update_contact/values-es/strings.xml new file mode 100644 index 00000000..e201fccb --- /dev/null +++ b/ui-lib/src/main/res/ui/update_contact/values-es/strings.xml @@ -0,0 +1,6 @@ + + + Contacto Guardado + Guardar + Eliminar + diff --git a/ui-lib/src/main/res/ui/warning/values-es/strings.xml b/ui-lib/src/main/res/ui/warning/values-es/strings.xml new file mode 100644 index 00000000..8b0d98d6 --- /dev/null +++ b/ui-lib/src/main/res/ui/warning/values-es/strings.xml @@ -0,0 +1,15 @@ + + + No hay suficiente espacio libre + + %1$s requiere al menos + %2$d GB de espacio para funcionar, pero solo hay + %3$d MB disponibles. + + + Ve a la configuración de tu dispositivo y libera más espacio si deseas usar la aplicación + %1$s. + + Configuración del sistema + No se pudo iniciar la aplicación de Configuración. + diff --git a/ui-lib/src/main/res/ui/whats_new/values-es/strings.xml b/ui-lib/src/main/res/ui/whats_new/values-es/strings.xml new file mode 100644 index 00000000..be145ae3 --- /dev/null +++ b/ui-lib/src/main/res/ui/whats_new/values-es/strings.xml @@ -0,0 +1,5 @@ + + + Novedades + Versión de Zashi %s + diff --git a/ui-screenshot-test/src/main/java/co/electroniccoin/zcash/ui/screenshot/ScreenshotTest.kt b/ui-screenshot-test/src/main/java/co/electroniccoin/zcash/ui/screenshot/ScreenshotTest.kt index ba10a6e8..7f9429ef 100644 --- a/ui-screenshot-test/src/main/java/co/electroniccoin/zcash/ui/screenshot/ScreenshotTest.kt +++ b/ui-screenshot-test/src/main/java/co/electroniccoin/zcash/ui/screenshot/ScreenshotTest.kt @@ -146,6 +146,14 @@ class ScreenshotTest : UiTestPrerequisites() { } } + @Test + @LargeTest + fun takeScreenshotsForRestoreWalletLightEsSP() { + runWith(UiMode.Light, "es-SP") { context, tag -> + takeScreenshotsForRestoreWallet(context, tag) + } + } + // Dark mode was introduced in Android Q @Test @LargeTest @@ -155,6 +163,14 @@ class ScreenshotTest : UiTestPrerequisites() { } } + @Test + @LargeTest + fun takeScreenshotsForRestoreWalletDarkEsSP() { + runWith(UiMode.Dark, "es-SP") { context, tag -> + takeScreenshotsForRestoreWallet(context, tag) + } + } + @OptIn(ExperimentalTestApi::class) @Suppress("LongMethod", "CyclomaticComplexMethod") private fun takeScreenshotsForRestoreWallet( @@ -185,6 +201,12 @@ class ScreenshotTest : UiTestPrerequisites() { it.performClick() } + // To ensure that the new screen is available, or wait until it is + composeTestRule.waitUntilAtLeastOneExists( + hasText(resContext.getString(R.string.restore_title)), + DEFAULT_TIMEOUT_MILLISECONDS + ) + composeTestRule.onNodeWithText(resContext.getString(R.string.restore_title)).also { it.assertExists() } @@ -265,6 +287,14 @@ class ScreenshotTest : UiTestPrerequisites() { } } + @Test + @LargeTest + fun takeScreenshotsForNewWalletAndRestOfAppLightEsSP() { + runWith(UiMode.Light, "es-SP") { context, tag -> + takeScreenshotsForNewWalletAndRestOfApp(context, tag) + } + } + // Dark mode was introduced in Android Q @Test @LargeTest @@ -275,6 +305,16 @@ class ScreenshotTest : UiTestPrerequisites() { } } + @Test + @LargeTest + @SdkSuppress(minSdkVersion = Build.VERSION_CODES.Q) + fun takeScreenshotsForNewWalletAndRestOfAppDarkEsSP() { + runWith(UiMode.Dark, "es-SP") { context, tag -> + takeScreenshotsForNewWalletAndRestOfApp(context, tag) + } + } + + @OptIn(ExperimentalTestApi::class) private fun takeScreenshotsForNewWalletAndRestOfApp( resContext: Context, tag: String @@ -289,6 +329,9 @@ class ScreenshotTest : UiTestPrerequisites() { onboardingScreenshots(resContext, tag, composeTestRule) recoveryScreenshots(resContext, tag, composeTestRule) + // To ensure that the bottom tab is available, or wait until it is + composeTestRule.waitUntilAtLeastOneExists(hasTestTag(HomeTag.TAB_ACCOUNT), DEFAULT_TIMEOUT_MILLISECONDS) + composeTestRule.navigateInHomeTab(HomeTag.TAB_ACCOUNT) accountScreenshots(tag, composeTestRule)