Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-06 12:37:22 +05:00
parent af88b092a2
commit d38b62a559
25 changed files with 199 additions and 340 deletions

View file

@ -120,11 +120,13 @@
<string name="common_add_token">Token hinzufügen</string> <string name="common_add_token">Token hinzufügen</string>
<string name="common_all">Alle</string> <string name="common_all">Alle</string>
<string name="common_allow">Erlauben</string> <string name="common_allow">Erlauben</string>
<string name="common_amount">Betrag</string>
<string name="common_analytics">Analysen</string> <string name="common_analytics">Analysen</string>
<string name="common_apply">Anwenden</string> <string name="common_apply">Anwenden</string>
<string name="common_approval">Genehmigung</string> <string name="common_approval">Genehmigung</string>
<string name="common_approve">Genehmigen</string> <string name="common_approve">Genehmigen</string>
<string name="common_attention">Achtung</string> <string name="common_attention">Achtung</string>
<string name="common_available_networks">Verfügbare Netzwerke</string>
<string name="common_backup">Sicherungskopie</string> <string name="common_backup">Sicherungskopie</string>
<string name="common_balance">Bilanz: %s</string> <string name="common_balance">Bilanz: %s</string>
<string name="common_balance_title">Saldo</string> <string name="common_balance_title">Saldo</string>
@ -139,6 +141,7 @@
<string name="common_choose_action">Aktion wählen</string> <string name="common_choose_action">Aktion wählen</string>
<string name="common_choose_network">Netzwerk auswählen</string> <string name="common_choose_network">Netzwerk auswählen</string>
<string name="common_choose_token">Token auswählen</string> <string name="common_choose_token">Token auswählen</string>
<string name="common_choose_wallet">Wallet auswählen</string>
<string name="common_claim">Beanspruchen</string> <string name="common_claim">Beanspruchen</string>
<string name="common_claim_rewards">Stakingbelohnungen beanspruchen</string> <string name="common_claim_rewards">Stakingbelohnungen beanspruchen</string>
<string name="common_close">Schließen</string> <string name="common_close">Schließen</string>
@ -165,6 +168,7 @@
<string name="common_disabled">Deaktiviert</string> <string name="common_disabled">Deaktiviert</string>
<string name="common_disconnect">Trennen</string> <string name="common_disconnect">Trennen</string>
<string name="common_done">Erledigt</string> <string name="common_done">Erledigt</string>
<string name="common_edit">Bearbeiten</string>
<string name="common_enable">Aktivieren</string> <string name="common_enable">Aktivieren</string>
<string name="common_enabled">Aktiviert</string> <string name="common_enabled">Aktiviert</string>
<string name="common_error">Fehler</string> <string name="common_error">Fehler</string>
@ -199,6 +203,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">Nein</string> <string name="common_no">Nein</string>
<string name="common_no_address">Keine Adresse</string> <string name="common_no_address">Keine Adresse</string>
<string name="common_not_added">Nicht hinzugefügt</string>
<string name="common_now">Jetzt</string> <string name="common_now">Jetzt</string>
<string name="common_ok">OK</string> <string name="common_ok">OK</string>
<string name="common_open_in_browser">Im Browser öffnen</string> <string name="common_open_in_browser">Im Browser öffnen</string>
@ -474,14 +479,12 @@
<string name="manage_tokens_toast_portfolio_updated">Dein Portfolio wurde aktualisiert</string> <string name="manage_tokens_toast_portfolio_updated">Dein Portfolio wurde aktualisiert</string>
<string name="manage_tokens_unavailable_description">Der ausgewählte Token ist derzeit nicht für Aktionen innerhalb der Krypto-Wallet verfügbar. Aber keine Sorge, du kannst dein Interesse bekunden, indem du den Token hochstufen.</string> <string name="manage_tokens_unavailable_description">Der ausgewählte Token ist derzeit nicht für Aktionen innerhalb der Krypto-Wallet verfügbar. Aber keine Sorge, du kannst dein Interesse bekunden, indem du den Token hochstufen.</string>
<string name="manage_tokens_unavailable_vote">Hochstimmen</string> <string name="manage_tokens_unavailable_vote">Hochstimmen</string>
<string name="manage_tokens_wallet_selector_title">Wallet auswählen</string>
<string name="manage_tokens_wallet_support_only_one_network_title">Das Wallet unterstützt nicht mehr als ein Netzwerk</string> <string name="manage_tokens_wallet_support_only_one_network_title">Das Wallet unterstützt nicht mehr als ein Netzwerk</string>
<string name="markets_add_to_my_portfolio_description">Um dieses Asset zu kaufen, zu tauschen oder zu erhalten, füge diesen Deinem Portfolio hinzu</string> <string name="markets_add_to_my_portfolio_description">Um dieses Asset zu kaufen, zu tauschen oder zu erhalten, füge diesen Deinem Portfolio hinzu</string>
<string name="markets_add_to_my_portfolio_unavailable_description">Dieses Asset wird derzeit in der Wallet nicht unterstützt.</string> <string name="markets_add_to_my_portfolio_unavailable_description">Dieses Asset wird derzeit in der Wallet nicht unterstützt.</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Dieses Asset ist für dieses Wallet nicht verfügbar</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Dieses Asset ist für dieses Wallet nicht verfügbar</string>
<string name="markets_add_token">Hinzufügen</string> <string name="markets_add_token">Hinzufügen</string>
<string name="markets_apy_placeholder">APY %s</string> <string name="markets_apy_placeholder">APY %s</string>
<string name="markets_available_networks">Verfügbare Netzwerke</string>
<string name="markets_common_my_portfolio">Mein Portfolio</string> <string name="markets_common_my_portfolio">Mein Portfolio</string>
<string name="markets_common_title">Markt</string> <string name="markets_common_title">Markt</string>
<string name="markets_generate_addresses_notification">Um Adressen für ausgewählte Netzwerke zu generieren, musst du eine Tangem-Karte oder Ring scannen</string> <string name="markets_generate_addresses_notification">Um Adressen für ausgewählte Netzwerke zu generieren, musst du eine Tangem-Karte oder Ring scannen</string>
@ -615,7 +618,6 @@
<string name="nft_receive_title">NFT erhalten</string> <string name="nft_receive_title">NFT erhalten</string>
<string name="nft_receive_unavailable_asset_warning_message">Du hast dieses Netzwerk noch nicht hinzugefügt. Um NFTs zu erhalten, füge es Deinem Portfolio hinzu.</string> <string name="nft_receive_unavailable_asset_warning_message">Du hast dieses Netzwerk noch nicht hinzugefügt. Um NFTs zu erhalten, füge es Deinem Portfolio hinzu.</string>
<string name="nft_receive_unavailable_asset_warning_title">Netzwerk nicht hinzugefügt</string> <string name="nft_receive_unavailable_asset_warning_title">Netzwerk nicht hinzugefügt</string>
<string name="nft_receive_unavailable_section_title">Nicht hinzugefügt</string>
<string name="nft_receive_unsupported_types">Nicht unterstützte NFT-Arten</string> <string name="nft_receive_unsupported_types">Nicht unterstützte NFT-Arten</string>
<string name="nft_receive_unsupported_types_description">cNFTs und pNFTs werden derzeit nicht unterstützt. Bitte sende diese nicht an Deine Wallet.</string> <string name="nft_receive_unsupported_types_description">cNFTs und pNFTs werden derzeit nicht unterstützt. Bitte sende diese nicht an Deine Wallet.</string>
<string name="nft_send">NFT senden</string> <string name="nft_send">NFT senden</string>

View file

@ -109,11 +109,13 @@
<string name="common_add_token">Agregar token</string> <string name="common_add_token">Agregar token</string>
<string name="common_all">Todos</string> <string name="common_all">Todos</string>
<string name="common_allow">Autorizar</string> <string name="common_allow">Autorizar</string>
<string name="common_amount">Montante</string>
<string name="common_analytics">Analítica</string> <string name="common_analytics">Analítica</string>
<string name="common_apply">Aplicar</string> <string name="common_apply">Aplicar</string>
<string name="common_approval">Aprobación</string> <string name="common_approval">Aprobación</string>
<string name="common_approve">Aprobar</string> <string name="common_approve">Aprobar</string>
<string name="common_attention">Atención</string> <string name="common_attention">Atención</string>
<string name="common_available_networks">Redes disponibles</string>
<string name="common_balance">Saldo: %s</string> <string name="common_balance">Saldo: %s</string>
<string name="common_balance_title">Saldo</string> <string name="common_balance_title">Saldo</string>
<string name="common_biometric_authentication">autenticación biométrica</string> <string name="common_biometric_authentication">autenticación biométrica</string>
@ -127,6 +129,7 @@
<string name="common_choose_action">Elige una acción</string> <string name="common_choose_action">Elige una acción</string>
<string name="common_choose_network">Elegir red</string> <string name="common_choose_network">Elegir red</string>
<string name="common_choose_token">Elige token</string> <string name="common_choose_token">Elige token</string>
<string name="common_choose_wallet">Elegir wallet</string>
<string name="common_claim">Reclamar</string> <string name="common_claim">Reclamar</string>
<string name="common_claim_rewards">Reclame recompensas</string> <string name="common_claim_rewards">Reclame recompensas</string>
<string name="common_close">Cerrar</string> <string name="common_close">Cerrar</string>
@ -153,6 +156,7 @@
<string name="common_disabled">Desactivado</string> <string name="common_disabled">Desactivado</string>
<string name="common_disconnect">Desconectar</string> <string name="common_disconnect">Desconectar</string>
<string name="common_done">Listo</string> <string name="common_done">Listo</string>
<string name="common_edit">Editar</string>
<string name="common_enable">Activar</string> <string name="common_enable">Activar</string>
<string name="common_enabled">Activado</string> <string name="common_enabled">Activado</string>
<string name="common_error">Error</string> <string name="common_error">Error</string>
@ -186,6 +190,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">No</string> <string name="common_no">No</string>
<string name="common_no_address">Ninguna dirección</string> <string name="common_no_address">Ninguna dirección</string>
<string name="common_not_added">No aregada</string>
<string name="common_now">Ahora</string> <string name="common_now">Ahora</string>
<string name="common_ok">OK</string> <string name="common_ok">OK</string>
<string name="common_open_in_browser">Abrir en el navegador</string> <string name="common_open_in_browser">Abrir en el navegador</string>
@ -446,14 +451,12 @@
<string name="manage_tokens_toast_portfolio_updated">Su portafolio ha sido actualizada</string> <string name="manage_tokens_toast_portfolio_updated">Su portafolio ha sido actualizada</string>
<string name="manage_tokens_unavailable_description">El token seleccionado no está disponible actualmente para acciones dentro de la billetera cripto. Pero no se preocupa, puede expresar su interés votando a favor.</string> <string name="manage_tokens_unavailable_description">El token seleccionado no está disponible actualmente para acciones dentro de la billetera cripto. Pero no se preocupa, puede expresar su interés votando a favor.</string>
<string name="manage_tokens_unavailable_vote">Votar a favor</string> <string name="manage_tokens_unavailable_vote">Votar a favor</string>
<string name="manage_tokens_wallet_selector_title">Elegir wallet</string>
<string name="manage_tokens_wallet_support_only_one_network_title">La billetera no admite más de una red</string> <string name="manage_tokens_wallet_support_only_one_network_title">La billetera no admite más de una red</string>
<string name="markets_add_to_my_portfolio_description">Para comprar, intercambiar o recibir este activo, agréguelo a su portafolio</string> <string name="markets_add_to_my_portfolio_description">Para comprar, intercambiar o recibir este activo, agréguelo a su portafolio</string>
<string name="markets_add_to_my_portfolio_unavailable_description">Este activo no está disponible en la billetera</string> <string name="markets_add_to_my_portfolio_unavailable_description">Este activo no está disponible en la billetera</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Este activo no está disponible para esta billetera</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Este activo no está disponible para esta billetera</string>
<string name="markets_add_token">Añadir</string> <string name="markets_add_token">Añadir</string>
<string name="markets_apy_placeholder">APY %s</string> <string name="markets_apy_placeholder">APY %s</string>
<string name="markets_available_networks">Redes disponibles</string>
<string name="markets_common_my_portfolio">Mi portafolio</string> <string name="markets_common_my_portfolio">Mi portafolio</string>
<string name="markets_common_title">Mercado</string> <string name="markets_common_title">Mercado</string>
<string name="markets_generate_addresses_notification">Para generar direcciones para las redes seleccionadas, debe escanear su tarjeta Tangem</string> <string name="markets_generate_addresses_notification">Para generar direcciones para las redes seleccionadas, debe escanear su tarjeta Tangem</string>
@ -587,7 +590,6 @@
<string name="nft_receive_title">Recibir NFT</string> <string name="nft_receive_title">Recibir NFT</string>
<string name="nft_receive_unavailable_asset_warning_message">Todavía no ha agregado esta red. Para recibir NFTs, añádala a su portafolio.</string> <string name="nft_receive_unavailable_asset_warning_message">Todavía no ha agregado esta red. Para recibir NFTs, añádala a su portafolio.</string>
<string name="nft_receive_unavailable_asset_warning_title">Red no agregada</string> <string name="nft_receive_unavailable_asset_warning_title">Red no agregada</string>
<string name="nft_receive_unavailable_section_title">No aregada</string>
<string name="nft_receive_unsupported_types">Tipos de NFT no compatibles</string> <string name="nft_receive_unsupported_types">Tipos de NFT no compatibles</string>
<string name="nft_receive_unsupported_types_description">cNFT y pNFT aún no son compatibles. Por favor, no los envíes a tu billetera.</string> <string name="nft_receive_unsupported_types_description">cNFT y pNFT aún no son compatibles. Por favor, no los envíes a tu billetera.</string>
<string name="nft_send">Enviar NFT</string> <string name="nft_send">Enviar NFT</string>

View file

@ -99,11 +99,13 @@
<string name="common_add_token">Ajouter un jeton</string> <string name="common_add_token">Ajouter un jeton</string>
<string name="common_all">Tous</string> <string name="common_all">Tous</string>
<string name="common_allow">Permettre</string> <string name="common_allow">Permettre</string>
<string name="common_amount">Montant</string>
<string name="common_analytics">Analytique</string> <string name="common_analytics">Analytique</string>
<string name="common_apply">Appliquer</string> <string name="common_apply">Appliquer</string>
<string name="common_approval">Approbation</string> <string name="common_approval">Approbation</string>
<string name="common_approve">Approuver</string> <string name="common_approve">Approuver</string>
<string name="common_attention">Attention</string> <string name="common_attention">Attention</string>
<string name="common_available_networks">Réseaux disponibles</string>
<string name="common_balance">Solde : %s</string> <string name="common_balance">Solde : %s</string>
<string name="common_balance_title">Solde</string> <string name="common_balance_title">Solde</string>
<string name="common_biometric_authentication">authentification biométrique</string> <string name="common_biometric_authentication">authentification biométrique</string>
@ -117,6 +119,7 @@
<string name="common_choose_action">Choisissez une action</string> <string name="common_choose_action">Choisissez une action</string>
<string name="common_choose_network">Choisissez le réseau</string> <string name="common_choose_network">Choisissez le réseau</string>
<string name="common_choose_token">Choisir le jeton</string> <string name="common_choose_token">Choisir le jeton</string>
<string name="common_choose_wallet">Choisissez un portefeuille</string>
<string name="common_claim">Réclamer</string> <string name="common_claim">Réclamer</string>
<string name="common_claim_rewards">Réclamez des récompenses</string> <string name="common_claim_rewards">Réclamez des récompenses</string>
<string name="common_close">Fermer</string> <string name="common_close">Fermer</string>
@ -140,6 +143,7 @@
<string name="common_disabled">Désactivé</string> <string name="common_disabled">Désactivé</string>
<string name="common_disconnect">Se déconnecter</string> <string name="common_disconnect">Se déconnecter</string>
<string name="common_done">Exécuté</string> <string name="common_done">Exécuté</string>
<string name="common_edit">Modifier</string>
<string name="common_enable">Activer</string> <string name="common_enable">Activer</string>
<string name="common_enabled">Activé</string> <string name="common_enabled">Activé</string>
<string name="common_error">Erreur</string> <string name="common_error">Erreur</string>
@ -173,6 +177,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">Non</string> <string name="common_no">Non</string>
<string name="common_no_address">Aucune adresse</string> <string name="common_no_address">Aucune adresse</string>
<string name="common_not_added">Non ajouté</string>
<string name="common_now">Maintenant</string> <string name="common_now">Maintenant</string>
<string name="common_ok">OK</string> <string name="common_ok">OK</string>
<string name="common_open_in_browser">Ouvrir dans le navigateur</string> <string name="common_open_in_browser">Ouvrir dans le navigateur</string>
@ -432,14 +437,12 @@
<string name="manage_tokens_toast_portfolio_updated">Votre portfolio a été mis à jour</string> <string name="manage_tokens_toast_portfolio_updated">Votre portfolio a été mis à jour</string>
<string name="manage_tokens_unavailable_description">Le jeton sélectionné n\'est actuellement pas disponible pour des actions dans le portefeuille crypto. Mais ne vous inquiétez pas, vous pouvez exprimer votre intérêt en votant positivement.</string> <string name="manage_tokens_unavailable_description">Le jeton sélectionné n\'est actuellement pas disponible pour des actions dans le portefeuille crypto. Mais ne vous inquiétez pas, vous pouvez exprimer votre intérêt en votant positivement.</string>
<string name="manage_tokens_unavailable_vote">Vote positif</string> <string name="manage_tokens_unavailable_vote">Vote positif</string>
<string name="manage_tokens_wallet_selector_title">Choisissez un portefeuille</string>
<string name="manage_tokens_wallet_support_only_one_network_title">Le portefeuille ne prend pas en charge plus d\'un réseau</string> <string name="manage_tokens_wallet_support_only_one_network_title">Le portefeuille ne prend pas en charge plus d\'un réseau</string>
<string name="markets_add_to_my_portfolio_description">Pour acheter, échanger ou recevoir cet actif, ajoutez-le à votre portefeuille</string> <string name="markets_add_to_my_portfolio_description">Pour acheter, échanger ou recevoir cet actif, ajoutez-le à votre portefeuille</string>
<string name="markets_add_to_my_portfolio_unavailable_description">Cet actif n\'est pas pris en charge dans le portefeuille</string> <string name="markets_add_to_my_portfolio_unavailable_description">Cet actif n\'est pas pris en charge dans le portefeuille</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Cet actif n\'est pas disponible pour ce portefeuille</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Cet actif n\'est pas disponible pour ce portefeuille</string>
<string name="markets_add_token">Ajoutez un jeton</string> <string name="markets_add_token">Ajoutez un jeton</string>
<string name="markets_apy_placeholder">APY %s</string> <string name="markets_apy_placeholder">APY %s</string>
<string name="markets_available_networks">Réseaux disponibles</string>
<string name="markets_common_my_portfolio">Mon portfolio</string> <string name="markets_common_my_portfolio">Mon portfolio</string>
<string name="markets_common_title">Marché</string> <string name="markets_common_title">Marché</string>
<string name="markets_generate_addresses_notification">Pour générer des adresses pour les réseaux sélectionnés, vous devez scanner votre carte Tangem</string> <string name="markets_generate_addresses_notification">Pour générer des adresses pour les réseaux sélectionnés, vous devez scanner votre carte Tangem</string>
@ -573,7 +576,6 @@
<string name="nft_receive_title">Recevoir des NFT</string> <string name="nft_receive_title">Recevoir des NFT</string>
<string name="nft_receive_unavailable_asset_warning_message">Vous n\'avez pas encore ajouté ce réseau. Pour recevoir des NFT, ajoutez-le à votre portefeuille.</string> <string name="nft_receive_unavailable_asset_warning_message">Vous n\'avez pas encore ajouté ce réseau. Pour recevoir des NFT, ajoutez-le à votre portefeuille.</string>
<string name="nft_receive_unavailable_asset_warning_title">Réseau non ajouté</string> <string name="nft_receive_unavailable_asset_warning_title">Réseau non ajouté</string>
<string name="nft_receive_unavailable_section_title">Non ajouté</string>
<string name="nft_receive_unsupported_types">Types de NFT non pris en charge</string> <string name="nft_receive_unsupported_types">Types de NFT non pris en charge</string>
<string name="nft_receive_unsupported_types_description">Les cNFT et les pNFT ne sont pas encore pris en charge</string> <string name="nft_receive_unsupported_types_description">Les cNFT et les pNFT ne sont pas encore pris en charge</string>
<string name="nft_send">Envoyer un NFT</string> <string name="nft_send">Envoyer un NFT</string>

View file

@ -5,6 +5,7 @@
<string name="alert_unsupported_card">Questa carta non è progettata per funzionare con Tangem</string> <string name="alert_unsupported_card">Questa carta non è progettata per funzionare con Tangem</string>
<string name="cardano_low_ada">L\'importo inviato e il cambio non può essere inferiore a 1 ADA</string> <string name="cardano_low_ada">L\'importo inviato e il cambio non può essere inferiore a 1 ADA</string>
<string name="common_accept">Accetta</string> <string name="common_accept">Accetta</string>
<string name="common_amount">Importo</string>
<string name="common_balance">Saldo: %s</string> <string name="common_balance">Saldo: %s</string>
<string name="common_build_tx_error">Impossibile creare la transazione</string> <string name="common_build_tx_error">Impossibile creare la transazione</string>
<string name="common_camera_denied_alert_message">Non hai fornito l\'accesso alla tua videocamera, modifica le tue impostazioni sulla privacy</string> <string name="common_camera_denied_alert_message">Non hai fornito l\'accesso alla tua videocamera, modifica le tue impostazioni sulla privacy</string>

View file

@ -12,6 +12,18 @@
<string name="access_code_create_description">ウォレットのロックを解除するには、 %s桁のアクセスコードを設定します。</string> <string name="access_code_create_description">ウォレットのロックを解除するには、 %s桁のアクセスコードを設定します。</string>
<string name="access_code_create_title">アクセスコードの作成</string> <string name="access_code_create_title">アクセスコードの作成</string>
<string name="access_code_navtitle">アクセスコード</string> <string name="access_code_navtitle">アクセスコード</string>
<string name="account_form_create_button">アカウントを追加</string>
<string name="account_form_edit_button">保存</string>
<string name="account_form_name">アカウント名</string>
<string name="account_form_placeholder_edit_account">アカウント</string>
<string name="account_form_placeholder_new_account">新しいアカウント</string>
<string name="account_form_title_create">アカウントを追加</string>
<string name="account_form_title_edit">アカウントを編集</string>
<string name="account_unsaved_dialog_action_first">編集を続ける</string>
<string name="account_unsaved_dialog_action_second">破棄</string>
<string name="account_unsaved_dialog_message_create">新しいアカウントを破棄してもよろしいですか?</string>
<string name="account_unsaved_dialog_message_edit">編集内容を破棄してもよろしいですか?</string>
<string name="account_unsaved_dialog_title">保存されていない変更</string>
<string name="action_buttons_buy_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して買付できるようにします。</string> <string name="action_buttons_buy_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して買付できるようにします。</string>
<string name="action_buttons_sell_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して売却できるようにします。</string> <string name="action_buttons_sell_empty_search_message">トークンが見つかりませんか?メインページのマーケットセクションに移動し、ポートフォリオに追加して売却できるようにします。</string>
<string name="action_buttons_sell_navigation_bar_title">売却</string> <string name="action_buttons_sell_navigation_bar_title">売却</string>
@ -127,11 +139,13 @@
<string name="common_add_token">トークンを追加</string> <string name="common_add_token">トークンを追加</string>
<string name="common_all">すべて</string> <string name="common_all">すべて</string>
<string name="common_allow">許可する</string> <string name="common_allow">許可する</string>
<string name="common_amount">金額</string>
<string name="common_analytics">アナリティクス</string> <string name="common_analytics">アナリティクス</string>
<string name="common_apply">適用する</string> <string name="common_apply">適用する</string>
<string name="common_approval">承認</string> <string name="common_approval">承認</string>
<string name="common_approve">承認</string> <string name="common_approve">承認</string>
<string name="common_attention">注意</string> <string name="common_attention">注意</string>
<string name="common_available_networks">利用可能なネットワーク</string>
<string name="common_backup">バックアップ</string> <string name="common_backup">バックアップ</string>
<string name="common_balance">残高: %s</string> <string name="common_balance">残高: %s</string>
<string name="common_balance_title">残高</string> <string name="common_balance_title">残高</string>
@ -146,6 +160,7 @@
<string name="common_choose_action">アクションを選択</string> <string name="common_choose_action">アクションを選択</string>
<string name="common_choose_network">ネットワークを選択</string> <string name="common_choose_network">ネットワークを選択</string>
<string name="common_choose_token">トークンを選択</string> <string name="common_choose_token">トークンを選択</string>
<string name="common_choose_wallet">ウォレットを選択</string>
<string name="common_claim">請求</string> <string name="common_claim">請求</string>
<string name="common_claim_rewards">報酬を受け取る</string> <string name="common_claim_rewards">報酬を受け取る</string>
<string name="common_close">閉じる</string> <string name="common_close">閉じる</string>
@ -170,6 +185,7 @@
<string name="common_disabled">無効</string> <string name="common_disabled">無効</string>
<string name="common_disconnect">切断</string> <string name="common_disconnect">切断</string>
<string name="common_done">完了</string> <string name="common_done">完了</string>
<string name="common_edit">編集</string>
<string name="common_enable">有効にする</string> <string name="common_enable">有効にする</string>
<string name="common_enabled">有効</string> <string name="common_enabled">有効</string>
<string name="common_error">エラー</string> <string name="common_error">エラー</string>
@ -204,6 +220,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">いいえ</string> <string name="common_no">いいえ</string>
<string name="common_no_address">アドレスがありません</string> <string name="common_no_address">アドレスがありません</string>
<string name="common_not_added">未追加</string>
<string name="common_now"></string> <string name="common_now"></string>
<string name="common_ok">わかりました</string> <string name="common_ok">わかりました</string>
<string name="common_open_in_browser">ブラウザで開く</string> <string name="common_open_in_browser">ブラウザで開く</string>
@ -315,6 +332,9 @@
<string name="details_title">詳細</string> <string name="details_title">詳細</string>
<string name="disclaimer_error_loading">インターネット接続を確認するか、別のネットワークに切り替えてください。</string> <string name="disclaimer_error_loading">インターネット接続を確認するか、別のネットワークに切り替えてください。</string>
<string name="disclaimer_title">利用規約</string> <string name="disclaimer_title">利用規約</string>
<string name="domain_receive_assets_onboarding_description">他のネットワークで資産を送金すると、永久に失われます。</string>
<string name="domain_receive_assets_onboarding_network_name">%sネットワーク</string>
<string name="domain_receive_assets_onboarding_title">下記のみを使用して資金を送金する</string>
<string name="error_wrong_wallet_tapped">別のウォレットのカードまたはリングを使用しました。このウォレットにリンクしているカードまたはリングをタップしてください。</string> <string name="error_wrong_wallet_tapped">別のウォレットのカードまたはリングを使用しました。このウォレットにリンクしているカードまたはリングをタップしてください。</string>
<string name="eth_gas_required_exceeds_allowance">取引に必要な資金が不足しています。アカウントに入金してください。</string> <string name="eth_gas_required_exceeds_allowance">取引に必要な資金が不足しています。アカウントに入金してください。</string>
<string name="exchange_tokens_available_tokens_header">マイトークン</string> <string name="exchange_tokens_available_tokens_header">マイトークン</string>
@ -480,14 +500,12 @@
<string name="manage_tokens_toast_portfolio_updated">ポートフォリオが更新されました</string> <string name="manage_tokens_toast_portfolio_updated">ポートフォリオが更新されました</string>
<string name="manage_tokens_unavailable_description">選択したトークンは現在、暗号資産ウォレット内でのアクションには利用できません。しかし、心配しないでください。賛成票を投じることで関心を表明できます。</string> <string name="manage_tokens_unavailable_description">選択したトークンは現在、暗号資産ウォレット内でのアクションには利用できません。しかし、心配しないでください。賛成票を投じることで関心を表明できます。</string>
<string name="manage_tokens_unavailable_vote">賛成票を投じる</string> <string name="manage_tokens_unavailable_vote">賛成票を投じる</string>
<string name="manage_tokens_wallet_selector_title">ウォレットを選択</string>
<string name="manage_tokens_wallet_support_only_one_network_title">ウォレットは複数のネットワークをサポートしていません。</string> <string name="manage_tokens_wallet_support_only_one_network_title">ウォレットは複数のネットワークをサポートしていません。</string>
<string name="markets_add_to_my_portfolio_description">このアセットを購入・交換・受け取るには、ポートフォリオに追加してください。</string> <string name="markets_add_to_my_portfolio_description">このアセットを購入・交換・受け取るには、ポートフォリオに追加してください。</string>
<string name="markets_add_to_my_portfolio_unavailable_description">このアセットは現在ウォレットで利用できません</string> <string name="markets_add_to_my_portfolio_unavailable_description">このアセットは現在ウォレットで利用できません</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">このアセットはこのウォレットでは使用できません。</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">このアセットはこのウォレットでは使用できません。</string>
<string name="markets_add_token">追加</string> <string name="markets_add_token">追加</string>
<string name="markets_apy_placeholder">APY %s</string> <string name="markets_apy_placeholder">APY %s</string>
<string name="markets_available_networks">利用可能なネットワーク</string>
<string name="markets_common_my_portfolio">私のポートフォリオ</string> <string name="markets_common_my_portfolio">私のポートフォリオ</string>
<string name="markets_common_title">マーケット</string> <string name="markets_common_title">マーケット</string>
<string name="markets_generate_addresses_notification">選択したネットワークのアドレスを生成するには、Tangemウォレットカードまたはリングをスキャンする必要があります。</string> <string name="markets_generate_addresses_notification">選択したネットワークのアドレスを生成するには、Tangemウォレットカードまたはリングをスキャンする必要があります。</string>
@ -618,7 +636,6 @@
<string name="nft_receive_title">NFTを受け取る</string> <string name="nft_receive_title">NFTを受け取る</string>
<string name="nft_receive_unavailable_asset_warning_message">このネットワークはまだ追加されていません。NFTを受け取るには、ポートフォリオに追加してください。</string> <string name="nft_receive_unavailable_asset_warning_message">このネットワークはまだ追加されていません。NFTを受け取るには、ポートフォリオに追加してください。</string>
<string name="nft_receive_unavailable_asset_warning_title">ネットワークが追加されていません</string> <string name="nft_receive_unavailable_asset_warning_title">ネットワークが追加されていません</string>
<string name="nft_receive_unavailable_section_title">未追加</string>
<string name="nft_receive_unsupported_types">サポートされていないNFTタイプ</string> <string name="nft_receive_unsupported_types">サポートされていないNFTタイプ</string>
<string name="nft_receive_unsupported_types_description">cNFTとpNFTはまだサポートされていません。ウォレットに送信しないでください。</string> <string name="nft_receive_unsupported_types_description">cNFTとpNFTはまだサポートされていません。ウォレットに送信しないでください。</string>
<string name="nft_send">NFTを送信する</string> <string name="nft_send">NFTを送信する</string>
@ -1110,6 +1127,7 @@
<string name="swapping_fee_estimation_error_text">手数料見積りエラーです。サポートにフィードバックをお送りください。</string> <string name="swapping_fee_estimation_error_text">手数料見積りエラーです。サポートにフィードバックをお送りください。</string>
<string name="swapping_from_title">スワップする</string> <string name="swapping_from_title">スワップする</string>
<string name="swapping_high_price_impact_description">選択したトークンをこの量を交換すると、価格に大きな影響が生じ、結果が減少します。</string> <string name="swapping_high_price_impact_description">選択したトークンをこの量を交換すると、価格に大きな影響が生じ、結果が減少します。</string>
<string name="swapping_high_price_impact_title">価格への影響が甚大です</string>
<string name="swapping_insufficient_funds">残高不足</string> <string name="swapping_insufficient_funds">残高不足</string>
<string name="swapping_permission_header">許可を与える</string> <string name="swapping_permission_header">許可を与える</string>
<string name="swapping_swap_action">スワップ</string> <string name="swapping_swap_action">スワップ</string>
@ -1285,6 +1303,7 @@
<string name="wallet_settings_access_code_description">このウォレットを保護するためのシークレットコードです。ログインと署名に使用されます。</string> <string name="wallet_settings_access_code_description">このウォレットを保護するためのシークレットコードです。ログインと署名に使用されます。</string>
<string name="wallet_settings_access_code_title">アクセスコードの設定 / 変更</string> <string name="wallet_settings_access_code_title">アクセスコードの設定 / 変更</string>
<string name="wallet_settings_push_notifications_description">ウォレットの受信取引とTangemの更新について通知を受け取る。</string> <string name="wallet_settings_push_notifications_description">ウォレットの受信取引とTangemの更新について通知を受け取る。</string>
<string name="wallet_settings_push_notifications_huawei_warning">現在、Huaweiデバイスではプッシュ通知が機能しない可能性があります。現在、解決策の検討に取り組んでおり、今後のアップデートで修正をリリースする予定です。ご理解のほどよろしくお願いいたします。</string>
<string name="wallet_settings_push_notifications_title">取引通知</string> <string name="wallet_settings_push_notifications_title">取引通知</string>
<string name="wallet_settings_title">ウォレット設定</string> <string name="wallet_settings_title">ウォレット設定</string>
<string name="wallet_title">Tangem</string> <string name="wallet_title">Tangem</string>
@ -1410,6 +1429,7 @@
<string name="wc_common_networks">ネットワーク</string> <string name="wc_common_networks">ネットワーク</string>
<string name="wc_common_unlimited">無制限</string> <string name="wc_common_unlimited">無制限</string>
<string name="wc_common_wallet">ウォレット</string> <string name="wc_common_wallet">ウォレット</string>
<string name="wc_connected_app_title">接続されたアプリ</string>
<string name="wc_connected_networks">接続されたネットワーク</string> <string name="wc_connected_networks">接続されたネットワーク</string>
<string name="wc_connection_reqeust_can_view_balance">ウォレットの残高とアクティビティを表示する</string> <string name="wc_connection_reqeust_can_view_balance">ウォレットの残高とアクティビティを表示する</string>
<string name="wc_connection_reqeust_cant_sign">通知なしに取引に署名する</string> <string name="wc_connection_reqeust_cant_sign">通知なしに取引に署名する</string>
@ -1426,16 +1446,22 @@
<string name="wc_disconnect_all_alert_title">すべてのdAppを接続解除する</string> <string name="wc_disconnect_all_alert_title">すべてのdAppを接続解除する</string>
<string name="wc_estimated_wallet_changes">ウォレットの変更の予測</string> <string name="wc_estimated_wallet_changes">ウォレットの変更の予測</string>
<string name="wc_estimated_wallet_changes_not_simulated">取引をシミュレーションできませんでした。注意して続行してください。</string> <string name="wc_estimated_wallet_changes_not_simulated">取引をシミュレーションできませんでした。注意して続行してください。</string>
<string name="wc_estimation_is_not_supported">%sでは見積もりはサポートされていません</string>
<string name="wc_fee_suggested">%sによる提案</string>
<string name="wc_malicious_transaction">悪意のある取引</string> <string name="wc_malicious_transaction">悪意のある取引</string>
<string name="wc_missing_required_network_description">このウォレットのポートフォリオに%sネットワークを追加します</string> <string name="wc_missing_required_network_description">このウォレットのポートフォリオに%sネットワークを追加します</string>
<string name="wc_missing_required_network_title">ウォレットに必要なネットワークはありません</string> <string name="wc_missing_required_network_title">ウォレットに必要なネットワークはありません</string>
<string name="wc_new_connection">新しい接続</string> <string name="wc_new_connection">新しい接続</string>
<string name="wc_no_sessions_desc">ウォレットを別のdAppに接続する</string> <string name="wc_no_sessions_desc">ウォレットを別のdAppに接続する</string>
<string name="wc_no_sessions_title">セッションなし</string> <string name="wc_no_sessions_title">セッションなし</string>
<string name="wc_no_wallet_changes_detected">ウォレットの変更は検出されませんでした</string>
<string name="wc_notification_security_risk_subtitle">このドメインは複数のセキュリティプロバイダーから安全でないとの警告を受けています。あなたの資産を守るため、直ちにアクセスを中止してください。</string> <string name="wc_notification_security_risk_subtitle">このドメインは複数のセキュリティプロバイダーから安全でないとの警告を受けています。あなたの資産を守るため、直ちにアクセスを中止してください。</string>
<string name="wc_notification_security_risk_title">既知のセキュリティリスク</string> <string name="wc_notification_security_risk_title">既知のセキュリティリスク</string>
<string name="wc_request_from">リクエスト元</string> <string name="wc_request_from">リクエスト元</string>
<string name="wc_send_anyway">とにかく送金</string>
<string name="wc_signature_type">署名タイプ</string> <string name="wc_signature_type">署名タイプ</string>
<string name="wc_specify_networks_subtitle">dApp接続には、少なくとも1つのネットワークが必要です</string>
<string name="wc_specify_networks_title">選択したネットワークを指定する</string>
<string name="wc_transaction_info_to_title">宛先</string> <string name="wc_transaction_info_to_title">宛先</string>
<string name="wc_transaction_request">取引リクエスト</string> <string name="wc_transaction_request">取引リクエスト</string>
<string name="wc_transaction_request_title">取引リクエスト</string> <string name="wc_transaction_request_title">取引リクエスト</string>
@ -1443,6 +1469,7 @@
<string name="wc_uri_already_used_description">各ペアリング試行で、新しくユニークなURIが使用されていることを確認します</string> <string name="wc_uri_already_used_description">各ペアリング試行で、新しくユニークなURIが使用されていることを確認します</string>
<string name="wc_uri_already_used_title">URIはすでに使用されています</string> <string name="wc_uri_already_used_title">URIはすでに使用されています</string>
<string name="wc_wallet_connect">ウォレットコネクト</string> <string name="wc_wallet_connect">ウォレットコネクト</string>
<string name="wc_warning_transaction">不審な取引</string>
<string name="welcome_interrupted_backup_alert_discard">破棄</string> <string name="welcome_interrupted_backup_alert_discard">破棄</string>
<string name="welcome_interrupted_backup_alert_message">バックアップが中断されました。再開しますか?</string> <string name="welcome_interrupted_backup_alert_message">バックアップが中断されました。再開しますか?</string>
<string name="welcome_interrupted_backup_alert_resume">はい、再開します</string> <string name="welcome_interrupted_backup_alert_resume">はい、再開します</string>

View file

@ -96,11 +96,13 @@
<string name="common_add_token">Добавить токен</string> <string name="common_add_token">Добавить токен</string>
<string name="common_all">Все</string> <string name="common_all">Все</string>
<string name="common_allow">Разрешить</string> <string name="common_allow">Разрешить</string>
<string name="common_amount">Сумма</string>
<string name="common_analytics">Аналитика</string> <string name="common_analytics">Аналитика</string>
<string name="common_apply">Применить</string> <string name="common_apply">Применить</string>
<string name="common_approval">Одобрение</string> <string name="common_approval">Одобрение</string>
<string name="common_approve">Подтвердить</string> <string name="common_approve">Подтвердить</string>
<string name="common_attention">Внимание</string> <string name="common_attention">Внимание</string>
<string name="common_available_networks">Доступные сети</string>
<string name="common_balance">Баланс: %s</string> <string name="common_balance">Баланс: %s</string>
<string name="common_balance_title">Баланс</string> <string name="common_balance_title">Баланс</string>
<string name="common_biometric_authentication">биометрическую аутентификацию</string> <string name="common_biometric_authentication">биометрическую аутентификацию</string>
@ -114,6 +116,7 @@
<string name="common_choose_action">Выберите действие</string> <string name="common_choose_action">Выберите действие</string>
<string name="common_choose_network">Выберите сеть</string> <string name="common_choose_network">Выберите сеть</string>
<string name="common_choose_token">Выберите токен</string> <string name="common_choose_token">Выберите токен</string>
<string name="common_choose_wallet">Выберите кошелек</string>
<string name="common_claim">Получить</string> <string name="common_claim">Получить</string>
<string name="common_claim_rewards">Вывести награду</string> <string name="common_claim_rewards">Вывести награду</string>
<string name="common_close">Закрыть</string> <string name="common_close">Закрыть</string>
@ -140,6 +143,7 @@
<string name="common_disabled">Отключено</string> <string name="common_disabled">Отключено</string>
<string name="common_disconnect">Отключить</string> <string name="common_disconnect">Отключить</string>
<string name="common_done">Готово</string> <string name="common_done">Готово</string>
<string name="common_edit">Изменить</string>
<string name="common_enable">Включить</string> <string name="common_enable">Включить</string>
<string name="common_enabled">Включено</string> <string name="common_enabled">Включено</string>
<string name="common_error">Ошибка</string> <string name="common_error">Ошибка</string>
@ -172,6 +176,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">Нет</string> <string name="common_no">Нет</string>
<string name="common_no_address">Нет адреса</string> <string name="common_no_address">Нет адреса</string>
<string name="common_not_added">Не добавлено</string>
<string name="common_now">Сейчас</string> <string name="common_now">Сейчас</string>
<string name="common_ok">OK</string> <string name="common_ok">OK</string>
<string name="common_open_in_browser">Открыть в браузере</string> <string name="common_open_in_browser">Открыть в браузере</string>
@ -425,13 +430,11 @@
<string name="manage_tokens_toast_portfolio_updated">Ваш портфель был обновлен</string> <string name="manage_tokens_toast_portfolio_updated">Ваш портфель был обновлен</string>
<string name="manage_tokens_unavailable_description">Выбранный токен не доступен в кошельке на данный момент. Но не переживайте, вы можете выразить свой интерес проголосовав за его добавление.</string> <string name="manage_tokens_unavailable_description">Выбранный токен не доступен в кошельке на данный момент. Но не переживайте, вы можете выразить свой интерес проголосовав за его добавление.</string>
<string name="manage_tokens_unavailable_vote">Голосовать</string> <string name="manage_tokens_unavailable_vote">Голосовать</string>
<string name="manage_tokens_wallet_selector_title">Выберите кошелек</string>
<string name="manage_tokens_wallet_support_only_one_network_title">Кошелёк не поддерживает более одной сети</string> <string name="manage_tokens_wallet_support_only_one_network_title">Кошелёк не поддерживает более одной сети</string>
<string name="markets_add_to_my_portfolio_description">Чтобы купить, обменять или получить данный токен, вам нужно добавить его к себе в портфель</string> <string name="markets_add_to_my_portfolio_description">Чтобы купить, обменять или получить данный токен, вам нужно добавить его к себе в портфель</string>
<string name="markets_add_to_my_portfolio_unavailable_description">Этот актив в настоящее время не поддерживается в кошельке</string> <string name="markets_add_to_my_portfolio_unavailable_description">Этот актив в настоящее время не поддерживается в кошельке</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Этот токен не доступен для данного кошелька</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Этот токен не доступен для данного кошелька</string>
<string name="markets_add_token">Добавить</string> <string name="markets_add_token">Добавить</string>
<string name="markets_available_networks">Доступные сети</string>
<string name="markets_common_my_portfolio">Мой портфель</string> <string name="markets_common_my_portfolio">Мой портфель</string>
<string name="markets_common_title">Рынок</string> <string name="markets_common_title">Рынок</string>
<string name="markets_generate_addresses_notification">Чтобы создать адреса для выбранных сетей, отсканируйте вашу карту или кольцо Tangem кошелька</string> <string name="markets_generate_addresses_notification">Чтобы создать адреса для выбранных сетей, отсканируйте вашу карту или кольцо Tangem кошелька</string>
@ -571,7 +574,6 @@
<string name="nft_receive_title">Получить NFT</string> <string name="nft_receive_title">Получить NFT</string>
<string name="nft_receive_unavailable_asset_warning_message">Вы ещё не добавили эту сеть. Чтобы получать NFT, добавьте её в ваш портфель.</string> <string name="nft_receive_unavailable_asset_warning_message">Вы ещё не добавили эту сеть. Чтобы получать NFT, добавьте её в ваш портфель.</string>
<string name="nft_receive_unavailable_asset_warning_title">Сеть не добавлена</string> <string name="nft_receive_unavailable_asset_warning_title">Сеть не добавлена</string>
<string name="nft_receive_unavailable_section_title">Не добавлено</string>
<string name="nft_receive_unsupported_types">Неподдерживаемый тип NFT</string> <string name="nft_receive_unsupported_types">Неподдерживаемый тип NFT</string>
<string name="nft_receive_unsupported_types_description">cNFT и pNFT не поддерживаются. Пожалуйста, не отправляйте их на свой кошелёк.</string> <string name="nft_receive_unsupported_types_description">cNFT и pNFT не поддерживаются. Пожалуйста, не отправляйте их на свой кошелёк.</string>
<string name="nft_send">Отправить NFT</string> <string name="nft_send">Отправить NFT</string>
@ -1279,7 +1281,7 @@
<string name="warning_token_balance_not_updated">Возможно, баланс устарел. Обновите страницу.</string> <string name="warning_token_balance_not_updated">Возможно, баланс устарел. Обновите страницу.</string>
<string name="warning_token_required_min_coin_reserve">Недостаточно %1$s. Пополните свой счет %2$s для выполнения ассоциации токена</string> <string name="warning_token_required_min_coin_reserve">Недостаточно %1$s. Пополните свой счет %2$s для выполнения ассоциации токена</string>
<string name="warning_token_trustline_button_title">Открыть Trustline</string> <string name="warning_token_trustline_button_title">Открыть Trustline</string>
<string name="warning_token_trustline_subtitle">Согласно правилам сети, чтобы пополнить этот токен, необходимо сначала открыть Trustline — это позволит вашему кошельку принимать и хранить этот актив.</string> <string name="warning_token_trustline_subtitle">Чтобы получить этот токен, необходимо включить Trustline. Сеть требует резерв %1$s %2$s.</string>
<string name="warning_token_trustline_title">Требуется трастлайн</string> <string name="warning_token_trustline_title">Требуется трастлайн</string>
<string name="wc_alert_audit_malicious_domain">Вредоносный домен</string> <string name="wc_alert_audit_malicious_domain">Вредоносный домен</string>
<string name="wc_alert_audit_unknown_domain">Неизвестный домен</string> <string name="wc_alert_audit_unknown_domain">Неизвестный домен</string>

View file

@ -96,11 +96,13 @@
<string name="common_add_token">Додати токен</string> <string name="common_add_token">Додати токен</string>
<string name="common_all">Усе</string> <string name="common_all">Усе</string>
<string name="common_allow">Дозволити</string> <string name="common_allow">Дозволити</string>
<string name="common_amount">Сума</string>
<string name="common_analytics">Аналітика</string> <string name="common_analytics">Аналітика</string>
<string name="common_apply">Застосовувати</string> <string name="common_apply">Застосовувати</string>
<string name="common_approval">Затвердження</string> <string name="common_approval">Затвердження</string>
<string name="common_approve">Підтвердити</string> <string name="common_approve">Підтвердити</string>
<string name="common_attention">Увага</string> <string name="common_attention">Увага</string>
<string name="common_available_networks">Доступні мережі</string>
<string name="common_balance">Баланс: %s</string> <string name="common_balance">Баланс: %s</string>
<string name="common_balance_title">Баланс</string> <string name="common_balance_title">Баланс</string>
<string name="common_biometric_authentication">біометричну автентифікацію</string> <string name="common_biometric_authentication">біометричну автентифікацію</string>
@ -113,6 +115,7 @@
<string name="common_change">Змінити</string> <string name="common_change">Змінити</string>
<string name="common_choose_action">Виберіть дію</string> <string name="common_choose_action">Виберіть дію</string>
<string name="common_choose_token">Оберіть токен</string> <string name="common_choose_token">Оберіть токен</string>
<string name="common_choose_wallet">Оберіть гаманець</string>
<string name="common_claim">Отримати</string> <string name="common_claim">Отримати</string>
<string name="common_claim_rewards">Отримати винагороди</string> <string name="common_claim_rewards">Отримати винагороди</string>
<string name="common_close">Закрити</string> <string name="common_close">Закрити</string>
@ -139,6 +142,7 @@
<string name="common_disabled">Вимкнуто</string> <string name="common_disabled">Вимкнуто</string>
<string name="common_disconnect">Від\'єднати</string> <string name="common_disconnect">Від\'єднати</string>
<string name="common_done">Готово</string> <string name="common_done">Готово</string>
<string name="common_edit">Редагувати</string>
<string name="common_enable">Увімкнути</string> <string name="common_enable">Увімкнути</string>
<string name="common_enabled">Увімкнено</string> <string name="common_enabled">Увімкнено</string>
<string name="common_error">Помилка</string> <string name="common_error">Помилка</string>
@ -171,6 +175,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">Ні</string> <string name="common_no">Ні</string>
<string name="common_no_address">Немає адреси</string> <string name="common_no_address">Немає адреси</string>
<string name="common_not_added">Не додано</string>
<string name="common_now">Зараз</string> <string name="common_now">Зараз</string>
<string name="common_ok">ОК</string> <string name="common_ok">ОК</string>
<string name="common_open_in_browser">Відкрити в браузері</string> <string name="common_open_in_browser">Відкрити в браузері</string>
@ -424,13 +429,11 @@
<string name="manage_tokens_toast_portfolio_updated">Ваше портфоліо оновлено</string> <string name="manage_tokens_toast_portfolio_updated">Ваше портфоліо оновлено</string>
<string name="manage_tokens_unavailable_description">Обраний токен наразі недоступний для дій у криптогаманці. Але не хвилюйтеся, ви можете висловити свою зацікавленість, проголосувавши за його інтеграцію.</string> <string name="manage_tokens_unavailable_description">Обраний токен наразі недоступний для дій у криптогаманці. Але не хвилюйтеся, ви можете висловити свою зацікавленість, проголосувавши за його інтеграцію.</string>
<string name="manage_tokens_unavailable_vote">Проголосувати</string> <string name="manage_tokens_unavailable_vote">Проголосувати</string>
<string name="manage_tokens_wallet_selector_title">Оберіть гаманець</string>
<string name="manage_tokens_wallet_support_only_one_network_title">Гаманець не підтримує більше однієї мережі</string> <string name="manage_tokens_wallet_support_only_one_network_title">Гаманець не підтримує більше однієї мережі</string>
<string name="markets_add_to_my_portfolio_description">Щоб купити, обміняти або отримати цей актив, додайте його до свого портфоліо</string> <string name="markets_add_to_my_portfolio_description">Щоб купити, обміняти або отримати цей актив, додайте його до свого портфоліо</string>
<string name="markets_add_to_my_portfolio_unavailable_description">Цей актив наразі не підтримується в гаманці</string> <string name="markets_add_to_my_portfolio_unavailable_description">Цей актив наразі не підтримується в гаманці</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Цей токен недоступний для цього гаманця</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">Цей токен недоступний для цього гаманця</string>
<string name="markets_add_token">Додати</string> <string name="markets_add_token">Додати</string>
<string name="markets_available_networks">Доступні мережі</string>
<string name="markets_common_my_portfolio">Моє портфоліо</string> <string name="markets_common_my_portfolio">Моє портфоліо</string>
<string name="markets_common_title">Маркет</string> <string name="markets_common_title">Маркет</string>
<string name="markets_generate_addresses_notification">Щоб згенерувати адреси для обраних мереж, відскануйте вашу картку або кільце Tangem гаманця</string> <string name="markets_generate_addresses_notification">Щоб згенерувати адреси для обраних мереж, відскануйте вашу картку або кільце Tangem гаманця</string>
@ -570,7 +573,6 @@
<string name="nft_receive_title">Отримати NFT</string> <string name="nft_receive_title">Отримати NFT</string>
<string name="nft_receive_unavailable_asset_warning_message">Ви ще не додали цю мережу. Щоб отримувати NFT, додайте її до свого портфоліо.</string> <string name="nft_receive_unavailable_asset_warning_message">Ви ще не додали цю мережу. Щоб отримувати NFT, додайте її до свого портфоліо.</string>
<string name="nft_receive_unavailable_asset_warning_title">Мережу не додано</string> <string name="nft_receive_unavailable_asset_warning_title">Мережу не додано</string>
<string name="nft_receive_unavailable_section_title">Не додано</string>
<string name="nft_receive_unsupported_types">Непідтримувані типи NFT</string> <string name="nft_receive_unsupported_types">Непідтримувані типи NFT</string>
<string name="nft_receive_unsupported_types_description">cNFT і pNFT наразі не підтримуються. Будь ласка, не надсилайте їх на свій гаманець.</string> <string name="nft_receive_unsupported_types_description">cNFT і pNFT наразі не підтримуються. Будь ласка, не надсилайте їх на свій гаманець.</string>
<string name="nft_send">Надіслати NFT</string> <string name="nft_send">Надіслати NFT</string>
@ -1278,7 +1280,7 @@
<string name="warning_token_balance_not_updated">Баланс може бути застарілим. Оновіть сторінку.</string> <string name="warning_token_balance_not_updated">Баланс може бути застарілим. Оновіть сторінку.</string>
<string name="warning_token_required_min_coin_reserve">Недостатньо %1$s. Поповніть свій рахунок %2$s, щоб прив’язати цей токен.</string> <string name="warning_token_required_min_coin_reserve">Недостатньо %1$s. Поповніть свій рахунок %2$s, щоб прив’язати цей токен.</string>
<string name="warning_token_trustline_button_title">Відкрити Trustline</string> <string name="warning_token_trustline_button_title">Відкрити Trustline</string>
<string name="warning_token_trustline_subtitle">Відповідно до правил мережі, щоб поповнити цей токен, спочатку потрібно відкрити Trustline — це дозволить вашому гаманцю приймати та зберігати цей актив.</string> <string name="warning_token_trustline_subtitle">Щоб отримати цей токен, потрібно увімкнути Trustline. Мережа вимагає резерв %1$s %2$s.</string>
<string name="warning_token_trustline_title">Відкрийте Trustline</string> <string name="warning_token_trustline_title">Відкрийте Trustline</string>
<string name="wc_alert_session_disconnected_description">Будь ласка, поверніться до браузеру і повторно підключіться через WalletConnect.</string> <string name="wc_alert_session_disconnected_description">Будь ласка, поверніться до браузеру і повторно підключіться через WalletConnect.</string>
<string name="wc_alert_wrong_card_description">Обрана не вірна картка або кільце</string> <string name="wc_alert_wrong_card_description">Обрана не вірна картка або кільце</string>

View file

@ -40,6 +40,7 @@
<string name="card_settings_title">卡片設置</string> <string name="card_settings_title">卡片設置</string>
<string name="cardano_low_ada">發送金額和找零不能少於1個ADA</string> <string name="cardano_low_ada">發送金額和找零不能少於1個ADA</string>
<string name="common_accept">接受</string> <string name="common_accept">接受</string>
<string name="common_amount">數量</string>
<string name="common_approve">允許</string> <string name="common_approve">允許</string>
<string name="common_attention">注意</string> <string name="common_attention">注意</string>
<string name="common_balance">餘額: %s</string> <string name="common_balance">餘額: %s</string>

View file

@ -12,7 +12,18 @@
<string name="access_code_create_description">Set a %s-digit Access Code to unlock your wallet.</string> <string name="access_code_create_description">Set a %s-digit Access Code to unlock your wallet.</string>
<string name="access_code_create_title">Create Access Code</string> <string name="access_code_create_title">Create Access Code</string>
<string name="access_code_navtitle">Access code</string> <string name="access_code_navtitle">Access code</string>
<string name="account_form_create_button">Add account</string>
<string name="account_form_edit_button">Save</string>
<string name="account_form_name">Account name</string> <string name="account_form_name">Account name</string>
<string name="account_form_placeholder_edit_account">Account</string>
<string name="account_form_placeholder_new_account">New account</string>
<string name="account_form_title_create">Add account</string>
<string name="account_form_title_edit">Edit account</string>
<string name="account_unsaved_dialog_action_first">Keep Editing</string>
<string name="account_unsaved_dialog_action_second">Discard</string>
<string name="account_unsaved_dialog_message_create">Are you sure you want to discard new account?</string>
<string name="account_unsaved_dialog_message_edit">Are you sure you want to discard edits?</string>
<string name="account_unsaved_dialog_title">Unsaved Changes</string>
<string name="action_buttons_buy_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for purchase</string> <string name="action_buttons_buy_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for purchase</string>
<string name="action_buttons_sell_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for selling.</string> <string name="action_buttons_sell_empty_search_message">Cant find your token? Go to the Market section on the main page and add it to your portfolio for selling.</string>
<string name="action_buttons_sell_navigation_bar_title">Sell</string> <string name="action_buttons_sell_navigation_bar_title">Sell</string>
@ -132,11 +143,13 @@
<string name="common_add_token">Add token</string> <string name="common_add_token">Add token</string>
<string name="common_all">All</string> <string name="common_all">All</string>
<string name="common_allow">Allow</string> <string name="common_allow">Allow</string>
<string name="common_amount">Amount</string>
<string name="common_analytics">Analytics</string> <string name="common_analytics">Analytics</string>
<string name="common_apply">Apply</string> <string name="common_apply">Apply</string>
<string name="common_approval">Approval</string> <string name="common_approval">Approval</string>
<string name="common_approve">Approve</string> <string name="common_approve">Approve</string>
<string name="common_attention">Attention</string> <string name="common_attention">Attention</string>
<string name="common_available_networks">Available networks</string>
<string name="common_backup">Backup</string> <string name="common_backup">Backup</string>
<string name="common_balance">Balance: %s</string> <string name="common_balance">Balance: %s</string>
<string name="common_balance_title">Balance</string> <string name="common_balance_title">Balance</string>
@ -151,6 +164,7 @@
<string name="common_choose_action">Choose action</string> <string name="common_choose_action">Choose action</string>
<string name="common_choose_network">Choose network</string> <string name="common_choose_network">Choose network</string>
<string name="common_choose_token">Choose token</string> <string name="common_choose_token">Choose token</string>
<string name="common_choose_wallet">Choose wallet</string>
<string name="common_claim">Claim</string> <string name="common_claim">Claim</string>
<string name="common_claim_rewards">Claim rewards</string> <string name="common_claim_rewards">Claim rewards</string>
<string name="common_close">Close</string> <string name="common_close">Close</string>
@ -177,6 +191,7 @@
<string name="common_disabled">Disabled</string> <string name="common_disabled">Disabled</string>
<string name="common_disconnect">Disconnect</string> <string name="common_disconnect">Disconnect</string>
<string name="common_done">Done</string> <string name="common_done">Done</string>
<string name="common_edit">Edit</string>
<string name="common_enable">Enable</string> <string name="common_enable">Enable</string>
<string name="common_enabled">Enabled</string> <string name="common_enabled">Enabled</string>
<string name="common_error">Error</string> <string name="common_error">Error</string>
@ -211,6 +226,7 @@
<string name="common_nft">NFT</string> <string name="common_nft">NFT</string>
<string name="common_no">No</string> <string name="common_no">No</string>
<string name="common_no_address">No address</string> <string name="common_no_address">No address</string>
<string name="common_not_added">Not Added</string>
<string name="common_now">Now</string> <string name="common_now">Now</string>
<string name="common_ok">OK</string> <string name="common_ok">OK</string>
<string name="common_open_in_browser">Open in Browser</string> <string name="common_open_in_browser">Open in Browser</string>
@ -226,6 +242,7 @@
<string name="common_reject">Reject</string> <string name="common_reject">Reject</string>
<string name="common_reload">Reload</string> <string name="common_reload">Reload</string>
<string name="common_rename">Rename</string> <string name="common_rename">Rename</string>
<string name="common_required">Required</string>
<string name="common_save">Save</string> <string name="common_save">Save</string>
<string name="common_save_changes">Save changes</string> <string name="common_save_changes">Save changes</string>
<string name="common_search">Search</string> <string name="common_search">Search</string>
@ -323,6 +340,9 @@
<string name="details_title">Details</string> <string name="details_title">Details</string>
<string name="disclaimer_error_loading">Check your internet connection or switch to a different network</string> <string name="disclaimer_error_loading">Check your internet connection or switch to a different network</string>
<string name="disclaimer_title">Terms of service</string> <string name="disclaimer_title">Terms of service</string>
<string name="domain_receive_assets_onboarding_description">Sending assets in other networks will result in permanent loss.</string>
<string name="domain_receive_assets_onboarding_network_name">%s network</string>
<string name="domain_receive_assets_onboarding_title">Send funds using only</string>
<string name="error_wrong_wallet_tapped">You have used a card or ring from another wallet. Tap the card or ring associated with this wallet</string> <string name="error_wrong_wallet_tapped">You have used a card or ring from another wallet. Tap the card or ring associated with this wallet</string>
<string name="eth_gas_required_exceeds_allowance">Not enough funds for the transaction. Please top up your account.</string> <string name="eth_gas_required_exceeds_allowance">Not enough funds for the transaction. Please top up your account.</string>
<string name="exchange_tokens_available_tokens_header">My tokens</string> <string name="exchange_tokens_available_tokens_header">My tokens</string>
@ -432,6 +452,8 @@
<string name="hw_activation_need_finish">Finish Now</string> <string name="hw_activation_need_finish">Finish Now</string>
<string name="hw_activation_need_title">Finish Wallet Activation</string> <string name="hw_activation_need_title">Finish Wallet Activation</string>
<string name="hw_activation_need_warning_description">To complete setup, secure app access with Access Code.</string> <string name="hw_activation_need_warning_description">To complete setup, secure app access with Access Code.</string>
<string name="hw_backup_alert_description">If you do, you\'ll need to start over.</string>
<string name="hw_backup_alert_title">Are you sure you want to exit the activation process?</string>
<string name="hw_backup_google_drive_description">Recover an existing wallet stored in your Google Drive backup</string> <string name="hw_backup_google_drive_description">Recover an existing wallet stored in your Google Drive backup</string>
<string name="hw_backup_google_drive_title">Google Drive Backup</string> <string name="hw_backup_google_drive_title">Google Drive Backup</string>
<string name="hw_backup_need_action">Go to backup</string> <string name="hw_backup_need_action">Go to backup</string>
@ -491,14 +513,12 @@
<string name="manage_tokens_toast_portfolio_updated">Your portfolio has been updated</string> <string name="manage_tokens_toast_portfolio_updated">Your portfolio has been updated</string>
<string name="manage_tokens_unavailable_description">The selected token is currently unavailable for actions within the crypto wallet. But worry not, you can express your interest by upvoting it.</string> <string name="manage_tokens_unavailable_description">The selected token is currently unavailable for actions within the crypto wallet. But worry not, you can express your interest by upvoting it.</string>
<string name="manage_tokens_unavailable_vote">Upvote</string> <string name="manage_tokens_unavailable_vote">Upvote</string>
<string name="manage_tokens_wallet_selector_title">Choose wallet</string>
<string name="manage_tokens_wallet_support_only_one_network_title">The wallet doesn\'t support more than one network</string> <string name="manage_tokens_wallet_support_only_one_network_title">The wallet doesn\'t support more than one network</string>
<string name="markets_add_to_my_portfolio_description">To buy, exchange, or receive this asset, add it to your portfolio</string> <string name="markets_add_to_my_portfolio_description">To buy, exchange, or receive this asset, add it to your portfolio</string>
<string name="markets_add_to_my_portfolio_unavailable_description">This asset is currently not supported in the wallet</string> <string name="markets_add_to_my_portfolio_unavailable_description">This asset is currently not supported in the wallet</string>
<string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">This asset is not available for this wallet</string> <string name="markets_add_to_my_portfolio_unavailable_for_wallet_description">This asset is not available for this wallet</string>
<string name="markets_add_token">Add</string> <string name="markets_add_token">Add</string>
<string name="markets_apy_placeholder">APY %s</string> <string name="markets_apy_placeholder">APY %s</string>
<string name="markets_available_networks">Available networks</string>
<string name="markets_common_my_portfolio">My portfolio</string> <string name="markets_common_my_portfolio">My portfolio</string>
<string name="markets_common_title">Market</string> <string name="markets_common_title">Market</string>
<string name="markets_generate_addresses_notification">To generate addresses for selected networks, you must scan your Tangem Wallet card or ring</string> <string name="markets_generate_addresses_notification">To generate addresses for selected networks, you must scan your Tangem Wallet card or ring</string>
@ -632,7 +652,6 @@
<string name="nft_receive_title">Receive NFT</string> <string name="nft_receive_title">Receive NFT</string>
<string name="nft_receive_unavailable_asset_warning_message">You haven\'t added this network yet. To receive NFTs, add it to your portfolio.</string> <string name="nft_receive_unavailable_asset_warning_message">You haven\'t added this network yet. To receive NFTs, add it to your portfolio.</string>
<string name="nft_receive_unavailable_asset_warning_title">Network not added</string> <string name="nft_receive_unavailable_asset_warning_title">Network not added</string>
<string name="nft_receive_unavailable_section_title">Not Added</string>
<string name="nft_receive_unsupported_types">Unsupported NFT types</string> <string name="nft_receive_unsupported_types">Unsupported NFT types</string>
<string name="nft_receive_unsupported_types_description">cNFTs and pNFTs are not supported yet. Please don\'t send them to your wallet.</string> <string name="nft_receive_unsupported_types_description">cNFTs and pNFTs are not supported yet. Please don\'t send them to your wallet.</string>
<string name="nft_send">Send NFT</string> <string name="nft_send">Send NFT</string>
@ -1129,6 +1148,7 @@
<string name="swapping_fee_estimation_error_text">Fee estimation error. Please send feedback to support.</string> <string name="swapping_fee_estimation_error_text">Fee estimation error. Please send feedback to support.</string>
<string name="swapping_from_title">You swap</string> <string name="swapping_from_title">You swap</string>
<string name="swapping_high_price_impact_description">Swapping this amount of selected tokens will cause a significant price impact and reduce your outcome.</string> <string name="swapping_high_price_impact_description">Swapping this amount of selected tokens will cause a significant price impact and reduce your outcome.</string>
<string name="swapping_high_price_impact_title">High price impact</string>
<string name="swapping_insufficient_funds">Insufficient funds</string> <string name="swapping_insufficient_funds">Insufficient funds</string>
<string name="swapping_permission_header">Give Permission</string> <string name="swapping_permission_header">Give Permission</string>
<string name="swapping_swap_action">Swap</string> <string name="swapping_swap_action">Swap</string>
@ -1351,9 +1371,11 @@
<string name="wallet_promo_banner_title">Discover Tangem Wallet</string> <string name="wallet_promo_banner_title">Discover Tangem Wallet</string>
<string name="wallet_settings_access_code_description">Secret code to protect this wallet. Used for login and signatures.</string> <string name="wallet_settings_access_code_description">Secret code to protect this wallet. Used for login and signatures.</string>
<string name="wallet_settings_access_code_title">Set/Change Access Code</string> <string name="wallet_settings_access_code_title">Set/Change Access Code</string>
<string name="wallet_settings_change_access_code_title">Change Access Code</string>
<string name="wallet_settings_push_notifications_description">Stay notified on wallet incoming transactions and Tangem updates.</string> <string name="wallet_settings_push_notifications_description">Stay notified on wallet incoming transactions and Tangem updates.</string>
<string name="wallet_settings_push_notifications_huawei_warning">Push notifications may currently not work on Huawei devices. We\'re actively working on a solution and will release a fix in an upcoming update. Thank you for your understanding!</string> <string name="wallet_settings_push_notifications_huawei_warning">Push notifications may currently not work on Huawei devices. We\'re actively working on a solution and will release a fix in an upcoming update. Thank you for your understanding!</string>
<string name="wallet_settings_push_notifications_title">Transaction Notifications</string> <string name="wallet_settings_push_notifications_title">Transaction Notifications</string>
<string name="wallet_settings_set_access_code_title">Set Access Code</string>
<string name="wallet_settings_title">Wallet settings</string> <string name="wallet_settings_title">Wallet settings</string>
<string name="wallet_title">Tangem</string> <string name="wallet_title">Tangem</string>
<string name="warning_access_denied_message">Use %s or scan a card/ring to unlock access to your wallet</string> <string name="warning_access_denied_message">Use %s or scan a card/ring to unlock access to your wallet</string>
@ -1471,6 +1493,7 @@
<string name="wc_alert_verified_domain_title">Verified domain</string> <string name="wc_alert_verified_domain_title">Verified domain</string>
<string name="wc_alert_wrong_card_description">Wrong card or ring selected in the App</string> <string name="wc_alert_wrong_card_description">Wrong card or ring selected in the App</string>
<string name="wc_alert_wrong_card_title">We\'ve got some kind of problem</string> <string name="wc_alert_wrong_card_title">We\'ve got some kind of problem</string>
<string name="wc_all_dapps_disconnected">All dApps disconnected</string>
<string name="wc_allow_to_spend">Allow to spend</string> <string name="wc_allow_to_spend">Allow to spend</string>
<string name="wc_common_address">Address</string> <string name="wc_common_address">Address</string>
<string name="wc_common_connect">Connect</string> <string name="wc_common_connect">Connect</string>
@ -1479,7 +1502,9 @@
<string name="wc_common_networks">Networks</string> <string name="wc_common_networks">Networks</string>
<string name="wc_common_unlimited">Unlimited</string> <string name="wc_common_unlimited">Unlimited</string>
<string name="wc_common_wallet">Wallet</string> <string name="wc_common_wallet">Wallet</string>
<string name="wc_connected_app_title">Connected App</string>
<string name="wc_connected_networks">Connected networks</string> <string name="wc_connected_networks">Connected networks</string>
<string name="wc_connected_to">Connected to %1$s</string>
<string name="wc_connection_reqeust_can_view_balance">View your wallet balance and activity</string> <string name="wc_connection_reqeust_can_view_balance">View your wallet balance and activity</string>
<string name="wc_connection_reqeust_cant_sign">Sign transactions without your notice</string> <string name="wc_connection_reqeust_cant_sign">Sign transactions without your notice</string>
<string name="wc_connection_reqeust_request_approval">Request approval for transactions</string> <string name="wc_connection_reqeust_request_approval">Request approval for transactions</string>
@ -1490,11 +1515,16 @@
<string name="wc_contents">Contents</string> <string name="wc_contents">Contents</string>
<string name="wc_copy_data_button_text">Copy data</string> <string name="wc_copy_data_button_text">Copy data</string>
<string name="wc_custom_allowance_title">Custom allowance</string> <string name="wc_custom_allowance_title">Custom allowance</string>
<string name="wc_dapp_disconnected">dApp disconnected</string>
<string name="wc_disconnect_all">Disconnect all</string> <string name="wc_disconnect_all">Disconnect all</string>
<string name="wc_disconnect_all_alert_desc">Text about discnected all dApps</string> <string name="wc_disconnect_all_alert_desc">Text about discnected all dApps</string>
<string name="wc_disconnect_all_alert_title">Disconect All dApps</string> <string name="wc_disconnect_all_alert_title">Disconect All dApps</string>
<string name="wc_estimated_wallet_changes">Estimated wallet changes</string> <string name="wc_estimated_wallet_changes">Estimated wallet changes</string>
<string name="wc_estimated_wallet_changes_not_simulated">The transaction couldn\'t be simulated. Please proceed with caution.</string> <string name="wc_estimated_wallet_changes_not_simulated">The transaction couldn\'t be simulated. Please proceed with caution.</string>
<string name="wc_estimation_is_not_supported">Estimation is not supported for %s</string>
<string name="wc_fee_suggested">Suggested by %s</string>
<string name="wc_insufficient_warning_subtitle">Top up your balance to cover the network fee</string>
<string name="wc_insufficient_warning_title">Insufficient %1$s</string>
<string name="wc_malicious_transaction">Malicious transaction</string> <string name="wc_malicious_transaction">Malicious transaction</string>
<string name="wc_missing_required_network_description">Add the %s network to your portfolio for this wallet</string> <string name="wc_missing_required_network_description">Add the %s network to your portfolio for this wallet</string>
<string name="wc_missing_required_network_title">The wallet has no required networks</string> <string name="wc_missing_required_network_title">The wallet has no required networks</string>
@ -1505,7 +1535,11 @@
<string name="wc_notification_security_risk_subtitle">This domain is flagged as unsafe by multiple security providers. Leave immediately to protect your assets</string> <string name="wc_notification_security_risk_subtitle">This domain is flagged as unsafe by multiple security providers. Leave immediately to protect your assets</string>
<string name="wc_notification_security_risk_title">Known security risk</string> <string name="wc_notification_security_risk_title">Known security risk</string>
<string name="wc_request_from">Request from</string> <string name="wc_request_from">Request from</string>
<string name="wc_send_anyway">Send anyway</string>
<string name="wc_signature_type">Signature Type</string> <string name="wc_signature_type">Signature Type</string>
<string name="wc_specify_networks_subtitle">At least one network is required for dApp connection</string>
<string name="wc_specify_networks_title">Specify selected networks</string>
<string name="wc_successfully_signed">Successfully signed</string>
<string name="wc_transaction_info_to_title">To</string> <string name="wc_transaction_info_to_title">To</string>
<string name="wc_transaction_request">Transaction request</string> <string name="wc_transaction_request">Transaction request</string>
<string name="wc_transaction_request_title">Transaction request</string> <string name="wc_transaction_request_title">Transaction request</string>

View file

@ -36,7 +36,7 @@ internal fun WalletSelectorBottomSheet(config: TangemBottomSheetConfig) {
addBottomInsets = false, addBottomInsets = false,
title = { content -> title = { content ->
TangemTopAppBar( TangemTopAppBar(
title = resourceReference(R.string.manage_tokens_wallet_selector_title), title = resourceReference(R.string.common_choose_wallet),
titleAlignment = Alignment.CenterHorizontally, titleAlignment = Alignment.CenterHorizontally,
startButton = TopAppBarButtonUM.Back(content.onBack), startButton = TopAppBarButtonUM.Back(content.onBack),
height = TangemTopAppBarHeight.BOTTOM_SHEET, height = TangemTopAppBarHeight.BOTTOM_SHEET,

View file

@ -58,7 +58,7 @@ internal fun NFTReceiveNetworksContent(state: NFTReceiveUM.Networks.Content, mod
item( item(
key = "not_available_title", key = "not_available_title",
) { ) {
Title(resourceReference(R.string.nft_receive_unavailable_section_title)) Title(resourceReference(R.string.common_not_added))
} }
networks(state.unavailableItems) networks(state.unavailableItems)
} }

View file

@ -33,38 +33,10 @@ internal class AlertsComponent(
internal sealed class AlertType : TangemBottomSheetConfigContent { internal sealed class AlertType : TangemBottomSheetConfigContent {
abstract val onDismiss: () -> Unit abstract val onDismiss: () -> Unit
@Serializable
data class VerifiedDomain(val appName: String, override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class UnknownDomain(val onConnect: () -> Unit, override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class UnsafeDomain(val onConnect: () -> Unit, override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class UnsupportedNetworks(val appName: String, override val onDismiss: () -> Unit) : AlertType()
@Serializable @Serializable
data class UnsupportedMethod(override val onDismiss: () -> Unit) : AlertType() data class UnsupportedMethod(override val onDismiss: () -> Unit) : AlertType()
@Serializable @Serializable
data class WcDisconnected(override val onDismiss: () -> Unit) : AlertType() data class WcDisconnected(override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class UnknownError(val errorCode: Int, override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class WrongCardSelected(override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class ConnectionTimeout(val onTryAgain: () -> Unit, override val onDismiss: () -> Unit) : AlertType()
@Serializable
data class MaliciousTransaction(
val descriptionMessage: String,
val onConnect: () -> Unit,
override val onDismiss: () -> Unit,
) : AlertType()
} }
} }

View file

@ -37,7 +37,7 @@ import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetWi
import com.tangem.core.ui.components.notifications.Notification import com.tangem.core.ui.components.notifications.Notification
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.extensions.wrappedList import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview import com.tangem.core.ui.res.TangemThemePreview
@ -98,7 +98,7 @@ private fun WcSelectNetworksBS(
containerColor = TangemTheme.colors.background.tertiary, containerColor = TangemTheme.colors.background.tertiary,
title = { title = {
TangemModalBottomSheetTitle( TangemModalBottomSheetTitle(
title = stringReference("Choose networks"), title = resourceReference(R.string.common_choose_network),
startIconRes = R.drawable.ic_back_24, startIconRes = R.drawable.ic_back_24,
onStartClick = onBack, onStartClick = onBack,
) )
@ -114,7 +114,7 @@ private fun WcSelectNetworksBS(
modifier = Modifier modifier = Modifier
.padding(16.dp) .padding(16.dp)
.fillMaxWidth(), .fillMaxWidth(),
text = "Done", text = stringResourceSafe(R.string.common_done),
onClick = state.onDone, onClick = state.onDone,
enabled = state.doneButtonEnabled, enabled = state.doneButtonEnabled,
) )
@ -181,7 +181,7 @@ private fun AvailableNetworksBlock(
Column(modifier = modifier) { Column(modifier = modifier) {
Text( Text(
modifier = Modifier.padding(top = 12.dp, bottom = 4.dp, start = 12.dp, end = 12.dp), modifier = Modifier.padding(top = 12.dp, bottom = 4.dp, start = 12.dp, end = 12.dp),
text = "Available networks", text = stringResourceSafe(R.string.common_available_networks),
style = TangemTheme.typography.subtitle2, style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.tertiary, color = TangemTheme.colors.text.tertiary,
) )
@ -203,7 +203,7 @@ private fun NotAddedBlock(notAdded: ImmutableList<WcNetworkInfoItem>, modifier:
Column(modifier = modifier) { Column(modifier = modifier) {
Text( Text(
modifier = Modifier.padding(top = 12.dp, bottom = 4.dp, start = 12.dp, end = 12.dp), modifier = Modifier.padding(top = 12.dp, bottom = 4.dp, start = 12.dp, end = 12.dp),
text = "Not Added", text = stringResourceSafe(R.string.common_not_added),
style = TangemTheme.typography.subtitle2, style = TangemTheme.typography.subtitle2,
color = TangemTheme.colors.text.tertiary, color = TangemTheme.colors.text.tertiary,
) )
@ -255,7 +255,7 @@ private fun NetworkItems(networkItem: WcNetworkInfoItem, modifier: Modifier = Mo
} }
} }
is WcNetworkInfoItem.Required -> Text( is WcNetworkInfoItem.Required -> Text(
text = "Required", text = stringResourceSafe(R.string.common_required),
style = TangemTheme.typography.body2, style = TangemTheme.typography.body2,
color = TangemTheme.colors.text.tertiary, color = TangemTheme.colors.text.tertiary,
) )

View file

@ -28,6 +28,7 @@ import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
import com.tangem.core.ui.decompose.ComposableBottomSheetComponent import com.tangem.core.ui.decompose.ComposableBottomSheetComponent
import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.wrappedList import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemTheme
@ -91,7 +92,7 @@ private fun WcSelectWalletModalBS(
containerColor = TangemTheme.colors.background.primary, containerColor = TangemTheme.colors.background.primary,
title = { title = {
TangemModalBottomSheetTitle( TangemModalBottomSheetTitle(
title = stringReference("Choose wallet"), title = resourceReference(R.string.common_choose_wallet),
startIconRes = R.drawable.ic_back_24, startIconRes = R.drawable.ic_back_24,
onStartClick = onBack, onStartClick = onBack,
) )
@ -145,31 +146,12 @@ private fun WcSelectWalletContent(
@Preview(showBackground = true, device = Devices.PIXEL_7_PRO) @Preview(showBackground = true, device = Devices.PIXEL_7_PRO)
@Preview(showBackground = true, device = Devices.PIXEL_7_PRO, uiMode = Configuration.UI_MODE_NIGHT_YES) @Preview(showBackground = true, device = Devices.PIXEL_7_PRO, uiMode = Configuration.UI_MODE_NIGHT_YES)
private fun WcSelectWalletContent_Preview() { private fun WcSelectWalletContent_Preview() {
TangemThemePreview { val wallets = persistentListOf(
TangemModalBottomSheet<TangemBottomSheetConfigContent.Empty>(
containerColor = TangemTheme.colors.background.primary,
config = TangemBottomSheetConfig(
isShown = true,
onDismissRequest = {},
content = TangemBottomSheetConfigContent.Empty,
),
title = {
TangemModalBottomSheetTitle(
title = stringReference("Choose wallet"),
onEndClick = {},
endIconRes = R.drawable.ic_close_24,
)
},
content = {
WcSelectWalletContent(
modifier = Modifier.padding(start = 16.dp, end = 16.dp, bottom = 16.dp),
selectedWalletId = UserWalletId("user_wallet_1".encodeToByteArray()),
wallets = persistentListOf(
UserWalletItemUM( UserWalletItemUM(
id = UserWalletId("user_wallet_1".encodeToByteArray()), id = UserWalletId("user_wallet_1".encodeToByteArray()),
name = stringReference("Tangem 2.0"), name = stringReference("Tangem 2.0"),
information = getInformation(42), information = getInformation(42),
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
@ -177,7 +159,7 @@ private fun WcSelectWalletContent_Preview() {
id = UserWalletId("user_wallet_2".encodeToByteArray()), id = UserWalletId("user_wallet_2".encodeToByteArray()),
name = stringReference("Tangem White"), name = stringReference("Tangem White"),
information = getInformation(24), information = getInformation(24),
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
@ -185,7 +167,7 @@ private fun WcSelectWalletContent_Preview() {
id = UserWalletId("user_wallet_3".encodeToByteArray()), id = UserWalletId("user_wallet_3".encodeToByteArray()),
name = stringReference("Bitcoin"), name = stringReference("Bitcoin"),
information = getInformation(1), information = getInformation(1),
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
@ -193,7 +175,7 @@ private fun WcSelectWalletContent_Preview() {
id = UserWalletId("user_wallet_4".encodeToByteArray()), id = UserWalletId("user_wallet_4".encodeToByteArray()),
name = stringReference("Tangem 1.0"), name = stringReference("Tangem 1.0"),
information = getInformation(21), information = getInformation(21),
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
@ -201,7 +183,7 @@ private fun WcSelectWalletContent_Preview() {
id = UserWalletId("user_wallet_4".encodeToByteArray()), id = UserWalletId("user_wallet_4".encodeToByteArray()),
name = stringReference("Tangem 1.0"), name = stringReference("Tangem 1.0"),
information = UserWalletItemUM.Information.Loading, information = UserWalletItemUM.Information.Loading,
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
@ -209,13 +191,17 @@ private fun WcSelectWalletContent_Preview() {
id = UserWalletId("user_wallet_4".encodeToByteArray()), id = UserWalletId("user_wallet_4".encodeToByteArray()),
name = stringReference("Tangem 1.0"), name = stringReference("Tangem 1.0"),
information = UserWalletItemUM.Information.Failed, information = UserWalletItemUM.Information.Failed,
balance = UserWalletItemUM.Balance.Loaded("1 496,34 \$", isFlickering = false), balance = UserWalletItemUM.Balance.Loaded("1 496,34 $", isFlickering = false),
isEnabled = true, isEnabled = true,
onClick = {}, onClick = {},
), ),
),
) )
}, TangemThemePreview {
WcSelectWalletModalBS(
wallets = wallets,
selectedWalletId = wallets.first().id,
onBack = {},
onDismiss = {},
) )
} }
} }

View file

@ -7,9 +7,9 @@ import com.domain.blockaid.models.dapp.CheckDAppResult
import com.tangem.core.decompose.di.ModelScoped import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.extensions.iconResId import com.tangem.core.ui.extensions.iconResId
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.message.SnackbarMessage import com.tangem.core.ui.message.SnackbarMessage
import com.tangem.domain.walletconnect.model.WcSession import com.tangem.domain.walletconnect.model.WcSession
@ -23,6 +23,7 @@ import com.tangem.features.walletconnect.connections.entity.WcPrimaryButtonConfi
import com.tangem.features.walletconnect.connections.entity.WcAppInfoSecurityNotification import com.tangem.features.walletconnect.connections.entity.WcAppInfoSecurityNotification
import com.tangem.features.walletconnect.connections.model.transformers.WcAppSubtitleConverter import com.tangem.features.walletconnect.connections.model.transformers.WcAppSubtitleConverter
import com.tangem.features.walletconnect.connections.routes.ConnectedAppInfoRoutes import com.tangem.features.walletconnect.connections.routes.ConnectedAppInfoRoutes
import com.tangem.features.walletconnect.impl.R
import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
@ -35,7 +36,6 @@ import javax.inject.Inject
@Stable @Stable
@ModelScoped @ModelScoped
internal class WcConnectedAppInfoModel @Inject constructor( internal class WcConnectedAppInfoModel @Inject constructor(
private val router: Router,
private val wcSessionsUseCase: WcSessionsUseCase, private val wcSessionsUseCase: WcSessionsUseCase,
private val messageSender: UiMessageSender, private val messageSender: UiMessageSender,
private val disconnectUseCase: WcDisconnectUseCase, private val disconnectUseCase: WcDisconnectUseCase,
@ -121,7 +121,7 @@ internal class WcConnectedAppInfoModel @Inject constructor(
} }
modelScope.launch { modelScope.launch {
disconnectUseCase.disconnect(session) disconnectUseCase.disconnect(session)
messageSender.send(SnackbarMessage(message = stringReference("dApp disconnected"))) messageSender.send(SnackbarMessage(message = resourceReference(R.string.wc_dapp_disconnected)))
dismiss() dismiss()
} }
} }

View file

@ -13,7 +13,6 @@ import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM import com.tangem.core.ui.components.appbar.models.TopAppBarButtonUM
import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem import com.tangem.core.ui.components.dropdownmenu.TangemDropdownMenuItem
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.message.DialogMessage import com.tangem.core.ui.message.DialogMessage
import com.tangem.core.ui.message.EventMessageAction import com.tangem.core.ui.message.EventMessageAction
import com.tangem.core.ui.message.SnackbarMessage import com.tangem.core.ui.message.SnackbarMessage
@ -50,7 +49,7 @@ internal class WcConnectionsModel @Inject constructor(
private val wcDisconnectUseCase: WcDisconnectUseCase, private val wcDisconnectUseCase: WcDisconnectUseCase,
private val wcPairService: WcPairService, private val wcPairService: WcPairService,
override val dispatchers: CoroutineDispatcherProvider, override val dispatchers: CoroutineDispatcherProvider,
private val analytics: AnalyticsEventHandler, analytics: AnalyticsEventHandler,
paramsContainer: ParamsContainer, paramsContainer: ParamsContainer,
) : Model() { ) : Model() {
@ -127,7 +126,7 @@ internal class WcConnectionsModel @Inject constructor(
private fun disconnectAllSessions() { private fun disconnectAllSessions() {
modelScope.launch { modelScope.launch {
wcDisconnectUseCase.disconnectAll() wcDisconnectUseCase.disconnectAll()
uiMessageSender.send(SnackbarMessage(message = stringReference("All dApps disconnected"))) uiMessageSender.send(SnackbarMessage(message = resourceReference(R.string.wc_all_dapps_disconnected)))
} }
} }

View file

@ -11,7 +11,9 @@ import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.navigation.Router import com.tangem.core.decompose.navigation.Router
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.message.SnackbarMessage import com.tangem.core.ui.message.SnackbarMessage
import com.tangem.core.ui.message.ToastMessage import com.tangem.core.ui.message.ToastMessage
import com.tangem.domain.models.network.Network import com.tangem.domain.models.network.Network
@ -30,6 +32,7 @@ import com.tangem.features.walletconnect.connections.entity.WcAppInfoUM
import com.tangem.features.walletconnect.connections.entity.WcPrimaryButtonConfig import com.tangem.features.walletconnect.connections.entity.WcPrimaryButtonConfig
import com.tangem.features.walletconnect.connections.model.transformers.* import com.tangem.features.walletconnect.connections.model.transformers.*
import com.tangem.features.walletconnect.connections.routes.WcAppInfoRoutes import com.tangem.features.walletconnect.connections.routes.WcAppInfoRoutes
import com.tangem.features.walletconnect.impl.R
import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.flow.* import kotlinx.coroutines.flow.*
import javax.inject.Inject import javax.inject.Inject
@ -199,9 +202,13 @@ internal class WcPairModel @Inject constructor(
} }
private fun processSuccessfullyConnected(session: WcSession) { private fun processSuccessfullyConnected(session: WcSession) {
// TODO: [REDACTED_JIRA] localization
messageSender.send( messageSender.send(
SnackbarMessage(message = stringReference("Connected to ${session.sdkModel.appMetaData.name}")), SnackbarMessage(
message = resourceReference(
id = R.string.wc_connected_to,
formatArgs = wrappedList(session.sdkModel.appMetaData.name),
),
),
) )
} }

View file

@ -3,7 +3,6 @@ package com.tangem.features.walletconnect.connections.model.transformers
import com.tangem.domain.models.network.Network import com.tangem.domain.models.network.Network
import com.tangem.utils.converter.Converter import com.tangem.utils.converter.Converter
@Suppress("DestructuringDeclarationWithTooManyEntries")
internal object WcConnectButtonAvailabilityConverter : Converter<WcConnectButtonAvailabilityConverter.Input, Boolean> { internal object WcConnectButtonAvailabilityConverter : Converter<WcConnectButtonAvailabilityConverter.Input, Boolean> {
override fun convert(value: Input): Boolean { override fun convert(value: Input): Boolean {

View file

@ -7,7 +7,6 @@ import com.tangem.features.walletconnect.connections.entity.WcNetworksInfo
import com.tangem.utils.converter.Converter import com.tangem.utils.converter.Converter
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
@Suppress("DestructuringDeclarationWithTooManyEntries")
internal object WcNetworksInfoConverter : Converter<WcNetworksInfoConverter.Input, WcNetworksInfo> { internal object WcNetworksInfoConverter : Converter<WcNetworksInfoConverter.Input, WcNetworksInfo> {
override fun convert(value: Input): WcNetworksInfo { override fun convert(value: Input): WcNetworksInfo {
val missing = value.missingNetworks val missing = value.missingNetworks

View file

@ -6,7 +6,6 @@ import androidx.annotation.StringRes
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@ -23,7 +22,6 @@ import androidx.compose.ui.unit.dp
import com.tangem.core.ui.R import com.tangem.core.ui.R
import com.tangem.core.ui.components.PrimaryButton import com.tangem.core.ui.components.PrimaryButton
import com.tangem.core.ui.components.SecondaryButton import com.tangem.core.ui.components.SecondaryButton
import com.tangem.core.ui.components.SecondaryButtonIconEnd
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
@ -77,7 +75,6 @@ private fun ContentContainer(alert: AlertsComponent.AlertType, modifier: Modifie
.padding(top = TangemTheme.dimens.spacing8), .padding(top = TangemTheme.dimens.spacing8),
alert = alert, alert = alert,
) )
AlertAudit(alert, modifier = Modifier.padding(top = TangemTheme.dimens.spacing16))
} }
} }
@ -90,71 +87,12 @@ private fun ButtonsContainer(alert: AlertsComponent.AlertType, modifier: Modifie
) { ) {
val buttonsModifier = Modifier.fillMaxWidth() val buttonsModifier = Modifier.fillMaxWidth()
when (alert) { when (alert) {
is AlertsComponent.AlertType.UnsafeDomain -> { is AlertsComponent.AlertType.UnsupportedMethod -> SecondaryButton(
PrimaryButton(
modifier = buttonsModifier,
text = stringResourceSafe(R.string.common_cancel),
onClick = alert.onDismiss,
)
SecondaryButton(
modifier = buttonsModifier,
onClick = alert.onConnect,
text = stringResourceSafe(R.string.wc_alert_connect_anyway),
)
}
is AlertsComponent.AlertType.MaliciousTransaction -> {
PrimaryButton(
modifier = buttonsModifier,
text = stringResourceSafe(R.string.common_cancel),
onClick = alert.onDismiss,
)
SecondaryButtonIconEnd(
modifier = buttonsModifier,
onClick = alert.onConnect,
iconResId = R.drawable.ic_tangem_24,
text = stringResourceSafe(R.string.wc_alert_connect_anyway),
)
}
is AlertsComponent.AlertType.UnknownDomain -> {
PrimaryButton(
modifier = buttonsModifier,
text = stringResourceSafe(R.string.common_cancel),
onClick = alert.onDismiss,
)
SecondaryButton(
modifier = buttonsModifier,
onClick = alert.onConnect,
text = stringResourceSafe(R.string.wc_alert_connect_anyway),
)
}
is AlertsComponent.AlertType.VerifiedDomain -> SecondaryButton(
modifier = buttonsModifier,
text = stringResourceSafe(R.string.common_done),
onClick = alert.onDismiss,
)
is AlertsComponent.AlertType.ConnectionTimeout -> {
PrimaryButton(
modifier = buttonsModifier,
onClick = alert.onTryAgain,
text = stringResourceSafe(R.string.alert_button_try_again),
)
SecondaryButton(
modifier = buttonsModifier, modifier = buttonsModifier,
onClick = alert.onDismiss, onClick = alert.onDismiss,
text = stringResourceSafe(R.string.balance_hidden_got_it_button), text = stringResourceSafe(R.string.balance_hidden_got_it_button),
) )
} is AlertsComponent.AlertType.WcDisconnected -> PrimaryButton(
is AlertsComponent.AlertType.WrongCardSelected,
is AlertsComponent.AlertType.UnknownError,
is AlertsComponent.AlertType.UnsupportedMethod,
-> SecondaryButton(
modifier = buttonsModifier,
onClick = alert.onDismiss,
text = stringResourceSafe(R.string.balance_hidden_got_it_button),
)
is AlertsComponent.AlertType.WcDisconnected,
is AlertsComponent.AlertType.UnsupportedNetworks,
-> PrimaryButton(
modifier = buttonsModifier, modifier = buttonsModifier,
onClick = alert.onDismiss, onClick = alert.onDismiss,
text = stringResourceSafe(R.string.balance_hidden_got_it_button), text = stringResourceSafe(R.string.balance_hidden_got_it_button),
@ -166,49 +104,17 @@ private fun ButtonsContainer(alert: AlertsComponent.AlertType, modifier: Modifie
@Composable @Composable
private fun AlertIcon(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) { private fun AlertIcon(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) {
val color = when (alert) { val color = when (alert) {
is AlertsComponent.AlertType.VerifiedDomain -> TangemTheme.colors.icon.accent is AlertsComponent.AlertType.WcDisconnected -> TangemTheme.colors.icon.informative
is AlertsComponent.AlertType.WcDisconnected, is AlertsComponent.AlertType.UnsupportedMethod -> TangemTheme.colors.icon.attention
is AlertsComponent.AlertType.ConnectionTimeout,
is AlertsComponent.AlertType.UnsupportedNetworks,
-> TangemTheme.colors.icon.informative
is AlertsComponent.AlertType.WrongCardSelected,
is AlertsComponent.AlertType.UnknownDomain,
is AlertsComponent.AlertType.UnknownError,
is AlertsComponent.AlertType.UnsupportedMethod,
-> TangemTheme.colors.icon.attention
is AlertsComponent.AlertType.MaliciousTransaction,
is AlertsComponent.AlertType.UnsafeDomain,
-> TangemTheme.colors.icon.warning
} }
@DrawableRes val drawableId = when (alert) { @DrawableRes val drawableId = when (alert) {
is AlertsComponent.AlertType.WcDisconnected, is AlertsComponent.AlertType.WcDisconnected -> R.drawable.ic_wallet_connect_24
is AlertsComponent.AlertType.ConnectionTimeout, is AlertsComponent.AlertType.UnsupportedMethod -> R.drawable.img_attention_20
-> R.drawable.ic_wallet_connect_24
is AlertsComponent.AlertType.MaliciousTransaction -> R.drawable.img_knight_shield_32
is AlertsComponent.AlertType.UnknownDomain,
is AlertsComponent.AlertType.UnsafeDomain,
-> R.drawable.img_knight_shield_32
is AlertsComponent.AlertType.UnsupportedNetworks -> R.drawable.ic_network_new_24
is AlertsComponent.AlertType.WrongCardSelected,
is AlertsComponent.AlertType.UnknownError,
is AlertsComponent.AlertType.UnsupportedMethod,
-> R.drawable.img_attention_20
is AlertsComponent.AlertType.VerifiedDomain -> R.drawable.img_approvale2_20
} }
val iconTint = when (alert) { val iconTint = when (alert) {
is AlertsComponent.AlertType.UnknownDomain, is AlertsComponent.AlertType.WcDisconnected -> color
is AlertsComponent.AlertType.UnsafeDomain, is AlertsComponent.AlertType.UnsupportedMethod -> Color.Unspecified
is AlertsComponent.AlertType.MaliciousTransaction,
is AlertsComponent.AlertType.UnsupportedNetworks,
is AlertsComponent.AlertType.ConnectionTimeout,
is AlertsComponent.AlertType.WcDisconnected,
-> color
is AlertsComponent.AlertType.VerifiedDomain,
is AlertsComponent.AlertType.UnknownError,
is AlertsComponent.AlertType.WrongCardSelected,
is AlertsComponent.AlertType.UnsupportedMethod,
-> Color.Unspecified
} }
Box( Box(
modifier = modifier modifier = modifier
@ -230,16 +136,7 @@ private fun AlertIcon(alert: AlertsComponent.AlertType, modifier: Modifier = Mod
@Composable @Composable
private fun AlertContentTitle(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) { private fun AlertContentTitle(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) {
@StringRes val titleRes: Int = when (alert) { @StringRes val titleRes: Int = when (alert) {
is AlertsComponent.AlertType.UnknownDomain,
is AlertsComponent.AlertType.UnsafeDomain,
is AlertsComponent.AlertType.MaliciousTransaction,
-> R.string.security_alert_title
is AlertsComponent.AlertType.ConnectionTimeout -> R.string.wc_alert_connection_timeout_title
is AlertsComponent.AlertType.UnknownError -> R.string.wc_alert_unknown_error_title
is AlertsComponent.AlertType.UnsupportedNetworks -> R.string.wc_alert_unsupported_networks_title
is AlertsComponent.AlertType.VerifiedDomain -> R.string.wc_alert_verified_domain_title
is AlertsComponent.AlertType.WcDisconnected -> R.string.wc_alert_session_disconnected_title is AlertsComponent.AlertType.WcDisconnected -> R.string.wc_alert_session_disconnected_title
is AlertsComponent.AlertType.WrongCardSelected -> R.string.wc_alert_wrong_card_title
is AlertsComponent.AlertType.UnsupportedMethod -> R.string.wc_alert_unsupported_method_title is AlertsComponent.AlertType.UnsupportedMethod -> R.string.wc_alert_unsupported_method_title
} }
Text( Text(
@ -254,29 +151,9 @@ private fun AlertContentTitle(alert: AlertsComponent.AlertType, modifier: Modifi
@Composable @Composable
private fun AlertContentDescription(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) { private fun AlertContentDescription(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) {
val message = when (alert) { val message = when (alert) {
is AlertsComponent.AlertType.ConnectionTimeout -> stringResourceSafe(
R.string.wc_alert_connection_timeout_description,
)
is AlertsComponent.AlertType.MaliciousTransaction -> alert.descriptionMessage
is AlertsComponent.AlertType.UnknownDomain,
is AlertsComponent.AlertType.UnsafeDomain,
-> stringResourceSafe(R.string.wc_alert_domain_issues_description)
is AlertsComponent.AlertType.UnknownError -> stringResourceSafe(
R.string.wc_alert_unknown_error_description,
alert.errorCode,
)
is AlertsComponent.AlertType.UnsupportedNetworks -> stringResourceSafe(
R.string.wc_alert_unsupported_networks_description,
alert.appName,
)
is AlertsComponent.AlertType.VerifiedDomain -> stringResourceSafe(
R.string.wc_alert_verified_domain_description,
alert.appName,
)
is AlertsComponent.AlertType.WcDisconnected -> stringResourceSafe( is AlertsComponent.AlertType.WcDisconnected -> stringResourceSafe(
R.string.wc_alert_session_disconnected_description, R.string.wc_alert_session_disconnected_description,
) )
is AlertsComponent.AlertType.WrongCardSelected -> stringResourceSafe(R.string.wc_alert_wrong_card_description)
is AlertsComponent.AlertType.UnsupportedMethod -> stringResourceSafe( is AlertsComponent.AlertType.UnsupportedMethod -> stringResourceSafe(
R.string.wc_alert_unsupported_method_description, R.string.wc_alert_unsupported_method_description,
) )
@ -290,44 +167,6 @@ private fun AlertContentDescription(alert: AlertsComponent.AlertType, modifier:
) )
} }
@Composable
private fun AlertAudit(alert: AlertsComponent.AlertType, modifier: Modifier = Modifier) {
when (alert) {
is AlertsComponent.AlertType.UnknownDomain -> Text(
modifier = modifier
.background(
shape = RoundedCornerShape(TangemTheme.dimens.radius16),
color = TangemTheme.colors.text.primary1.copy(alpha = 0.1F),
)
.padding(vertical = TangemTheme.dimens.spacing4, horizontal = TangemTheme.dimens.spacing12),
text = stringResourceSafe(R.string.wc_alert_audit_unknown_domain),
style = TangemTheme.typography.caption1,
color = TangemTheme.colors.text.primary1,
)
is AlertsComponent.AlertType.UnsafeDomain -> Text(
modifier = Modifier
.padding(top = TangemTheme.dimens.spacing16)
.background(
shape = RoundedCornerShape(TangemTheme.dimens.radius16),
color = TangemTheme.colors.text.warning.copy(alpha = 0.1F),
)
.padding(vertical = TangemTheme.dimens.spacing4, horizontal = TangemTheme.dimens.spacing12),
text = stringResourceSafe(R.string.wc_alert_audit_unknown_domain),
style = TangemTheme.typography.caption1,
color = TangemTheme.colors.text.warning,
)
is AlertsComponent.AlertType.ConnectionTimeout,
is AlertsComponent.AlertType.MaliciousTransaction,
is AlertsComponent.AlertType.UnknownError,
is AlertsComponent.AlertType.UnsupportedNetworks,
is AlertsComponent.AlertType.VerifiedDomain,
is AlertsComponent.AlertType.WcDisconnected,
is AlertsComponent.AlertType.WrongCardSelected,
is AlertsComponent.AlertType.UnsupportedMethod,
-> Unit
}
}
@Preview(showBackground = true) @Preview(showBackground = true)
@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES) @Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES)
@Composable @Composable
@ -347,19 +186,7 @@ private fun AlertsModalBottomSheet_Preview(
private class AlertTypesProvider : CollectionPreviewParameterProvider<AlertsComponent.AlertType>( private class AlertTypesProvider : CollectionPreviewParameterProvider<AlertsComponent.AlertType>(
collection = listOf( collection = listOf(
AlertsComponent.AlertType.VerifiedDomain(appName = "React App", onDismiss = {}),
AlertsComponent.AlertType.UnknownDomain(onConnect = {}, onDismiss = {}),
AlertsComponent.AlertType.UnsafeDomain(onConnect = {}, onDismiss = {}),
AlertsComponent.AlertType.MaliciousTransaction(
descriptionMessage = "The transaction approves erc20 tokens to a known malicious address",
onConnect = {},
onDismiss = {},
),
AlertsComponent.AlertType.UnsupportedNetworks(appName = "React App", onDismiss = {}),
AlertsComponent.AlertType.WcDisconnected(onDismiss = {}), AlertsComponent.AlertType.WcDisconnected(onDismiss = {}),
AlertsComponent.AlertType.UnknownError(errorCode = 8005, onDismiss = {}),
AlertsComponent.AlertType.WrongCardSelected(onDismiss = {}),
AlertsComponent.AlertType.ConnectionTimeout(onTryAgain = {}, onDismiss = {}),
AlertsComponent.AlertType.UnsupportedMethod(onDismiss = {}), AlertsComponent.AlertType.UnsupportedMethod(onDismiss = {}),
), ),
) )

View file

@ -35,7 +35,10 @@ import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTi
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetWithFooter import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetWithFooter
import com.tangem.core.ui.components.notifications.Notification import com.tangem.core.ui.components.notifications.Notification
import com.tangem.core.ui.components.notifications.NotificationConfig import com.tangem.core.ui.components.notifications.NotificationConfig
import com.tangem.core.ui.extensions.* import com.tangem.core.ui.extensions.clickableSingle
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemColorPalette
import com.tangem.core.ui.res.TangemTheme import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview import com.tangem.core.ui.res.TangemThemePreview
@ -286,9 +289,8 @@ private fun WcAppInfoSecondBlock(state: WcAppInfoUM.Content, modifier: Modifier
Notification( Notification(
config = NotificationConfig( config = NotificationConfig(
iconResId = R.drawable.ic_alert_circle_24, iconResId = R.drawable.ic_alert_circle_24,
// TODO: [REDACTED_JIRA] localization title = resourceReference(R.string.wc_specify_networks_title),
title = stringReference("Specify selected networks"), subtitle = resourceReference(R.string.wc_specify_networks_subtitle),
subtitle = stringReference("At least one network is required for dApp connection"),
), ),
iconTint = TangemTheme.colors.icon.attention, iconTint = TangemTheme.colors.icon.attention,
containerColor = TangemTheme.colors.background.action, containerColor = TangemTheme.colors.background.action,

View file

@ -23,7 +23,6 @@ import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheet
import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle
import com.tangem.core.ui.components.notifications.Notification import com.tangem.core.ui.components.notifications.Notification
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.extensions.wrappedList import com.tangem.core.ui.extensions.wrappedList
import com.tangem.core.ui.res.TangemColorPalette import com.tangem.core.ui.res.TangemColorPalette
@ -48,7 +47,7 @@ internal fun WcConnectedAppInfoBS(state: WcConnectedAppInfoUM) {
containerColor = TangemTheme.colors.background.tertiary, containerColor = TangemTheme.colors.background.tertiary,
title = { title = {
TangemModalBottomSheetTitle( TangemModalBottomSheetTitle(
title = stringReference("Connected App"), // TODO: [REDACTED_JIRA] title = resourceReference(R.string.wc_connected_app_title),
subtitle = state.connectingTime?.let { timestamp -> subtitle = state.connectingTime?.let { timestamp ->
resourceReference( resourceReference(
R.string.send_date_format, R.string.send_date_format,

View file

@ -1,6 +0,0 @@
package com.tangem.features.walletconnect.transaction.entity.blockaid
internal data class TransactionCheckResultsUM(
val estimatedWalletChanges: WcEstimatedWalletChangesUM,
val notificationText: String? = null,
)

View file

@ -2,8 +2,9 @@ package com.tangem.features.walletconnect.transaction.entity.common
import com.tangem.core.decompose.ui.UiMessageSender import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.TextReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.message.ToastMessage import com.tangem.core.ui.message.ToastMessage
import com.tangem.features.walletconnect.impl.R
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
internal interface WcCommonTransactionModel { internal interface WcCommonTransactionModel {
@ -16,8 +17,7 @@ internal interface WcCommonTransactionModel {
fun popBack() fun popBack()
// TODO: [REDACTED_JIRA] fun showSuccessSignMessage(message: TextReference = resourceReference(R.string.wc_successfully_signed)) {
fun showSuccessSignMessage(message: TextReference = stringReference("Successfully signed")) {
messageSender.send(ToastMessage(message = message)) messageSender.send(ToastMessage(message = message))
} }
} }

View file

@ -4,7 +4,7 @@ import com.tangem.blockchain.common.transaction.TransactionFee
import com.tangem.common.ui.notifications.NotificationUM import com.tangem.common.ui.notifications.NotificationUM
import com.tangem.core.ui.components.notifications.NotificationConfig import com.tangem.core.ui.components.notifications.NotificationConfig
import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.extensions.stringReference import com.tangem.core.ui.extensions.wrappedList
import com.tangem.domain.tokens.model.CryptoCurrencyStatus import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.features.send.v2.api.entity.FeeSelectorUM import com.tangem.features.send.v2.api.entity.FeeSelectorUM
import com.tangem.features.send.v2.api.subcomponents.feeSelector.utils.FeeCalculationUtils import com.tangem.features.send.v2.api.subcomponents.feeSelector.utils.FeeCalculationUtils
@ -29,10 +29,12 @@ internal class WcNotificationsFactory @Inject constructor() {
cryptoCurrencyStatus: CryptoCurrencyStatus, cryptoCurrencyStatus: CryptoCurrencyStatus,
feeSelectorUM: FeeSelectorUM?, feeSelectorUM: FeeSelectorUM?,
): NotificationUM.Info? { ): NotificationUM.Info? {
// TODO: [REDACTED_TASK_KEY] localization
return NotificationUM.Info( return NotificationUM.Info(
title = stringReference("Insufficient ${cryptoCurrencyStatus.currency.name}"), title = resourceReference(
subtitle = stringReference("Top up your balance to cover the network fee"), id = R.string.wc_insufficient_warning_title,
formatArgs = wrappedList(cryptoCurrencyStatus.currency.name),
),
subtitle = resourceReference(R.string.wc_insufficient_warning_subtitle),
).takeIf { isFeeExceedsBalance(cryptoCurrencyStatus = cryptoCurrencyStatus, feeSelectorUM = feeSelectorUM) } ).takeIf { isFeeExceedsBalance(cryptoCurrencyStatus = cryptoCurrencyStatus, feeSelectorUM = feeSelectorUM) }
} }