From 9b6a954ed0245a191aa08ba7b08c8a8ed631e01f Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 29 Oct 2025 19:01:28 +0300 Subject: [PATCH] Updated on 2026-08-14 --- core/res/src/main/res/values-de/strings.xml | 74 ++++++-- core/res/src/main/res/values-es/strings.xml | 82 +++++++++ core/res/src/main/res/values-fr/strings.xml | 86 +++++++++- core/res/src/main/res/values-ja/strings.xml | 143 ++++++++++++---- core/res/src/main/res/values-ru/strings.xml | 90 +++++++++- .../src/main/res/values-uk-rUA/strings.xml | 80 +++++++++ .../src/main/res/values-zh-rTW/strings.xml | 2 + core/res/src/main/res/values/strings.xml | 162 +++++++++++++----- .../res/drawable/img_visa_waitlist_promo.webp | Bin 0 -> 13438 bytes .../data/promo/DefaultPromoRepository.kt | 17 +- .../tangem/domain/promo/models/PromoBanner.kt | 1 + .../promo/ShouldShowPromoWalletUseCase.kt | 5 +- .../intents/WalletWarningsClickIntents.kt | 36 ++-- .../analytics/WalletScreenAnalyticsEvent.kt | 6 + .../utils/WalletWarningsAnalyticsSender.kt | 1 + .../domain/GetMultiWalletWarningsFactory.kt | 17 +- .../wallet/state/model/WalletNotification.kt | 17 ++ .../ui/YieldSupplyDepositedWarningContent.kt | 2 +- gradle/tangem_dependencies.toml | 2 +- .../providers/ProviderTypeIdMapping.kt | 2 +- tangem-android-tools | 2 +- 21 files changed, 705 insertions(+), 122 deletions(-) create mode 100644 core/ui/src/main/res/drawable/img_visa_waitlist_promo.webp diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 522132b11b..cec83f8e76 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -262,7 +262,7 @@ Importieren In Arbeit Später - Mehr erfahren + Mehr erfahren %1$s übrig Legacy Bitcoin Gesperrt @@ -337,7 +337,7 @@ Transaktion fehlgeschlagen Transaktionsstatus Transaktionen - Überweisung + Überweiseung Die Daten konnten nicht geladen werden… Ich verstehe Es ist ein Fehler aufgetreten. Bitte versuche es erneut. @@ -760,6 +760,8 @@ Krypto kaufen Profitiere von **0 % Gebühren** beim Kauf von Kryptowährungen per SEPA-Überweisung. Krypto mit SEPA kaufen + Trage dich in die Warteliste ein und erhalte eine Zahlungskarte, die es so noch nie gab. + Tangem Visa Card Du musst einen einzigen Zugangscode einrichten, um alle deine Geräte zu schützen Schützen Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten @@ -1200,7 +1202,7 @@ Monatlich Wöchentlich Belohnungen - Belohnungen auf Solana werden automatisch Deinem Staking-Guthaben hinzugefügt und können nicht separat angezeigt werden. + Belohnungen auf Solana werden automatisch Deinem Staking-Guthaben hinzugefügt und können nicht separat angezeigt werden. Stake gesperrt Mehr staken Beim Staking %1$s wird Dein gesamtes %2$s -Guthaben eingesetzt. Alle weiteren %2$s due Du in Deine Tangem-Wallet einzahlst, werden ebenfalls automatisch eingesetzt. @@ -1362,7 +1364,7 @@ Frühzeitiger Zugriff auf neue Funktionen und exklusive Angebote. Updates zu Funktionen und Neuigkeiten Möchtest du Push-Benachrichtigungen verwenden? - Aktiviere Push-Benachrichtigungen und wir benachrichtigen Dich sofort, wenn Gelder eintreffen \n + Aktiviere Push-Benachrichtigungen und wir benachrichtigen Dich sofort, wenn Gelder eintreffen Verpasse keine Transaktion Neues Wallet hinzufügen Möchtest Du diese Wallet wirklich entfernen? @@ -1675,30 +1677,80 @@ Nein, alles senden Um %s XTZ reduziert Damit Sie beim nächsten Aufladen Ihrer Brieftasche keine erhöhte Provision zahlen, soll der Betrag um %s XTZ reduziert werden + Wenn der Yield-Modus aktiviert ist, gehen alle zukünftigen Einzahlungen an diese Adresse an Aave. Du kannst über Dein Guthaben weiterhin frei verfügen. + Deine %s wird an Aave übermittelt + Die Bereitstellung von %1$s %2$s für Aave steht aus + Genehmigen + Die Genehmigung Deines Tokens wurde widerrufen. Erteilen diese erneut, um die Servicefunktionalität fortzusetzen. + Genehmigung erforderlich + Die Gebühr wird abgezogen und Dein Vermögen wird erneut verliehen. + Um weiterhin Geld verdienen zu können, ist eine Genehmigung erforderlich. + Genehmigung bestätigen + Deine Gelder werden derzeit dem Aave-Protokoll bereitgestellt, Du kannst sie jedoch jederzeit verwalten. + Deine%s ist in Aave hinterlegt Chart konnte nicht geladen werden... Der erhaltene Betrag %1$s %2$s wurde nicht auf Aave eingezahlt. + APY %1$s%% + Verfügbar + Aktueller effektiver Jahreszins + Beim Aufladen zum Ausleihen wird eine Netzwerkgebühr von maximal %1$s vom Guthaben abgezogen. + Die Netzwerkgebühr ist derzeit zu hoch, um die Kreditvergabe durchzuführen. Die Mittel werden bereitgestellt, sobald sie auf %1$s oder darunter fallen. + Meine Mittel + Dein %1$s ist nun bei Aave hinterlegt und bringt Zinsen ein. Du besitzt einen %2$s-Token, der Dein Guthaben repräsentiert und mit der Zeit wächst. Wenn Du mehr Geld einzahlst, wird dieses an Aave weitergeleitet, um Zinsen abzüglich einer Transaktionsgebühr zu erwirtschaften. + Ertragsmodus + Gesamtverdienst + Übertragungen zu Aave + Entdecke Aave + Dies ist die aktuelle Liefergebühr auf %s. Die tatsächlichen Kosten werden auf der Registerkarte \"Aktivierung\" angezeigt. Aktuelle Gebühr + Alle zukünftigen %s-Einzahlungen werden automatisch an Aave geliefert, wobei die Transaktionsgebühr abgezogen wird. + Bei jeder zukünftigen Aufladung wird eine Netzwerkgebühr von ungefähr %1$s (%2$s) abgezogen, die Ihr Limit von %3$s (%4$s) nicht überschreitet. + Wenn die Netzwerkgebühren über die maximale Gebühr steigen, wird die Transaktion erst durchgeführt, wenn diese sinken. Du kannst dieses Limit später ändern. Maximale Gebühr + Der Mindestbetrag wird aus der aktuellen Netzwerkgebühr berechnet, um sicherzustellen, dass er 4%% nicht überschreitet, was den Mindestbetrag %1$s (%2$s) ergibt. + Mindestaufladung Gebührenpolitik - Die Netzwerkgebühr ist derzeit zu hoch. Warte, bis sie unter Dein Limit fällt. + Tangem erhebt außerdem eine Servicegebühr von 15% auf den erzielten Ertrag. + Deine Gelder werden automatisch an Aave überwiesen, sobald die Netzwerkgebühren niedriger sind oder Dein Guthaben den erforderlichen Mindestbetrag erreicht. Historische Renditen - Sofortige Auszahlung + Die Freigabe für Deine Token im Yield-Modus wurde widerrufen. Öffne den Token, um die Berechtigung erneut zu erteilen. + Token-Genehmigung erforderlich + Prüfe Deine Netzwerkverbindung + Informationen zu den Netzwerkgebühren nicht erreichbar + Jede Einzahlung, die Du tätigst, wird automatisch an Aave weitergeleitet. + Automatische Übertragung zu Aave + Senden, tauschen oder verkaufen Deine Gelder sofort, wann immer Du willst. + Jederzeit Zugriff auf Dein Geld Wie funktioniert das? - Verdiene %s%% jährlich - Aave • Variabler Zinssatz + Aave ist ein dezentrales Protokoll, das einen Gesamtwert von über 61 Milliarden US-Dollar verwaltet. + Dezentral und selbstverwahrend + Durch die Nutzung dieses Dienstes erklärst Du Dich mit provider\n%1$s und %2$s einverstanden + Mit Aave verbinden + Aave %1$s%% • Variabler Zinssatz Aave Durchschnitt %s Renditen des letzten Jahres + Der aktuelle Zinssatz ist immer variabel und wird automatisch vom Aave On-Chain-Smart-Contract auf der Grundlage von Angebot und Nachfrage in Echtzeit berechnet. Unterstützt durch Der Zinssatz ist variabel + Wenn Du dein Guthaben auflädst, wird es automatisch an Aave weitergeleitet, um Zinsen zu verdienen. zur Deckung der Transaktionsgebühr wird ein Betrag von %s abgezogen. Beginn des Verdienstes + Dein %s wird an Aave übermittelt, bleibt aber verwaltbar. Siehe Gebührenrichtlinie + Deine nächste Aufladung wird automatisch an Aave weitergeleitet. Aktiv Pausiert + Deaktiviere den Yield-Modus + Wenn Du diese Option deaktivierst, wird Dein Geld von Aave auf %s in Deiner Wallet abgehoben und es werden keine Belohnungen mehr verdient. + Die Netzwerkgebühr wird von dem Betrag, den Du abhebst, abgezogen. Effektiver Jahreszins für Versorgung - Lass Dein Geld arbeiten – verdiene Zinsen auf Dein Guthaben. - Verdienst auf Dein Guthaben - Verdienen %1$s%% pro Jahr + Effektiver Jahreszins + Zinsen fallen automatisch an + Ertragsmodus + Bearbeitung Deiner Einzahlung + Automatisch + Einzahlung von %1$s %2$s zur Deckung der Netzwerkgebühr für Transaktionen + Die Gebühr %s kann nicht gedeckt werden Der Stakingservice ist derzeit nicht verfügbar. Bitte versuche es später erneut. Einnahmen nicht verfügbar Chart konnte nicht geladen werden... diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml index dcce73dd3a..a9f9168d50 100644 --- a/core/res/src/main/res/values-es/strings.xml +++ b/core/res/src/main/res/values-es/strings.xml @@ -653,6 +653,8 @@ Comprar cripto Disfrute de unas comisiones del **0%** al comprar criptomonedas mediante transferencias SEPA. Comprar criptomonedas con SEPA + Únete a la lista de espera y consigue una tarjeta de pago como ninguna otra. + Tangem Visa Card Configure un código de acceso único para proteger todos sus dispositivos. Proteger Puede configurar un código de acceso individual en cada tarjeta más adelante @@ -1106,6 +1108,7 @@ Compatible con Web 3.0 Se requiere una transacción entrante de al menos %1$s para proceder Fondos insuficientes + Al aprobar, permites que el contrato inteligente use tus tokens en futuras transacciones. Tasa Fija La red cobrará una tasa de aprobación del token para verificar que usted autoriza el uso de su token para el intercambio. Intercambie más tokens a mejores tasas directamente en su billetera. @@ -1212,6 +1215,8 @@ Acceso anticipado a nuevas funciones y ofertas exclusivas. Actualizaciones de características y noticias ¿Quiere utilizar\nnotificaciones push? + Active las notificaciones push y le avisaremos al instante cuando le lleguen fondos. + No se pierda ninguna transacción Agregar una nueva billetera ¿Estás seguro de que deseas olvidar esta billetera? Ha ocurrido un error, por favor escanee su tarjeta o anillo para iniciar sesión @@ -1398,6 +1403,7 @@ Tenemos algún tipo de problema Todas las dApps desconectadas Permitir gastar + Al aprobar, permites que la dApp o el contrato inteligente utilicen los tokens en futuras transacciones. Dirección Conectar Cargando @@ -1472,4 +1478,80 @@ No, enviar todo Reducir en %s XTZ Para evitar pagar una comisión mayor la próxima vez que recargue su billetera, reduzca el importe en %s XTZ + Con el modo Rendimiento activo, todos los depósitos futuros a esta dirección irán a Aave. Puede seguir gestionando sus fondos libremente. + Su %s se suministra a Aave + El suministro de %1$s %2$s a Aave está pendiente + Aprobar + Se ha revocado la aprobación de su token. Concédalo de nuevo para reanudar el servicio. + Aprobación necesaria + Se le descontará la comisión y se le volverán a prestar sus activos. + Para seguir ganando, se requiere aprobación. + Confirmar aprobación + Sus fondos se suministran actualmente al protocolo Aave, pero puede gestionarlos en cualquier momento. + Su %s está depositado en Aave + No se puede cargar el gráfico... + La cantidad recibida, %1$s %2$s no fue suministrada a Aave. + APY %1$s%% + Disponible + APY actual + En las recargas para préstamos, se deducirá del saldo una comisión de red no superior a %1$s. + La tasa de red es actualmente demasiado alta para ejecutar préstamos. Los fondos se suministrarán una vez que baje a %1$s o menos. + Mis fondos + Su %1$s está ahora depositado en Aave y devenga intereses. Tiene un token%2$s, que representa su saldo y crece con el tiempo. Cuando deposite más fondos, estos se suministrarán a Aave para ganar intereses, menos una comisión por transacción. + Modo de rendimiento + Ganancias totales + Transferencias a Aave + Explore Aave + Esta es la tarifa de suministro actual en %s. El coste real se mostrará en la pestaña de activación. + Tarifa actual + Todos los depósitos futuros %s se proporcionarán a Aave automáticamente, con la tarifa de transacción deducida. + Se deducirá una comisión de red aproximada de %1$s (%2$s) de cada recarga futura, y no superará su límite de %3$s (%4$s). + Si las tarifas de red superan la tarifa máxima, la transacción no se realizará hasta que disminuyan. Puede cambiar este límite más adelante. + Tarifa máxima + El monto mínimo se calcula a partir de la tarifa de red actual para garantizar que no exceda 4%%, lo que hace que el mínimo sea %1$s (%2$s). + Recarga mínima + Política de tarifas + Tangem también cobra una comisión de servicio del 15% sobre el rendimiento obtenido. + Sus fondos se suministrarán automáticamente a Aave una vez que las comisiones de red sean más bajas o su saldo alcance el importe mínimo requerido. + Rendimientos históricos + Se ha revocado la autorización para su token en el modo Rendimiento. Abra el token para volver a conceder el permiso. + Se necesita la aprobación de Token + Compruebe su conexión de red + Información de tarifas de red inaccesible + Cada depósito que realice se suministrará a Aave automáticamente. + Transferencia automática a Aave + Envíe, intercambie o venda sus fondos al instante, cuando quiera. + Acceda a sus fondos en cualquier momento + ¿Cómo funciona? + Aave es un protocolo descentralizado que administra más de 61 billones de dólares en valor total. + Descentralizado y autocustodiado + Al utilizar este servicio, usted acepta que el proveedor\n%1$s y %2$s + Conectar Aave + Aave %1$s%% - Tipo de interés variable + Aave + Promedio %s + Resultados del año pasado + La tasa de interés actual siempre es variable y calculada automáticamente por el contrato inteligente onchain de Aave, en función de la oferta y la demanda en tiempo real. + Desarrollado por + El tipo de interés es variable + Cuando recargue, sus fondos se enviarán automáticamente a Aave para comenzar a ganar intereses. %s se deducirá para cubrir la tarifa de transacción. + Suministro de activos + Su %s se suministrará a Aave, pero seguirá siendo gestionable. + Ver política de tarifas + Sus próximas recargas se suministrarán automáticamente a Aave. + Activo + En pausa + Desactivar el modo de rendimiento + Al desactivar esto, retirará sus fondos de Aave a %s en su billetera y dejará de ganar recompensas. + La comisión de red se deducirá del importe que retire. + Suministro APY + APY + Los intereses se devengan automáticamente + Modo de rendimiento + Procesando su depósito + Automático + Deposite algo de %1$s %2$s para cubrir la tarifa de red para las transacciones + No se puede cubrir la tarifa %s + El servicio de intereses no está disponible en este momento. Vuelva a intentarlo más tarde. + Ganancias no disponibles diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 004c7dd622..ef9f1f5500 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -244,7 +244,7 @@ La transaction a échoué Statut de la transaction Transactions - Transfert + Fourniture Je comprends Il y avait une erreur. Veuillez réessayer. Inaccessible @@ -626,6 +626,8 @@ Acheter crypto Profitez de **0% de frais** lors de l\'achat de cryptomonnaies via des virements SEPA. Acheter des cryptomonnaies avec SEPA + Rejoignez la liste d’attente et obtenez une carte de paiement pas comme les autres. + Tangem Visa Card Vous devez définir un seul code d\'accès pour protéger tous vos appareils. Protéger Vous pourrez définir un code d\'accès individuel sur chaque carte plus tard @@ -1080,6 +1082,7 @@ Compatible avec Web 3.0 Une transaction entrante d\'au moins de %1$s est requise pour continuer Fonds insuffisants + En approuvant, vous autorisez le contrat intelligent à utiliser vos jetons dans de futures transactions. Taux fixe Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange. Échangez plus de jetons à de meilleurs taux directement dans votre portefeuille. @@ -1185,6 +1188,8 @@ Accès anticipé à de nouvelles fonctionnalités et à des offres exclusives. Actualités et mises à jour Souhaitez-vous utiliser les\nnotifications push? + Activez les notifications pour recevoir des alertes lorsque des fonds arrivent dans votre portefeuille. + Ne manquez aucune transaction Ajouter un nouveau portefeuille Êtes-vous sûr de vouloir supprimer ce portefeuille ? Une erreur s\'est produite, veuillez scanner votre carte ou bague pour vous connecter @@ -1384,6 +1389,7 @@ Nous avons un problème. Toutes les dApps sont déconnectées Autoriser à dépenser + En approuvant, vous autorisez la dApp ou le contrat intelligent à utiliser les jetons dans de futures transactions. Adresse Connecter Chargement @@ -1451,4 +1457,82 @@ Non, envoyer toute la somme Réduire de %s XTZ Pour ne pas payer un fraid de commissions élevé la prochaine fois que vous rechargez votre portefeuille, veuillez réduire le montant de %s XTZ + Vos fonds sont actuellement fournis au protocole Aave, mais vous pouvez les gérer à tout moment. + Vos %s sont fournis à Aave. + Le transfert de %1$s %2$s vers Aave est en attente. + Donnez votre accord + Un problème est survenu lors de votre précédente approbation, nous avons donc besoin d\'une nouvelle approbation. Choisissez comment vous souhaitez procéder. + Autorisation nécessaire + Les frais seront prélevés et vos actifs seront à nouveau prêtés. + Pour continuer à percevoir des revenus, une autorisation est nécessaire. + Confirmer l\'approbation + Vos fonds sont actuellement affectés au protocole Aave, mais vous pouvez les gérer à tout moment. + Vos %s sont déposés dans Aave. + Impossible de charger le graphique... + Le montant reçu, %1$s %2$s, n\'a pas été fourni à Aave. + APY %1$s%% + Disponible + APY actuel + Lors du rechargement pour le dépôt, des frais de réseau ne dépassant pas %1$s seront déduits du solde. + Les frais de réseau sont actuellement trop élevés pour permettre l\'exécution des prêts. Les fonds seront versés dès qu\'ils auront baissé à %1$s ou moins. + Mes fonds + Vos %1$s sont désormais déposés chez Aave et rapportent des intérêts. Vous détenez %2$s tokens, ce qui représente votre solde et augmente au fil du temps. Lorsque vous déposez davantage de fonds, ceux-ci sont fournis à Aave afin de rapporter des intérêts, moins les frais de transaction. + Gagner + Total des gains + Transferts vers Aave + Découvrez Aave + Il s\'agit des frais d\'approvisionnement actuels sur %s. Le coût réel sera indiqué dans l\'onglet Activation. + Frais actuels + Tous les futurs dépôts %s seront automatiquement fournis à Aave, après déduction des frais de transaction. + Des frais de réseau d\'environ %1$s (%2$s) seront déduits de chaque recharge future, sans dépasser votre limite de %3$s (%4$s). + Si les frais de réseau dépassent le montant maximal, la transaction ne sera pas effectuée tant qu\'ils n\'auront pas diminué. Vous pouvez modifier cette limite ultérieurement. + Frais maximaux + Le montant minimum est calculé à partir des frais de réseau actuels afin de garantir qu\'il ne dépasse pas 4 %%, ce qui donne un minimum de %1$s (%2$s). + Recharge minimale + Politique tarifaire + Tangem prélève également des frais de service de 15% sur les revenus générés. + Vos fonds seront automatiquement transférés vers Aave dès que les frais de réseau seront moins élevés ou que votre solde atteindra le montant minimum requis. + Rendements historiques + L\'autorisation pour votre token en mode Yield a été révoquée. Ouvrez le token pour accorder à nouveau l\'autorisation. + Approbations de tokens nécessaires + Vérifiez votre connexion réseau. + Informations sur les frais de réseau inaccessibles + Chaque dépôt que vous effectuez sera automatiquement transféré à Aave. + Transfert automatique vers Aave + Envoyez, échangez ou vendez vos fonds instantanément, quand vous le souhaitez. + Accédez à vos fonds à tout moment + Comment ça marche ? + Aave est un protocole décentralisé qui gère plus de 61 milliards de dollars en valeur totale. + Décentralisé et auto-détenu + En utilisant ce service, vous acceptez les conditions générales du fournisseur %1$s et %2$s. + Connecter Aave + Aave %1$s%% • Taux d\'intérêt variable + Aave + Moyenne %s + Rendements de l\'année dernière + Le taux d\'intérêt actuel est toujours variable et calculé automatiquement par le contrat intelligent Aave, en fonction de l\'offre et de la demande en temps réel. + Alimenté par + Le taux d\'intérêt est variable. + Lorsque vous effectuez un dépôt, vos fonds sont automatiquement transférés vers Aave afin de commencer à générer des intérêts. %s sera déduit pour couvrir les frais de transaction. + Actifs d\'approvisionnement + Vos %s seront fournis à Aave, mais resteront gérables. + Voir la politique tarifaire + Vos prochains dépôts seront automatiquement transférés vers Aave. + Actif + En pause + Désactiver le mode rendement + En désactivant cela, vos fonds seront retirés d\'Aave vers %s dans votre portefeuille et vous ne gagnerez plus de récompenses. + Les frais de réseau seront déduits du montant que vous retirez. + Rendement annuel brut (APY) + APY + Les intérêts sont cumulés automatiquement. + Les intérêts sont cumulés automatiquement. + Mode de rendement + Traitement de votre dépôt + Mode Rendement + Automatique + Déposez %1$s %2$s pour couvrir les frais de réseau liés aux transactions. + Impossible de couvrir les frais %s + Le service d\'intérêt n\'est pas disponible pour le moment. Veuillez réessayer plus tard. + Gains indisponibles diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml index 97d1117305..2d8b7ca984 100644 --- a/core/res/src/main/res/values-ja/strings.xml +++ b/core/res/src/main/res/values-ja/strings.xml @@ -22,6 +22,9 @@ すでにアクティブアカウントの上限(20件)に達しています。復元するには、1つをアーカイブしてください。 アカウントを復元できません アーカイブ済み + アカウントをアーカイブできませんでした。しばらくしてからもう一度お試しください。 + このアカウントは紹介プログラムに参加しています。 + このアカウントはアーカイブできません。 アカウントを作成できませんでした。しばらくしてからもう一度お試しください。 アカウントを作成しました アカウントをアーカイブする @@ -29,6 +32,7 @@ このアカウントをアーカイブしますが、いつでも復元できます。 アカウント アカウントが保存されました + 報酬用のアカウント アカウント番号%s — アドレス導出に使用されます。 アカウントを追加 保存 @@ -40,6 +44,8 @@ アカウントを編集 %1$s ( %2$s内) メインアカウント + すでにアクティブアカウントの上限%1$s件を超えています。復元するには、1つをアーカイブしてください。 + アカウントを復元できません アカウントが回復しました アカウントを長押しして並べ替える 編集を続ける @@ -134,7 +140,7 @@ お使いの携帯電話で生体認証が無効になっているため、アプリにウォレットを保存できません。ウォレットを保存するには、携帯電話の設定で生体認証機能を有効にしてください。 プロモーションコードの処理中にエラーが発生しました。しばらくしてからもう一度お試しください。 アクティベーションエラー - プロモコードが正常に有効化されました。リワードは14日以内にあなたのアカウントに付与されます。 + プロモーションコードが正常に有効化されました。報酬は14日以内にビットコインアカウントに入金されます。 プロモーションコードが有効になりました このプロモーションコードは既に使用されているため、再度使うことはできません。 コードが利用できません @@ -175,11 +181,13 @@ ADAが不足しています。 受け入れる アクセスが拒否されました + アカウント アカウント 有効化 追加 ポートフォリオに追加 トークンを追加 + 追加済み アドレス すべて 許可する @@ -237,6 +245,7 @@ 有効にする 有効 エラー + ネットワークサービス手数料 スワップ 移動する 取引履歴を調べる @@ -248,10 +257,12 @@ 遅い 速度と料金 終了 + 忘れる 無料 送信元 アドレスを同期する はじめる + トークンを取得 プロバイダーへ移動 トークンへ移動 わかりました @@ -291,6 +302,7 @@ %1$s — %2$s 続きを読む 受け取る + おすすめ 拒否 リロード 名前を変更 @@ -347,6 +359,8 @@ はい コントラクトアドレスをコピーしました! 利用可能なネットワーク + このトークンの導出パスが%1$sの導出パスと一致しています。トークンはこのアカウントに追加されます。 + 導出パスは別のアカウントに属します。 コントラクトアドレス コントラクトアドレスが無効です ネットワークを選択してください @@ -464,6 +478,7 @@ プロバイダー ベストレート FCA警告リスト + ベストチョイス FCA警告リストに掲載されたプロバイダー 最大 %s まで使用可能 %s 以上で利用可能 @@ -499,7 +514,7 @@ エラーが発生しました。コード: %s 。 メモが必要 取引 - 選択したトークンの承認制限を指定します + 承認すると、このスマートコントラクトが今後の取引でトークンを利用できるようになります。 金額%s 承認機能は、別のアドレスに特定の量のトークンを使用する許可を与えるために必要です。設計上スマートコントラクトは、承認しない限りトークンにアクセスできません。トークンを「ロック解除」すると、StakeKitスマート コントラクトがトークンを使用する権限が与えられます。ネットワークのマイナーは、このアクションをブロックチェーンに記録するためにガス料金(あなたが支払う)を受け取ります。承認後、トークンをステーキングできます。 続行するには、Polygonスマートコントラクトが%sを使用することを許可する必要があります @@ -521,16 +536,23 @@ アクセスコードでアプリを保護して、設定を完了してください。 そうした場合は、最初からやり直す必要があります。 本当にアクティベーション処理を終了してもよろしいですか? + 暗号資産をオフラインで厳重保管。カードサイズで、金庫以上の安心を。 実行すると、最初からやり直す必要があります。 Googleドライブのバックアップから既存のウォレットを復元する Googleドライブのバックアップ + さらに強固なセキュリティのために、新しいウォレットを作成して資産を移動しましょう。 + 新しいウォレットを作成 Tangemの高性能ハードウェアウォレットで、セキュリティをさらに強化しましょう。 ハードウェアウォレット + 現在のウォレットをTangemウォレットに移します。 + 現在のウォレットをアップグレードする バックアップへ移動 アクセスコードを作成する前にウォレットをバックアップしてください。 まずバックアップを完了する + その他の方法 秘密鍵をオフラインで安全に保存する物理デバイス。 リカバリーフレーズ + ウォレットをハードウェアにアップグレードするには、まずバックアップしてください。 鍵はアプリに保存されます シードフレーズのバックアップ モバイルウォレットを作成する @@ -598,6 +620,7 @@ 選択したトークンは現在、暗号資産ウォレット内でのアクションには利用できません。しかし、心配しないでください。賛成票を投じることで関心を表明できます。 賛成票を投じる ウォレットは複数のネットワークをサポートしていません。 + コインについて このアセットを購入・交換・受け取るには、ポートフォリオに追加してください。 このアセットは現在ウォレットで利用できません このアセットはこのウォレットでは使用できません。 @@ -633,6 +656,7 @@ トレンド ステーキングは暗号資産で報酬を受け取る最も簡単な方法です。 %s 最大%s APYを獲得 + トークンを追加しました %sについて %d取引所 @@ -860,6 +884,7 @@ その他の通貨 人気の法定通貨 通貨で検索 + 最良のレートを取得しています... 即時 オンランプ機能を使用することにより、プロバイダの%1$sおよび%2$sに同意するものとします サービスは外部プロバイダーによって提供されます。 \nTangemは責任を負いません。 @@ -889,6 +914,7 @@ 最大%d日 %s分 + 利用可能: 以下が手に入ります。 サービスは外部プロバイダーによって提供されます。 \nTangemは責任を負いません。 この画面を閉じて、トークンの詳細画面で取引状況を確認できます。 @@ -951,6 +977,10 @@ このカードを使用して、現在のウォレットの他のカードのアクセスコードを回復させられないことを認識しています。 工場出荷時設定にリセットすると、選択したカードやリングからウォレットが完全に削除されます。現在のウォレットを復元したり、カードやリングを使用してアクセスコードを復元することはできません。 工場出荷時の状態にリセットすると、選択したカードやリングからウォレットが完全に削除され、アプリから削除されます。現在のウォレットを復元することはできません。 + すべてのTangemデバイスがリセットされました。 + アクティベーション処理中に問題が発生しました。カードを1枚ずつリセットしてください。 + カード認証に失敗しました + 続行するには次のデバイスをリセットしてください Tangem Ringユーザーは、11/15日までChangelly経由でスワップを3回手数料ゼロで行えます! 今すぐ手数料0% でスワップしましょう! アプリにログインして、カードまたはリングをスキャンせずに残高を確認できます @@ -1160,7 +1190,7 @@ 新しいバリデーターを使用して%1$sネットワークにステーキングすると、以前にステーキングされた資金がすべてこのバリデーターに自動的に転送されます。 獲得した報酬をステーキングに再投資し、潜在的な収益を増やします。 再ステーキングを使うと、ステーキングを解除することなく、あるバリデータから別のバリデータに資金を移動できます。 - 残高のすべてをステーキングしようとしています。ステーキング解除や報酬請求にかかるネットワーク手数料をカバーするために、少額を残しておくことをお勧めします。 + ウォレットの残高をすべてステーキングすると、ステーキング解除時にネットワーク手数料の支払いが必要になります。そのため、少額をウォレットに残しておくことをおすすめします。 ステーキングを始めるには、TONアカウントを1 TONの自己取引で有効化する必要があります。資金はウォレット内にそのまま残り、この手順でステーキング用にアカウントを有効化できます。 アカウントの有効化 TONのステーキングを開始するには、まず自分のアドレスに少額の取引を送信します。これによりウォレットが有効になります。 @@ -1195,7 +1225,7 @@ 毎月 毎週 報酬 - Solanaの報酬は自動的にステーキング残高に追加され、個別に表示することはできません。 + Solanaの報酬は自動的にステーキング残高に追加され、個別に表示することはできません。 ステーキングはロックされています もっとステーキングする %1$sをステーキングすると、 %2$s残高全体がステーキングされます。Tangemウォレットに入金した追加の%2$sも、自動的にステーキングされます。 @@ -1268,8 +1298,25 @@ 受け取る トークンを選択 利用不可 + 入金 + 異議申し立て + 取引を表示 + サービス手数料 + 手数料 + 完了 + 拒否 + 保留中 + 銀行がこの取引リクエストを拒否しました。 + この手数料は、送金処理にかかるコストをカバーするためのものです。 + 出金 + PINを変更する + カードは支払いの準備が整いました。 + PINコードを作成しました データの読み込みに失敗しました。しばらくしてからもう一度お試しください。 + カードの一時停止 非表示 + 技術的な問題が検出されました。しばらくしてからもう一度お試しいただくか、サポートにお問い合わせください。 + 現在、受け取りは利用できません 表示 カードの詳細 アカウントを作成してカードを発行 @@ -1301,6 +1348,7 @@ ネットワーク%s内の保留中の取引が完了すると、送金が可能になります。 %sの売却は、現在のプロバイダーではサポートされていませんが、より多くのオプションを追加できるよう取り組んでいます。 %sのステーキングは、現在のプロバイダーではサポートされていませんが、より多くのオプションを追加できるよう取り組んでいます。 + 承認が取り消されましたが、あなたの資金は引き続き利息モードです。操作を行うには、利息モードに移動し、再度承認を付与してください。 XPUBを生成する 非表示 このトークンをメイン画面から非表示にします。トークンの管理ページからいつでも再度追加できます。 @@ -1361,9 +1409,10 @@ 新しい機能や限定オファーへの早期アクセス。 機能およびニュースのアップデート プッシュ通知を使用しますか? - プッシュ通知を有効にすると、資金が到着するとすぐに通知されます + プッシュ通知を有効にすると、ウォレットに着金したときにアラートを受信できます。 取引を見逃さない 新しいウォレットを追加 + バックアップせずにこのウォレットを削除すると、資金に永久にアクセスできなくなります。 このウォレットを忘れてもよろしいですか? エラーが発生しました。カードまたはリングをスキャンしてログインしてください。 このウォレットはすでに保存されています。別のウォレットを追加できます。 @@ -1393,6 +1442,13 @@ ロック解除 カードをスキャンしてアクセスロックを解除する ロック解除が必要 + ウォレットの追加方法を選択してください + Tangemカードまたはリングをスキャンして復元するか、別のウォレットからインポートしてください。 + ハードウェアウォレットを作成 + Tangemウォレットを購入しますか? + シードフレーズをインポート + スマートフォン上でウォレットを復元するか、他のアプリからインポートできますが、Tangemカードと比べるとセキュリティは劣ります。 + お選びください ブロックチェーンにアクセスできません。後でもう一度お試しください。 カードまたはリングをスキャン このウォレットはすでに有効化されています。\nあなたが行ったのでない場合は、サポートに連絡してください。\nTangemは、事前に生成されたアクセスコードと一緒にウォレットを販売することはありません。 @@ -1432,6 +1488,7 @@ dAppsに接続する WalletConnect 接続には数秒かかる場合があります + Tangemウォレットを作成する %sから Tangemウォレットを購入ーこれは、あなたの秘密鍵をオフラインで安全に保管する物理デバイスです。 ハードウェアウォレット @@ -1657,13 +1714,20 @@ URIはすでに使用されています WalletConnect 不審な取引 + すでにTangemをお持ちですか? + 数千種類の資産 業界最高水準のハードウェアウォレット 迅速な配送 + ワンタップで開始 + シームレスで安全 シンプルな操作 Tangemでハードウェアウォレットを作成しましょう。銀行のカードのようにスリムで、金庫のように安全です。 ソフトウェアウォレットを作成またはインポート + スマートフォン上にソフトウェアウォレットを作成するか、インポートしてください。 モバイルウォレットから始める その他の方法 + Tangemハードウェアウォレットを使用する + 詳細を見る・購入する 破棄 バックアップが中断されました。再開しますか? はい、再開します @@ -1678,75 +1742,84 @@ いいえ、すべて送信します %s XTZを減らす 次回ウォレットにチャージするときに手数料の増加を避けるには、金額を%s XTZ減らしてください。 - 資産残高に関するテキスト [プレースホルダー] - %sはAaveに預け入れられています + 利息モードを有効にすると、このアドレスへの今後のすべての入金はAaveに送られます。ただし、資金の管理は引き続き自由に行えます。 + %sはAaveに供給されています + Aaveへの%1$s %2$sの供給は保留中です 承認する - 前回の承認に問題があったため、新しい承認が必要です。手続き方法を選択してください。 + トークンの承認は取り消されました。サービス機能を再開するには、再度承認を行ってください。 承認が必要 手数料が差し引かれ、あなたの資産は再び貸し出されます。 引き続き収益を得るには承認が必要です。 承認を確定する - 資産残高に関するテキスト [プレースホルダー] + あなたの資金は現在Aaveプロトコルに預けられていますが、いつでも自由に管理できます。 あなたの%sはAaveに預けられています チャートを読み込めません・・ 受け取った金額%1$s %2$sはAaveに入金されませんでした。 - %1$s%% を獲得 + 年利%1$s%% 利用可能 現在のAPY + 貸付のために入金する際は、残高から%1$s以下のネットワーク手数料が差し引かれます。 + 現在、ネットワーク手数料が高すぎるため貸付を実行できません。手数料が%1$s以下に下がり次第、資金が供給されます。 私の資金 - あなたの%1$sはAaveに預けられ、利息が付きます。あなたは%2$sトークンを保有しており、これは残高を表し、時間の経過とともに増加します。入金すると、資金はAaveに預け入れられ、取引手数料を差し引いた利息が付きます。 - 利回りを得る + あなたの%1$sは現在Aaveにデプロイされ、利回りを生んでいます。あなたは%2$sトークンを保有しており、これはあなたの残高を表し、自動的に利回りが発生します。追加入金すると、手数料を差し引いた上でAaveに資産が追加され、さらに利回りを得られるようになります。 + 利息モード 総収益 Aaveへの送金 Aaveの詳細を見る - これは%sの現在の供給手数料です。実際のコストは受取画面に表示されます。 + これは%sの現在の供給手数料です。実際のコストはアクティベーションタブに表示されます。 現在の手数料 今後の%sの入金はすべて、取引手数料が差し引かれて自動的にAaveに供給されます。 + 今後のチャージごとに、おおよそ%1$s(%2$s)のネットワーク手数料が差し引かれますが、上限の%3$s(%4$s)を超えることはありません。 ネットワーク手数料が上限手数料を超えた場合、手数料が下がるまで取引は成立しません。この制限は後で変更できます。 最大手数料 + 最小金額は現在のネットワーク手数料に基づいて計算されており、手数料が4%を超えないように設定されています。そのため、最小金額は%1$s(%2$s)となります。 + 最低入金額 手数料ポリシー - ネットワーク手数料が現在高すぎます。設定した上限を下回るまで待機しています。 + Tangemはまた、得られた利回りに対して15%のサービス手数料を差し引きます。 + ネットワーク手数料が下がるか、残高が最低必要額に達すると、資金は自動的にAaveに供給されます。 過去のリターン - ここに説明を入力してください。1〜3行が理想的です。[プレースホルダー] - トークン承認が必要 + 利息モードでのトークンの承認が取り消されました。トークンを開いて再度許可してください。 + トークンの承認が必要です ネットワーク接続を確認してください ネットワーク手数料についての情報にアクセスできません - アカウントへの入金はすべて自動的にAaveに貸し出されます。 - 残高は自動的に計算されます + あなたが行うすべての入金は、自動的にAaveへ供給されます。 + Aaveへの自動送金 いつでも、即座に資金を送信、交換、売却できます。 - すぐに現金化 + いつでも資金にアクセス可能 使い方 - Aaveは世界中で何百万人もの人々に信頼されています。総貸付額は104億ドルです。 + Aaveは、総額610億ドル以上の資産を管理する分散型プロトコルです。 分散型・自己管理型 - サービスを利用することにより、プロバイダー\n %1$sおよび%2$sに同意したことになります - 年間%s%%の収益 - Aave • 変動金利 + このサービスを利用することにより、プロバイダー\n%1$sおよび%2$sに同意するものとします。 + Aave を接続 + Aave %1$s%% • 変動金利 Aave 平均%s 昨年のリターン - 現在の金利は常に変動し、リアルタイムの需要と供給に基づいて、AAVEオンチェーンスマートコントラクトによって自動的に計算されます。 + 現在の金利は常に変動し、リアルタイムの需要と供給に基づいて、Aaveオンチェーンスマートコントラクトによって自動的に計算されます。 提供 金利は変動します - 入金すると、資金は自動的にAaveに送金され、利息が付き始めます。取引手数料として%s相当の少額の手数料が差し引かれます。 - 利息の獲得を開始 - %sはAaveに供給され、すぐに利用可能になります + 入金すると、資金は自動的にAaveに送金され、利息が付き始めます。%sが取引手数料として差し引かれます。 + 資産を供給する + %sはAaveに供給されますが、管理可能な状態のままになります。 手数料ポリシーを見る 次回の入金は自動的にAaveに供給されます。 アクティブ 停止中 - 収益を停止する - オフにすると、Aaveから資金が引き出され、ウォレットの%sに戻され、報酬の獲得が停止されます。 + 利回りモードを無効にする + これをオフにすると、Aaveから資産が引き出され、ウォレット内の%sに変換され、利回りの発生が停止します。 出金金額からネットワーク手数料が差し引かれます。 - 供給APR + 供給 + 供給APY APY - あなたの資産を眠らせない — 残高を運用して利息を得ましょう。 - 保有資産から報酬を得る + 利息は自動的に発生します + 利息は自動的に発生します + 利回りモード 入金の処理中 - 年間%1$s%%の収益 + 利息モード 自動 取引のネットワーク手数料をカバーするために、 %1$s %2$sを入金してください %s手数料を支払えません - 利息サービスは現在利用できません。しばらくしてから再度お試しください。 - 収益は利用できません + 現在、利息モードのサービスは利用できません。しばらくしてから再度お試しください。 + 利息モードは利用できません チャートを読み込めません・・ diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 6d0accb1ee..393f0891ea 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -80,7 +80,7 @@ Вы отключили биометрическую аутентификацию на вашем телефоне и не сможете сохранять кошельки в приложении. Для сохранения кошельков, пожалуйста, включите функцию биометрической аутентификации в настройках телефона. При обработке промокода произошла ошибка. Пожалуйста, попробуйте позже. Ошибка активации - Ваш промокод был успешно активирован. Награда будет зачислена на ваш счёт в течение 14 дней. + Ваш промокод был успешно активирован. Награда будет зачислена на ваш Bitcoin адрес в течение 14 дней. Промокод активирован Этот промокод уже был использован и не может быть активирован повторно. Код недоступен @@ -181,6 +181,7 @@ Включить Включено Ошибка + Комиссия сети Обменять Обозреватель Посмотреть историю транзакций @@ -192,8 +193,10 @@ Медленно Скорость и комиссия Завершить + Забыть Из Синхронизировать адреса + Начать зарабатывать К провайдеру Перейти в токен Понятно @@ -202,6 +205,7 @@ Импортировать В процессе Позже + Узнать больше Осталось %1$s Заблокирован Основная сеть @@ -392,6 +396,7 @@ Больше провайдеров на подходе.\nСледите за обновлениями! Провайдер Лучший курс + Лучший выбор Доступно до %s Доступно с %s Недоступно для этой пары @@ -526,6 +531,7 @@ Выбранный токен не доступен в кошельке на данный момент. Но не переживайте, вы можете выразить свой интерес проголосовав за его добавление. Голосовать Кошелёк не поддерживает более одной сети + О монете Чтобы купить, обменять или получить данный токен, вам нужно добавить его к себе в портфель Этот актив в настоящее время не поддерживается в кошельке Этот токен не доступен для данного кошелька @@ -560,6 +566,7 @@ В тренде Стейкинг — простой способ получать доход с вашей криптовалюты. %s Получайте до %s APY + Токен добавлен О %s %d биржа @@ -694,6 +701,8 @@ Купить криптовалюту Наслаждайтесь **нулевой комиссией** при покупке криптовалюты через SEPA-переводы. Покупайте крипту через SEPA + Присоединяйтесь к списку ожидания и получите уникальную платёжную карту, не похожую ни на одну другую. + Tangem Visa Card Установите единый код доступа для защиты всех ваших карт или колец Защита Установите индивидуальный код доступа для каждой карты или кольца позже. @@ -837,6 +846,7 @@ до %d дней %s мин + Доступно от Вы получите Вы можете закрыть этот экран и проверить статус транзакции на экране информации о токене. До @@ -1141,7 +1151,7 @@ Месяц Еженедельно Вознаграждения - Вознаграждения в сети Solana автоматически добавляются к вашему стейкинг-балансу и не могут отображаться отдельно. + Вознаграждения в сети Solana автоматически добавляются к вашему стейкинг-балансу и не могут отображаться отдельно. Стейкинг закрыт Застейкать еще При стейкинге %1$s используется весь ваш баланс в %2$s. Любой дополнительный %2$s депозит будет автоматически застейкан. @@ -1213,6 +1223,7 @@ Вы получите Выберите токен не доступен + Комиссия Это мой кошелек Балансы скрыты Балансы показаны @@ -1229,6 +1240,7 @@ Отправка средств станет доступной после завершения транзакции(-ий) в сети %s Продажа %s в данный момент не поддерживается ни одним провайдером. Мы работаем над добавлением новых возможностей. Следите за нашими новостями. Стейкинг %s в данный момент не поддерживается ни одним провайдером. Мы работаем над добавлением новых возможностей. Следите за нашими новостями. + Разрешение было отозвано. Ваши средства остаются в Yield сервисе. Чтобы совершать операции, перейдите в Yield сервис и снова выдайте разрешение. Сгенерировать XPUB Скрыть Вы скрываете токен с главного экрана, но в любой момент сможете добавить его обратно через страницу управления токенами. @@ -1288,6 +1300,8 @@ Ранний доступ к новым функциям и эксклюзивным предложениям. Новые функции и важные новости Хотите использовать Push-уведомления? + Включите push-уведомления, и мы мгновенно сообщим вам, когда поступят средства. + Не пропустите транзакцию Добавить новый кошелек Вы уверены, что хотите забыть этот кошелек? Произошла ошибка, пожалуйста, отсканируйте свою карту или кольцо для входа @@ -1485,6 +1499,7 @@ Похоже, возникла проблема Все dapps отключены Разрешение на использование + Подтверждая, вы разрешаете смарт-контракту использовать ваши токены в будущих транзакциях. Адрес Подключение Загрузка @@ -1545,6 +1560,7 @@ URI уже используется WalletConnect Подозрительная транзакция + Узнать больше и купить Отказаться Вы не закончили резервное копирование. Хотите продолжить? Да, возобновить @@ -1559,14 +1575,76 @@ Нет, отправить все Уменьшить на %s XTZ Чтобы не платить повышенную комиссию при следующем пополнении кошелька, уменьшите сумму на %s XTZ + При активном режиме доходности все будущие депозиты на этот адрес будут направляться в Aave. Вы по-прежнему можете свободно управлять своими средствами. + Ваш %s внесён в Aave Выдать разрешение + Разрешение для вашего токена было отозвано. Выдайте его снова, чтобы продолжить работу сервиса. + Необходимо разрешение + Комиссия будет списана, и ваши активы снова начнут приносить доход. + Чтобы продолжить зарабатывать, нужно выдать разрешение. + Подтвердить разрешение + Ваши средства в данный момент размещены в протоколе Aave, но вы можете воспользоваться ими в любое время. + Ваш %s внесён в Aave Невозможно загрузить график Полученная сумма, %1$s %2$s, не была зачислена на Aave. - Сетевая комиссия сейчас слишком высокая. Ожидаем, пока она упадёт ниже вашего лимита. + APY %1$s%% + Доступно + Текущий APY + Мои средства + Ваши %1$s теперь внесён в Aave и приносит проценты. У вас есть токен %2$s, который отражает ваш баланс и со временем увеличивается. При пополнении средства автоматически направляются в Aave для получения процентов за вычетом комиссии за транзакцию. + Итоговый доход + Переводы в Aave + Изучите Aave + Это текущая комиссия в сети %s. + Текущая комиссия + Все следующие пополнения %s автоматически поступят в Aave с удержанием комиссии за транзакцию. + Если комиссия сети превысит максимальный лимит, транзакция не будет выполнена до тех пор, пока комиссия не снизится. Вы сможете изменить этот лимит позже. + Максимальная комиссия + Это минимальный депозит, который можно отправить в Aave. Чтобы депозиты оставались прибыльными, мы не обрабатываем их, когда комиссия сети превышает %1$s%2$sот суммы. + Минимальный депозит + Политика комиссий + Tangem взимает комиссию за обслуживание в размере 15% от полученного дохода. + Ваши средства будут автоматически переведены в Aave, как только комиссия сети снизится или баланс достигнет минимально необходимой суммы. Историческая доходность + Разрешение для вашего токена в Yield сервисе было отозвано. Откройте токен, чтобы выдать разрешение снова. + Необходимо разрешение для токена Проверьте ваше интернет соединение - Годовая доходность - Сервис начисления процентов в данный момент недоступен. Пожалуйста, попробуйте позже. - Данные о доходе недоступны + Информация о комиссии недоступна + Каждое пополнение вашего адреса автоматически будет отправляться в Aave. + Автоперевод в AAVE + Отправляйте, обменивайте или продавайте свои средства мгновенно, когда захотите. + Мгновенный вывод средств + Как это работает? + Aave — это децентрализованный протокол, управляющий активами на сумму более 61 миллиарда долларов США. + Децентрализованный и некастодиальный + Используя сервис, вы соглашаетесь с условиями провайдера %1$s и %2$s + Подключить Aave + Aave %1$s%%• Ставка с плавающим процентом + Aave + Сред. %s + Доходность за прошлый год + Текущая процентная ставка всегда переменная и автоматически рассчитывается смарт-контрактом AAVE в блокчейне на основе текущего спроса и предложения. + При поддержке + Ставка может меняться + При пополнении ваши средства автоматически отправляются в Aave для начала начисления процентов. Для покрытия комиссии с вас будет удержана небольшая плата в размере %s. + Начать зарабатывать + Ваш %s будет передан в Aave и останется всегда доступным. + Политика комиссий + Следующие пополнения вашего счёта автоматически поступят в Aave. + Активен + На паузе + Завершить заработок + Выключив эту функцию, вы выведёте средства из Aave, получите их обратно в %s в своем кошельке и перестанете зарабатывать награды. + Комиссия сети будет вычтена из суммы вашего вывода. + Годовая доходность (APY) + APY + Проценты начисляются автоматически. + Режим доходности + Отправка ваших средств + Автоматически + Внесите немного %1$s %2$s, чтобы покрыть комиссию сети за транзакции. + Невозможно покрыть комиссию в %s + Сервис доходности в данный момент недоступен. Пожалуйста, попробуйте позже. + Режим доходности недоступен Невозможно загрузить график diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml index 4e66cabc58..936f193cce 100644 --- a/core/res/src/main/res/values-uk-rUA/strings.xml +++ b/core/res/src/main/res/values-uk-rUA/strings.xml @@ -629,6 +629,8 @@ Купити криптовалюту Насолоджуйтесь **нульовою комісією** при купівлі криптовалюти через перекази SEPA. Купуйте криптовалюту через SEPA + Приєднуйтесь до списку очікування та отримайте унікальну платіжну картку, якої ще не було. + Tangem Visa Card Налаштуйте єдиний код доступу для захисту всіх ваших карток або кілець Захист Встановіть індивідуальний код доступу для кожної картки або кільця пізніше. @@ -1086,6 +1088,7 @@ Web 3.0 сумісність Для відправки потрібна вхідна транзакція на суму не менше %1$s Недостатньо коштів + Підтверджуючи, ви дозволяєте смартконтракту використовувати ваші токени в майбутніх транзакціях. Мережа стягує комісію за схвалення токену за підтвердження, що саме ви дозволяєте використовувати ваш токен для обміну. Обмінюйте більше токенів за вигіднішим курсом прямо у своєму гаманці. З\'явився новий провайдер обмінів! @@ -1366,6 +1369,7 @@ Обрана не вірна картка або кільце Схоже, виникла проблема Усі dApps відключені + Підтверджуючи, ви дозволяєте dApp або смартконтракту використовувати токени в майбутніх транзакціях. Адреса Підключення Мережа @@ -1430,4 +1434,80 @@ Ні, відправити все Зменшити на %s XTZ Щоб не платити підвищену комісію при наступному поповненні гаманця, зменште суму на %s XTZ + З активним режимом дохідності всі майбутні депозити на цю адресу будуть надходити до Aave. Ви все ще можете вільно розпоряджатися своїми коштами. + Ваш %s внесений до Aave + Передача %1$s %2$s до Aave очікується + Дати згоду + Схвалення для вашого токена було відкликано. Надайте його знову, щоб відновити роботу сервісу. + Потрібне схвалення + Комісія буде знята, а ваші активи знову почнуть приносити дохід. + Щоб продовжити заробляти, потрібне схвалення. + Підтвердити дозвіл + Наразі ваші кошти розміщені у протоколі Aave, але ви можете керувати ними в будь-який час. + Ваш %s внесений у Aave + Неможливо завантажити графік + Отримана сума, %1$s %2$s не була зарахована на Aave. + APY %1$s%% + Доступно + Поточний APY + При поповненні для кредитування з балансу буде вирахувано комісію мережі, що не перевищує %1$s. + Наразі мережева комісія є занадто високою, щоб здійснювати кредитування. Кошти будуть надані, як тільки вона знизиться до %1$s або нижче. + Мої кошти + Ваші %1$s тепер розміщено в Aave і приносить дохід. У вас є токен %2$s, який представляє ваш баланс і з часом збільшується. При поповненні кошти автоматично направляються в Aave для отримання процентів з вирахуванням комісії за транзакцію. + Режим дохідності + Підсумковий дохід + Перекази в Aave + Дослідити Aave + Це поточна комісія у мережі %s. + Поточна комісія + Усі майбутні депозити %s будуть надходити до Aave автоматично, з вирахуванням комісії за транзакцію. + Приблизна мережева плата в розмірі %1$s (%2$s) буде вираховуватися з кожного наступного поповнення, і вона не перевищуватиме ваш ліміт %3$s (%4$s). + Якщо мережеві комісії перевищують максимальну комісію, транзакція не пройде, поки вони не знизяться. Ви можете змінити цей ліміт пізніше. + Максимальна комісія + Це найменший депозит, який можна надіслати в Aave. Щоб депозити залишалися прибутковими, ми не обробляємо їх, коли комісія мережі перевищує %1$s%2$s від суми. + Мінімальне поповнення + Політика комісій + Tangem комісію за обслуговування у розмірі 15% від отриманого доходу. + Ваші кошти будуть автоматично переведені у Aave, як тільки мережеві комісії знизяться або ваш баланс досягне мінімально необхідної суми. + Історична прибутковість + Дозвіл для вашого токена в режимі Yield було відкликано. Відкрийте токен, щоб надати дозвіл знову. + Потрібний дозвіл для токену + Перевірте підключення до мережі + Інформація про комісію недоступна + Кожен ваш депозит буде автоматично надходити до Aave. + Автопереказ до AAVE + Відправляйте, обмінюйте або продавайте свої кошти миттєво, в будь-який час. + Миттєвий вивід коштів + Як це працює? + Aave — це децентралізований протокол, який управляє активами загальною вартістю понад 61 мільярд доларів. + Децентралізований та некастодіальний + Використовуючи сервіс, ви погоджуєтесь з умовами провайдера %1$s та %2$s + Підключити Aave + Aave %1$s%% • Ставка з плаваючим відсотком + Аave + Серед. %s + Дохідність за минулий рік + Поточна відсоткова ставка завжди змінна і автоматично розраховується смарт-контрактом Aave у блокчейні на основі попиту та пропозиції в режимі реального часу. + При підтримці + Ставка може змінюватися + Коли ви поповнюєте рахунок, ваші кошти автоматично надсилатимуться на Aave, щоб почати нараховувати відсотки. Для покриття комісії з вас буде утримана невелика плата у розмірі %s. + Почати заробляти + Ваш %s буде передано до Aave, і залишиться завжди доступним. + Політика комісій + Ваші наступні поповнення рахунку автоматично надходитимуть до Aave. + Активний + На паузі + Завершити заробіток + Вимкнення цієї опції виведе ваші активи з Aave, отримаєте їх назад у %s у вашому гаманці і зупинить накопичення нагород. + Комісія мережі буде вирахувана з суми, яку ви знімаєте. + Річна прибутковість (APY) + APY + Відсотки нараховуються автоматично + Режим дохідності + Відправка ваших коштів + Автоматично + Внесіть трохи %1$s %2$s, щоб покрити комісію мережі за транзакції. + Неможливо покрити комісію в %s + Сервіс доходності у даний час недоступний. Будь ласка, спробуйте пізніше. + Режим дохідності недоступний diff --git a/core/res/src/main/res/values-zh-rTW/strings.xml b/core/res/src/main/res/values-zh-rTW/strings.xml index 713520796a..2e0760aa10 100644 --- a/core/res/src/main/res/values-zh-rTW/strings.xml +++ b/core/res/src/main/res/values-zh-rTW/strings.xml @@ -275,6 +275,7 @@ 掃描卡片 掃描卡片以更改其設置。這些更改只會影響您掃描過的卡,不會影響綁定到您錢包的其他卡。 準備好您的卡! + 安全警示: 數量 地址與錢包地址相同 最小數量是 %s @@ -338,6 +339,7 @@ 用 %s 解鎖全部 區塊鍊無法使用。稍後再試 掃描卡片 + 此钱包之前已被激活。\n如果不是您本人激活,请联系客服。\nTangem 绝不会出售附带预生成助记词的钱包。 請求籤署消息。%s Dapp %1$s,請求\n簽署 BNB 交易。\n%2$s %1$s 的交易訂單\n價格: %2$s\n接收金額:%3$s\n支付數量: %4$s diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index a6650d1da4..8b5e486e5f 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -22,13 +22,18 @@ You have already exceeded the limit of 20 active accounts. Archive one to recover. Can\'t recover account Archived + We couldn’t archive account. Please try again later. + This account participates in the referral program. + This account cannot be archived. We couldn’t create account. Please try again later. Account created Archive account Archive You are archiving this account, but you can always get it back. + Archiving... Account Account saved + Account for rewards Account #%s — used for address derivation. Add account Save @@ -40,6 +45,8 @@ Edit account %1$s in %2$s Main account + You have already exceeded the limit of %1$s active accounts. Archive one to recover + Can’t recover account Account recovered Long tap on an account to reorder accounts Keep Editing @@ -135,7 +142,7 @@ You have disabled biometric authentication on your phone and will not be able to save wallets in the app. To save wallets, please enable the biometric authentication function in your phone settings. An error occurred while processing your promo code. Please try again later. Activation error - Your promo code was successfully activated. A reward will be credited to your account within 14 days. + Your promo code was successfully activated. The reward will be credited to your Bitcoin account within 14 days. Promo Code Activated This promo code has already been used and cannot be activated again. Code unavailable @@ -178,11 +185,13 @@ Not enough ADA Accept Access denied + Account Accounts Activate Add Add to portfolio Add token + Added Address All Allow @@ -242,6 +251,7 @@ Enable Enabled Error + Network service fee Swap Explore Explore transaction history @@ -253,10 +263,12 @@ Slow Speed and fee Finish + Forget Free From Synchronize addresses Get started + Get token Go to provider Go to token Got it @@ -265,7 +277,7 @@ Import In progress Later - Learn more + Learn more %1$s left Legacy Bitcoin Locked @@ -297,6 +309,7 @@ %1$s — %2$s Read more Receive + Recommended Reject Reload Rename @@ -419,6 +432,7 @@ WalletConnect error You have used a card or ring from another wallet. Tap the card or ring associated with this wallet Not enough funds for the transaction. Please top up your account. + Swap any asset in your portfolio for this token My tokens You haven\'t added any tokens yet. Add tokens via Market to swap Cannot be swapped for %s @@ -474,6 +488,7 @@ Provider Best rate FCA Warning List + Best choice Provider in FCA warning list Available up to %s Available from %s @@ -509,7 +524,7 @@ An error occurred. Code: %s. Requires memo Transaction - Specify the approve limit for the selected token + By approving, you allow the smart contract to use your tokens in future transactions. Amount %s The Approve function is needed to grant permission to another address to use a specific amount of your tokens. By design, smart contracts can\'t access your tokens unless you approve. By \"unlocking\" your tokens, you authorize the StakeKit smart contract to use them. The network\'s miners receive a gas fee (paid by you) to record this action on the blockchain. You can stake your token after giving approval. To continue you need to allow Polygon smart contract to use your %s @@ -531,17 +546,24 @@ Complete setup by securing the app with an access code. If you do, you\'ll need to start over. Are you sure you want to quit the activation process? + Keeps your crypto safe and offline. Slim as a credit card, safer than a bank vault. If you do, you\'ll need to start over. Recover existing wallet via Google Drive backup Google Drive backup + Create a new secure wallet and transfer your funds for extra protection. + Create new wallet Level up your security with the superior Tangem hardware wallet. Hardware Wallet + Move your current wallet into Tangem Wallet. + Upgrade current wallet Go to backup Please back up your wallet before creating an access code. Finalize backup first Incomplete + Other methods Physical devices that securely store your private key offline. Recovery phrase + To upgrade your wallet to hardware, back it up first. Your private keys are securely encrypted and stored on your phone Keys are stored in the app Create or restore your wallet using a recovery phrase — your built-in backup. @@ -612,6 +634,7 @@ The selected token is currently unavailable for actions within the crypto wallet. But worry not, you can express your interest by upvoting it. Upvote The wallet doesn\'t support more than one network + About coin To buy, exchange, or receive this asset, add it to your portfolio This asset is currently not supported in the wallet This asset is not available for this wallet @@ -647,6 +670,7 @@ Trending Staking is the easiest way to receive rewards on your crypto. %s Earn up to %s APY + Token Added About %s %d exchange @@ -773,6 +797,8 @@ Buy crypto Enjoy **0% fees** when purchasing crypto via SEPA transfers. Buy Crypto with SEPA + Join the waitlist and get a payment card unlike any other + Tangem Visa Card Set up a single access code to protect all your devices. Protect Set an individual access code for each card or ring later. @@ -880,6 +906,7 @@ Other currencies Popular Fiats Search by currency + Fetching best rates... Instant By using onramp functionality, you agree with provider’s %1$s and %2$s Service is provided by an external provider.\nTangem is not responsible. @@ -911,6 +938,7 @@ up to %d days %s min + Available from You get Service is provided by an external provider. \nTangem is not responsible. You can close this screen and check the transaction status on the token details screen. @@ -975,6 +1003,10 @@ I realize that I can\'t use this card to recover my access code on the other cards of the current wallet Factory Reset will completely delete the wallet from the selected card or ring. You will not be able to restore the current wallet or use the card or ring to recover the access code. Factory Reset will completely delete the wallet from the selected card or ring and remove it from the app. You will not be able to restore the current wallet. + All Tangem devices have been reset. + Something went wrong with the activation process. Please reset the cards one by one. + Card verification failed + Please reset the next device to continue Ring owners get 3 commission-free swaps on Changelly until 15.11! Swap With 0% Fees Now! Log into the app and check your balance without scanning the card or ring @@ -1185,7 +1217,7 @@ Staking on the %1$s network with a new validator will automatically transfer all previously staked funds to this validator. Reinvests your earned rewards in your staked amount, increasing potential earnings. Restake lets you move your funds from one validator to another without the need to unstake - You’re about to stake your entire balance. We recommend leaving a small amount to cover network fees for unstaking or claiming rewards. + If you stake your entire balance, you’ll need to pay a network fee when you unstake. We recommend leaving a small amount in your wallet to cover network fees. To start staking, your TON account must be activated with a self-transaction of 1 TON. The funds stay in your wallet — this step only enables your account for staking. Account activation To start staking in TON, first send a small transaction to your own address — this will activate your wallet. @@ -1220,7 +1252,7 @@ Monthly Weekly Rewards - Rewards on Solana are automatically added to your staking balance and cannot be shown separately. + Rewards on Solana are automatically added to your staking balance and cannot be shown separately. Stake locked Stake more When staking %1$s, your entire %2$s balance is staked. Any additional %2$s you deposit to your Tangem Wallet will also be automatically staked. @@ -1293,8 +1325,34 @@ You receive Choose token not available + Deposit + Dispute + Explore transaction + Service fees + Fee + Completed + Declined + Pending + The bank rejected this transaction request. + This fee goes to cover the cost of handling your transfer. + Withdrawal + Change PIN + The card is fully ready for payments. + PIN code created Failed to load data. Try again later. + Freeze Card Hide + Open Google Wallet + Set up Tangem Pay in a few taps and start paying with Google Pay. + Add your card to Google Pay + Open Google Wallet + Tap “Add a card” + Enter the card details manually + Verify card using the OTP sent to your device. + All set! Your card is ready to use. + Add card to Google Pay + Technical issues detected. Please try again later or contact support. + Receive unavailable now Reveal Card details Create account and issue a card @@ -1326,6 +1384,7 @@ Sending funds will be available once the pending transaction(s) in network %s is complete Selling %s is not supported by current providers, but we are working to add more options. Staking %s is not supported by current providers, but we are working to add more options. + Approval has been revoked. Your funds remain in Yield mode. To perform actions, please go to Yield mode and grant permission again. Generate XPUB Hide You are about to hide this token from the main screen. You can add it back anytime through the manage tokens page. @@ -1386,9 +1445,10 @@ Early access to fresh features and exclusive offers. Feature and News Updates Would you like to use\nPush-notifications? - Enable push notifications and we’ll notify you instantly when funds arrive\n - Don’t Miss a Transaction + Enable push notifications to receive alerts when funds arrive in your wallet. + Don\'t Miss a Transaction Add new wallet + If you delete this wallet without a backup, you will permanently lose access to your funds Are you sure you want to forget this wallet? An error has occurred, please scan your card or ring to log in This wallet has already been saved, you can add another one @@ -1465,6 +1525,13 @@ Unlock Scan your card to unlock access Needed unlock + Choose how to add your wallet + Scan your Tangem card or ring to restore it or import from another wallet. + Create Hardware Wallet + Want to purchase a Tangem Wallet? + Import seed phrase + Restore your wallet on your phone or import from another app — convenient, but less secure than a Tangem card. + What to choose? Blockchain is unreachable. Try later Scan card or ring This wallet has already been activated earlier.\nIf it was not done by you, please contact support.\nTangem never sells wallets along with pre-generated access codes. @@ -1504,6 +1571,7 @@ Connect to dApps WalletConnect Connecting may take a few seconds + Create Tangem Wallet From %s Buy Tangem Wallet—a physical device that securely stores your private key offline. Hardware Wallet @@ -1759,76 +1827,84 @@ No, send all Reduce by %s XTZ To avoid paying an increased commission the next time you top up your wallet, reduce the amount by %s XTZ - Text about your money in balance [PLACEHOLDER] - Your %s is deposited in Aave + With Yield mode active, all future deposits to this address will go to Aave. You can still manage your funds freely. + Your %s is supplied to Aave + Supplying %1$s %2$s to Aave is pending Give Approve - Something went wrong with your previous approval, so we need a new one. Choose how you’d like to proceed. + Your token’s approval has been revoked. Grant it again to resume service functionality. Approve needed The fee will be taken out, and your assets will be lent again. To continue earning, approval is required. Confirm approval - Text about your money in balance [PLACEHOLDER] + Your funds are currently supplied to the Aave protocol, but you can manage them at any time. Your %s is deposited in Aave Unable to load chart... - The amount received, %1$s %2$s was not deposited to Aave. - Earn %1$s%% + The amount received, %1$s %2$s was not supplied to Aave. + APY %1$s%% Available Current APY - My Funds - Your %1$s is now deposited in Aave and earning interest. You hold a%2$s token, which represents your balance and grows over time. When you top up, funds go to Aave to earn interest, minus a transaction fee. - Earn + When topping up for lending, a network fee not exceeding %1$s will be deducted from the balance. + The network fee is currently too high to execute lending. Funds will be supplied once it drops to %1$s or below. + My funds + Your %1$s is now deployed to Aave and earning yield. You hold %2$s tokens, which represent your balance and accrue yield automatically. When you top up, funds are added to Aave to earn more yield, minus fees. + Yield mode Total earnings Transfers to Aave Explore Aave - Your %s is deposited in Aave - This is the current supply fee on %s. The live cost will be shown on the Receive Screen. + This is the current supply fee on %s. The actual cost will be shown on the activation tab. Current fee - All future %s top-ups will be supplied to Aave automatically, with the transaction fee deducted. + All future %s deposits will be supplied to Aave automatically, with the transaction fee deducted. + An approximate network fee of %1$s (%2$s) will be deducted from each future top-up, and it won’t exceed your %3$s (%4$s) limit. If network fees rise above maximum fee, the transaction won’t go through until they decrease. You can change this limit later. Maximum fee + The minimum amount is calculated from the current network fee to ensure it does not exceed 4%%, which makes the minimum %1$s (%2$s). + Minimum top-up Fee policy - Network fee is too high right now. Waiting until it falls below your limit. + Tangem also takes a 15% service fee on yield earned. + Your funds will be automatically supplied to Aave once network fees are lower or your balance meets the minimum required amount. Historical returns - Write description here. In one, two or three lines will be awesome. [PLACEHOLDER] - Some token approve needed + Approval for your token in the Yield mode has been revoked. Open the token to grant permission again. + Token approval needed Check your network connection Network fee info unreachable - Every top-up of your account will be lended to Aave automatically. - Your balance works automatically + Every deposit you make will be supplied to Aave automatically. + Auto-Transfer to Aave Send, swap, or sell your funds instantly, anytime you want. - Cash out instantly + Access your funds anytime How it works? - Aave is trusted by millions worldwide. Total lended value is $10.4B. + Aave is a decentralized protocol managing over $61 billion in total value. Decentralized and self-custodial - By using service, you agree with provider\n%1$s and %2$s - Earn %s%% yearly - Aave • Variable Interest Rate + By using this service, you agree with provider\n%1$s and %2$s + Connect Aave + Aave %1$s%% • Variable Interest Rate Aave Avg %s - Last year returns - Current interest rate is always variable and automatically computed by AAVE on-chain smart-contract based on real-time supply and demand. + Last year\'s returns + Current interest rate is always variable and automatically computed by the Aave on-chain smart-contract, based on real-time supply and demand. Powered by Interest rate is variable - When you top up, your funds will be automatically sent to Aave to start earning interest. A small fee equal to %s will be deducted to cover the transaction. - Start earning - Your %s will be supplied to Aave and will stay instantly available + When you top up, your funds will be automatically sent to Aave to start earning interest. %s will be deducted to cover the transaction fee. + Supply assets + Your %s will be supplied to Aave, but will remain manageable. See fee policy - Your next deposits will be automatically supplied to Aave. + Your next top-ups will be automatically supplied to Aave. Active Paused - Stop earning - Turning off will withdraw your funds from Aave, return them to %s in your wallet, and stop earning rewards. + Disable yield mode + Turning this off will withdraw your assets from Aave, convert them back to %s in your wallet, and stop yield accrual. The network fee will be deducted from the amount you withdraw. - Supply APR + Supply + Supply APY APY - Make your money work — earn interest on your balance. - Earning on your balance + Interest accrues automatically + Interest accrues automatically + Yield mode Processing your deposit - Earn %1$s%% per year + Yield Mode Automatic Deposit some %1$s %2$s to cover the network fee for transactions Unable to cover %s fee - The interest service isn’t available at the moment. Please try again later. - Earnings unavailable + The Yield mode service isn’t available at the moment. Please try again later. + Yield mode unavailable Unable to load chart... diff --git a/core/ui/src/main/res/drawable/img_visa_waitlist_promo.webp b/core/ui/src/main/res/drawable/img_visa_waitlist_promo.webp new file mode 100644 index 0000000000000000000000000000000000000000..6da45900589e72a54bffa438bbaf439671cf104d GIT binary patch literal 13438 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 literal 0 HcmV?d00001 diff --git a/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt b/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt index 09b1d25af8..a0dada9a61 100644 --- a/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt +++ b/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt @@ -18,13 +18,13 @@ import com.tangem.domain.promo.models.PromoId import com.tangem.domain.promo.models.StoryContent import com.tangem.feature.referral.domain.ReferralRepository import com.tangem.utils.coroutines.CoroutineDispatcherProvider +import com.tangem.utils.coroutines.runCatching import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.mapLatest import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeoutOrNull -import com.tangem.utils.coroutines.runCatching internal class DefaultPromoRepository( private val tangemApi: TangemTechApi, @@ -49,6 +49,11 @@ internal class DefaultPromoRepository( PromoId.Sepa -> { val isActive = getSepaPromoBanner()?.isActive ?: false + isActive && shouldShow + } + PromoId.VisaPresale -> { + val isActive = getVisaPromoBanner()?.isActive ?: false + isActive && shouldShow } } @@ -59,6 +64,7 @@ internal class DefaultPromoRepository( return when (promoId) { PromoId.Referral -> flowOf(false) PromoId.Sepa -> flowOf(false) + PromoId.VisaPresale -> flowOf(false) } } @@ -134,8 +140,17 @@ internal class DefaultPromoRepository( }.getOrNull() } + private suspend fun getVisaPromoBanner(): PromoBanner? { + return runCatching(dispatchers.io) { + promoBannerConverter.convert( + tangemApi.getPromoBanner(VISA_NAME).getOrThrow(), + ) + }.getOrNull() + } + private companion object { const val SEPA_NAME = "sepa" + const val VISA_NAME = "visa-waitlist" const val STORIES_LOAD_DELAY = 1000L } } \ No newline at end of file diff --git a/domain/promo/models/src/main/java/com/tangem/domain/promo/models/PromoBanner.kt b/domain/promo/models/src/main/java/com/tangem/domain/promo/models/PromoBanner.kt index 7605016350..452445b991 100644 --- a/domain/promo/models/src/main/java/com/tangem/domain/promo/models/PromoBanner.kt +++ b/domain/promo/models/src/main/java/com/tangem/domain/promo/models/PromoBanner.kt @@ -28,4 +28,5 @@ data class PromoBanner( enum class PromoId { Referral, Sepa, + VisaPresale, } \ No newline at end of file diff --git a/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowPromoWalletUseCase.kt b/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowPromoWalletUseCase.kt index 0fd7070d88..396e1d8e90 100644 --- a/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowPromoWalletUseCase.kt +++ b/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowPromoWalletUseCase.kt @@ -29,7 +29,9 @@ class ShouldShowPromoWalletUseCase( if (!isReady) return false return when (promoId) { - PromoId.Referral -> true + PromoId.Referral, + PromoId.VisaPresale, + -> true PromoId.Sepa -> { val walletFirstUsageDate = settingsRepository.getWalletFirstUsageDate() if (walletFirstUsageDate == 0L) return false @@ -39,6 +41,7 @@ class ShouldShowPromoWalletUseCase( } } } + suspend fun neverToShow(promoId: PromoId) = promoRepository.setNeverToShowWalletPromo(promoId) private companion object { diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt index 55390d5b9e..3fefac571e 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletWarningsClickIntents.kt @@ -3,16 +3,17 @@ package com.tangem.feature.wallet.child.wallet.model.intents import arrow.core.getOrElse import com.tangem.common.TangemBlogUrlBuilder import com.tangem.common.routing.AppRoute +import com.tangem.common.routing.AppRoute.Onramp +import com.tangem.common.routing.AppRoute.ReferralProgram import com.tangem.common.routing.AppRouter import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.decompose.di.ModelScoped import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.ui.extensions.resourceReference -import com.tangem.domain.wallets.usecase.DerivePublicKeysUseCase import com.tangem.domain.card.SetCardWasScannedUseCase -import com.tangem.domain.feedback.GetWalletMetaInfoUseCase import com.tangem.domain.core.wallets.UserWalletsListRepository +import com.tangem.domain.feedback.GetWalletMetaInfoUseCase import com.tangem.domain.feedback.SendFeedbackEmailUseCase import com.tangem.domain.feedback.models.FeedbackEmailType import com.tangem.domain.models.currency.CryptoCurrency @@ -28,9 +29,11 @@ import com.tangem.domain.settings.NeverToSuggestRateAppUseCase import com.tangem.domain.settings.RemindToRateAppLaterUseCase import com.tangem.domain.staking.StakingIdFactory import com.tangem.domain.staking.multi.MultiYieldBalanceFetcher -import com.tangem.domain.tokens.model.analytics.TokenSwapPromoAnalyticsEvent +import com.tangem.domain.tokens.model.analytics.TokenSwapPromoAnalyticsEvent.Program +import com.tangem.domain.tokens.model.analytics.TokenSwapPromoAnalyticsEvent.PromotionBannerClicked import com.tangem.domain.wallets.legacy.UserWalletsListManager.Lockable.UnlockType import com.tangem.domain.wallets.models.UnlockWalletsError +import com.tangem.domain.wallets.usecase.DerivePublicKeysUseCase import com.tangem.domain.wallets.usecase.GetUserWalletUseCase import com.tangem.domain.wallets.usecase.SeedPhraseNotificationUseCase import com.tangem.domain.wallets.usecase.UnlockWalletsUseCase @@ -285,11 +288,12 @@ internal class WalletWarningsClickIntentsImplementor @Inject constructor( analyticsEventHandler.send( when (promoId) { PromoId.Referral -> MainScreen.ReferralPromoButtonDismiss - PromoId.Sepa -> TokenSwapPromoAnalyticsEvent.PromotionBannerClicked( + PromoId.Sepa -> PromotionBannerClicked( source = AnalyticsParam.ScreensSources.Main, - program = TokenSwapPromoAnalyticsEvent.Program.Sepa, - action = TokenSwapPromoAnalyticsEvent.PromotionBannerClicked.BannerAction.Closed, + program = Program.Sepa, + action = PromotionBannerClicked.BannerAction.Closed, ) + PromoId.VisaPresale -> MainScreen.VisaWaitlistPromoDismiss }, ) @@ -303,19 +307,19 @@ internal class WalletWarningsClickIntentsImplementor @Inject constructor( when (promoId) { PromoId.Referral -> { analyticsEventHandler.send(MainScreen.ReferralPromoButtonParticipate) - appRouter.push(AppRoute.ReferralProgram(userWalletId = userWallet.walletId)) + appRouter.push(ReferralProgram(userWalletId = userWallet.walletId)) } PromoId.Sepa -> { analyticsEventHandler.send( - TokenSwapPromoAnalyticsEvent.PromotionBannerClicked( + PromotionBannerClicked( source = AnalyticsParam.ScreensSources.Main, - program = TokenSwapPromoAnalyticsEvent.Program.Sepa, - action = TokenSwapPromoAnalyticsEvent.PromotionBannerClicked.BannerAction.Clicked, + program = Program.Sepa, + action = PromotionBannerClicked.BannerAction.Clicked, ), ) cryptoCurrency ?: return appRouter.push( - AppRoute.Onramp( + Onramp( userWalletId = userWallet.walletId, currency = cryptoCurrency, source = OnrampSource.SEPA_BANNER, @@ -323,6 +327,10 @@ internal class WalletWarningsClickIntentsImplementor @Inject constructor( ), ) } + PromoId.VisaPresale -> { + analyticsEventHandler.send(MainScreen.VisaWaitlistPromoJoin) + urlOpener.openUrl(VISA_PROMO_LINK) + } } } @@ -472,4 +480,10 @@ internal class WalletWarningsClickIntentsImplementor @Inject constructor( null } } + + private companion object { + const val VISA_PROMO_LINK = "https://tangem.com/en/cardwaitlist/?utm_source=tangem-app-banner" + + "&utm_medium=banner" + + "&utm_campaign=tangempaywaitlist" + } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt index 386d7faea0..cb05fdf078 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt @@ -143,5 +143,11 @@ sealed class WalletScreenAnalyticsEvent { data object ReferralPromoButtonParticipate : MainScreen(event = "Button - Referral Participate") data object ReferralPromoButtonDismiss : MainScreen(event = "Button - Referral Dismiss") //endregion + + // region visa waitlist promo + data object VisaWaitlistPromo : MainScreen(event = "Visa Waitlist") + data object VisaWaitlistPromoJoin : MainScreen(event = "Button - Join Now") + data object VisaWaitlistPromoDismiss : MainScreen(event = "Button - Close") + //endregion } } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt index bd539e7397..47eae5ba1f 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt @@ -58,6 +58,7 @@ internal class WalletWarningsAnalyticsSender @Inject constructor( program = Program.Sepa, ) is WalletNotification.ReferralPromo -> MainScreen.ReferralPromo + is WalletNotification.VisaPresalePromo -> MainScreen.VisaWaitlistPromo is WalletNotification.UnlockWallets -> null // See [SelectedWalletAnalyticsSender] is WalletNotification.Informational.NoAccount, is WalletNotification.Warning.LowSignatures, diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt index 7de4aeda99..72cf06f055 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/domain/GetMultiWalletWarningsFactory.kt @@ -63,9 +63,9 @@ internal class GetMultiWalletWarningsFactory @Inject constructor( flow2 = isReadyToShowRateAppUseCase(), flow3 = isNeedToBackupUseCase(userWallet.walletId), flow4 = seedPhraseNotificationUseCase(userWalletId = userWallet.walletId), - flow5 = shouldShowPromoWalletUseCase(userWalletId = userWallet.walletId, promoId = PromoId.Referral), + flow5 = shouldShowPromoWalletUseCase(userWalletId = userWallet.walletId, promoId = PromoId.VisaPresale), flow6 = shouldShowPromoWalletUseCase(userWalletId = userWallet.walletId, promoId = PromoId.Sepa), - ) { maybeTokenList, isReadyToShowRating, isNeedToBackup, seedPhraseIssueStatus, shouldShowReferralPromo, shouldShowSepaBanner -> + ) { maybeTokenList, isReadyToShowRating, isNeedToBackup, seedPhraseIssueStatus, shouldShowVisaPresalePromo, shouldShowSepaBanner -> buildList { addUsedOutdatedDataNotification(maybeTokenList) @@ -73,7 +73,7 @@ internal class GetMultiWalletWarningsFactory @Inject constructor( addFinishWalletActivationNotification(userWallet, maybeTokenList, clickIntents) - addReferralPromoNotification(cardTypesResolver, clickIntents, shouldShowReferralPromo) + addVisaPresalePromoNotification(clickIntents, shouldShowVisaPresalePromo) addSepaPromoNotification(userWallet, clickIntents, shouldShowSepaBanner) @@ -220,17 +220,16 @@ internal class GetMultiWalletWarningsFactory @Inject constructor( .map(CryptoCurrencyStatus::currency) } - private fun MutableList.addReferralPromoNotification( - cardTypesResolver: CardTypesResolver?, + private fun MutableList.addVisaPresalePromoNotification( clickIntents: WalletClickIntents, shouldShowPromo: Boolean, ) { addIf( - element = WalletNotification.ReferralPromo( - onCloseClick = { clickIntents.onClosePromoClick(promoId = PromoId.Referral) }, - onClick = { clickIntents.onPromoClick(promoId = PromoId.Referral) }, + element = WalletNotification.VisaPresalePromo( + onCloseClick = { clickIntents.onClosePromoClick(promoId = PromoId.VisaPresale) }, + onClick = { clickIntents.onPromoClick(promoId = PromoId.VisaPresale) }, ), - condition = shouldShowPromo && (cardTypesResolver == null || cardTypesResolver.isTangemWallet()), + condition = shouldShowPromo, ) } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt index c7bfe00b92..1dddf54656 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/state/model/WalletNotification.kt @@ -293,6 +293,23 @@ sealed class WalletNotification(val config: NotificationConfig) { ), ) + data class VisaPresalePromo( + val onCloseClick: () -> Unit, + val onClick: () -> Unit, + ) : WalletNotification( + config = NotificationConfig( + title = resourceReference(R.string.notification_visa_waitlist_promo_title), + subtitle = resourceReference(R.string.notification_visa_waitlist_promo_text), + iconResId = R.drawable.img_visa_waitlist_promo, + onCloseClick = onCloseClick, + buttonsState = NotificationConfig.ButtonsState.SecondaryButtonConfig( + text = resourceReference(R.string.notification_referral_promo_button), + onClick = onClick, + ), + iconSize = 54.dp, + ), + ) + data class Sepa( val onCloseClick: () -> Unit, val onClick: () -> Unit, diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/warning/ui/YieldSupplyDepositedWarningContent.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/warning/ui/YieldSupplyDepositedWarningContent.kt index 9f4529e86f..4a07dbf93a 100644 --- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/warning/ui/YieldSupplyDepositedWarningContent.kt +++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/warning/ui/YieldSupplyDepositedWarningContent.kt @@ -109,7 +109,7 @@ private fun Content(warningUM: YieldSupplyDepositedWarningUM) { Text( textAlign = TextAlign.Center, - text = stringResourceSafe(R.string.yield_module_explore_sheet_title, warningUM.network), + text = stringResourceSafe(R.string.yield_module_balance_info_sheet_title, warningUM.network), style = TangemTheme.typography.h3, color = TangemTheme.colors.text.primary1, ) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index fa35702753..2131556125 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.29-1268" +tangemBlockchainSdk = "releases-5.29-1295" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "releases-5.29-565" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/ProviderTypeIdMapping.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/ProviderTypeIdMapping.kt index 831222402b..60a17a7b6c 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/ProviderTypeIdMapping.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/providers/ProviderTypeIdMapping.kt @@ -25,6 +25,6 @@ internal enum class ProviderTypeIdMapping(val id: String, val providerType: Prov KoinosPro(id = "koinospro", providerType = ProviderType.Koinos.KoinosPro), AlephiumTangem(id = "tangemAlephium", providerType = ProviderType.Alephium.Tangem), Blink(id = "blink", providerType = ProviderType.Blink), - Tatum(id = "tatum", providerType = ProviderType.Kusama.Tatum), + Tatum(id = "tatum", providerType = ProviderType.PolkadotLike.Tatum), ; } \ No newline at end of file diff --git a/tangem-android-tools b/tangem-android-tools index 6ef084d2b8..193db8a024 160000 --- a/tangem-android-tools +++ b/tangem-android-tools @@ -1 +1 @@ -Subproject commit 6ef084d2b8bcc4f94d40f38dcdab096c2f0a082b +Subproject commit 193db8a0247a1f33574dcdd5f9ec4dab2c28ea73