Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-13 12:43:25 +05:00
commit e98a8dd6c8
15 changed files with 196 additions and 56 deletions

View file

@ -147,6 +147,7 @@
<string name="common_close">Schließen</string>
<string name="common_coming_soon">Demnächst verfügbar</string>
<string name="common_confirm">Bestätigen</string>
<string name="common_connecting">Verbinden</string>
<string name="common_contact_tangem_support">Kontakt zum Tangem-Support</string>
<string name="common_contact_visa_support">Kontakt zum Visa-Support</string>
<string name="common_continue">Weiter</string>
@ -249,6 +250,10 @@
<string name="common_terms_and_conditions">Allgemeine Geschäftsbedingungen</string>
<string name="common_terms_of_use">Nutzungsbedingungen</string>
<string name="common_today">Heute</string>
<plurals name="common_tokens_count">
<item quantity="one">%d Token</item>
<item quantity="other">%d Token</item>
</plurals>
<string name="common_transaction_failed">Transaktion fehlgeschlagen</string>
<string name="common_transaction_status">Transaktionsstatus</string>
<string name="common_transactions">Transaktionen</string>

View file

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<string name="account_details_archive">Archivar cuenta</string>
<string name="account_details_archive_action">Archivo</string>
<string name="account_details_archive_description">Estás archivando esta cuenta, pero siempre puedes recuperarla.</string>
<string name="account_details_title">Cuenta</string>
<string name="action_buttons_buy_empty_search_message">¿No encuentra el token en su billetera? Consulte la sección de Mercados para encontrarlo y añadirlo a la compra</string>
<string name="action_buttons_sell_empty_search_message">¿No encuentra el token en su billetera? Consulte los mercados para encontrarlo y añadirlo a la venta</string>
<string name="action_buttons_sell_navigation_bar_title">Vender</string>
@ -34,12 +38,16 @@
<string name="alert_manage_tokens_unsupported_message">Esta tarjeta no admite tokens en la red %1$s debido a una limitación del firmware.</string>
<string name="alert_troubleshooting_scan_card_title">¿Tiene dificultades para escanear su tarjeta/anillo?</string>
<string name="alert_unsupported_card">Esta tarjeta no está diseñada para funcionar con Tangem</string>
<string name="app_settings_biometrics_footer">Utilice %1$s para desbloquear de forma rápida y segura su biletera y autorizar todas las acciones importantes, como la firma de transacciones. En el caso de las billeteras físicas, seguirá necesitando una tarjeta para firmar.</string>
<string name="app_settings_default_fee">Tarifa por defecto</string>
<string name="app_settings_default_fee_footer">Habilite las Tarifas predeterminadas para establecer automáticamente las tarifas de transacción y omitir la página de Tarifas al enviar fondos. Siempre puede volver a esta página si es necesario.</string>
<string name="app_settings_enable_biometrics_description">Vaya a ajustes para habilitar la autenticación biométrica en la Tangem App</string>
<string name="app_settings_enable_biometrics_title">Habilitar autenticación biométrica</string>
<string name="app_settings_off_biometrics_alert_message">Para deshabilitar %1$s deberá ingresar su código de acceso para desbloquear la aplicación e interactuar con su billetera.</string>
<string name="app_settings_off_saved_access_code_alert_message">Esto eliminará todos los códigos de acceso guardados de la billetera. Cualquier operación posterior con la billetera requerirá introducir el código de acceso.</string>
<string name="app_settings_off_saved_wallet_alert_message">Eliminar la tarjeta guardada borra todos las billeteras guardadas y sus códigos de acceso de la app.</string>
<string name="app_settings_require_access_code">Requerir código de acceso</string>
<string name="app_settings_require_access_code_footer">Esta opción desactiva la autenticación biométrica para acciones importantes. Se le pedirá que introduzca su código de acceso cada vez que, por ejemplo, deba firmar una transacción.</string>
<string name="app_settings_saved_access_codes">Guardar código de acceso</string>
<string name="app_settings_saved_access_codes_footer">Se solicitará la autenticación biométrica en lugar del código de acceso para las interacciones con su tarjeta o anillo.</string>
<string name="app_settings_saved_wallet">Mantener la billetera en la app</string>
@ -135,6 +143,7 @@
<string name="common_close">Cerrar</string>
<string name="common_coming_soon">Próximamente</string>
<string name="common_confirm">Confirme</string>
<string name="common_connecting">Conectando</string>
<string name="common_contact_tangem_support">Contacte con el soporte de Tangem</string>
<string name="common_contact_visa_support">Contacte con el soporte de Visa</string>
<string name="common_continue">Continuar</string>
@ -153,6 +162,7 @@
<item quantity="other">días</item>
</plurals>
<string name="common_delete">Suprimir</string>
<string name="common_disable">Desactivar</string>
<string name="common_disabled">Desactivado</string>
<string name="common_disconnect">Desconectar</string>
<string name="common_done">Listo</string>
@ -191,6 +201,7 @@
<string name="common_no">No</string>
<string name="common_no_address">Ninguna dirección</string>
<string name="common_not_added">No aregada</string>
<string name="common_not_now">Ahora no</string>
<string name="common_now">Ahora</string>
<string name="common_ok">OK</string>
<string name="common_open_in_browser">Abrir en el navegador</string>
@ -206,6 +217,7 @@
<string name="common_reject">Rechazar</string>
<string name="common_reload">Recargar</string>
<string name="common_rename">Renombrar</string>
<string name="common_required">Requerido</string>
<string name="common_save">Guarde</string>
<string name="common_save_changes">Guardar cambios</string>
<string name="common_search">Buscar</string>
@ -235,6 +247,10 @@
<string name="common_terms_and_conditions">términos y condiciones</string>
<string name="common_terms_of_use">Condiciones de uso</string>
<string name="common_today">Hoy</string>
<plurals name="common_tokens_count">
<item quantity="one">%d ficha</item>
<item quantity="other">%d fichas</item>
</plurals>
<string name="common_transaction_failed">Transacción fallida</string>
<string name="common_transaction_status">Estado de la transacción</string>
<string name="common_transactions">Transacciones</string>
@ -301,6 +317,8 @@
<string name="details_title">Detalles</string>
<string name="disclaimer_error_loading">Compruebe su conexión a internet o cambia a una red diferente</string>
<string name="disclaimer_title">Condiciones de uso</string>
<string name="domain_receive_assets_navigation_title">Recibir activos</string>
<string name="email_subject_wc_error">Error de Wallet Connect</string>
<string name="error_wrong_wallet_tapped">Ha usado una tarjeta de otra billetera. Toque la tarjeta asociada con esta billetera</string>
<string name="eth_gas_required_exceeds_allowance">No hay fondos suficientes para la transacción. Por favor, recargue su cuenta.</string>
<string name="exchange_tokens_available_tokens_header">Mis tokens</string>
@ -358,6 +376,7 @@
<string name="express_provider">Proveedor</string>
<string name="express_provider_best_rate">Mejor tarifa</string>
<string name="express_provider_fca_warning_list">Lista de advertencias de la FCA</string>
<string name="express_provider_in_fca_warning_list">Proveedor en la lista de advertencia de la FCA</string>
<string name="express_provider_max_amount">Disponible hasta %s</string>
<string name="express_provider_min_amount">Disponible desde %s</string>
<string name="express_provider_not_available">No disponible para este par</string>
@ -405,6 +424,8 @@
<string name="home_button_scan">Escanee</string>
<string name="hot_crypto_add_token_subtitle">a %s</string>
<string name="hot_crypto_token_network">En la red %s</string>
<string name="hw_access_code_create_alert_title">¿Está seguro de que desea salir del proceso de creación del código de acceso?</string>
<string name="hw_backup_close_description">Si lo haces, tendrás que empezar de nuevo.</string>
<string name="hw_create_seed_description">Mantente al día con las últimas funciones y noticias</string>
<string name="information_generated_with_ai">Esta información fue generada con IA.\nPulse aquí si encuentra algún error.</string>
<string name="initial_message_change_access_code_body">Para cambiar el código de acceso coloque la tarjeta o el anillo como se muestra arriba y no lo retire hasta el fin de la operación</string>
@ -908,9 +929,14 @@
<string name="send_validation_invalid_amount">Cantidad no válida</string>
<string name="send_validation_invalid_fee">La tarifa excede el saldo</string>
<string name="send_validation_invalid_total">El monto total excede el saldo</string>
<string name="send_with_swap_confirm_title">Intercambiar y enviar</string>
<string name="send_with_swap_convert_token_alert_message">¿Continuar con la conversión? Esto borrará tus datos anteriores.</string>
<string name="send_with_swap_convert_token_alert_title">Confirmar Conversión</string>
<string name="send_with_swap_notification_text">Envía cualquier token y lo convertiremos en el camino. Su destinatario obtiene exactamente lo que necesita, sin problemas.</string>
<string name="send_with_swap_recipient_amount_text">Se enviará un destinatario</string>
<string name="send_with_swap_recipient_amount_success_title">El destinatario recibirá</string>
<string name="send_with_swap_recipient_amount_text">Al destinatario</string>
<string name="send_with_swap_recipient_amount_title">Cantidad a recibir</string>
<string name="send_with_swap_remove_convert_alert_message">¿Seguro que desea cancelar la conversión? Se borrarán sus datos anteriores.</string>
<string name="send_with_swap_title">Enviar con swap</string>
<string name="sent_transaction_sent_title">Transacción enviada</string>
<string name="settings_card_settings_footer">Escanee la tarjeta/anillo que quiere configurar</string>
@ -1210,8 +1236,10 @@
<string name="wallet_promo_banner_button_title">Consíguelo ahora con un 10 % de descuento</string>
<string name="wallet_promo_banner_description">Accede a más de 13 000 criptomonedas. Compra, vende, intercambia y realiza staking con un solo toque.\nVincula hasta tres tarjetas para hacer copias de seguridad.</string>
<string name="wallet_promo_banner_title">Descubre Tangem Wallet</string>
<string name="wallet_settings_change_access_code_title">Cambiar código de acceso</string>
<string name="wallet_settings_push_notifications_description">Manténteinformado sobre las transacciones entrantes de la billetera y las actualizaciones de Tangem.</string>
<string name="wallet_settings_push_notifications_title">Notificaciones de transacciones</string>
<string name="wallet_settings_set_access_code_title">Establecer código de acceso</string>
<string name="wallet_settings_title">Ajustes de la wallet</string>
<string name="wallet_title">Tangem</string>
<string name="warning_access_denied_message">Use %s o escanee una tarjeta/anillo para desbloquear el acceso a su billetera</string>
@ -1354,6 +1382,12 @@
<string name="wc_disconnect_all">Desconectar todo</string>
<string name="wc_disconnect_all_alert_desc">Texto sobre desconexión de todas las dApps</string>
<string name="wc_disconnect_all_alert_title">Desconectar todas las dApps</string>
<string name="wc_errors_invalid_domain_subtitle">Intente emparejar nuevamente con una URI nueva</string>
<string name="wc_errors_invalid_domain_title">Dominio de dApp no válido</string>
<string name="wc_errors_no_blockchains_subtitle">%s no especifica ninguna cadena de bloques, ni obligatoria ni opcional. Asegúrese de haber utilizado el URI correcto</string>
<string name="wc_errors_no_blockchains_title">Sin redes</string>
<string name="wc_errors_proposal_expired_subtitle">Por favor, genere una nueva URI e intente conectarse nuevamente</string>
<string name="wc_errors_proposal_expired_title">Propuesta de conexión caducada</string>
<string name="wc_estimated_wallet_changes">Cambios estimados en la billetera</string>
<string name="wc_estimated_wallet_changes_not_simulated">La transacción no ha podido ser simulada. Por favor, proceda con precaución.</string>
<string name="wc_estimation_is_not_supported">La estimación no es compatible con %s</string>
@ -1369,6 +1403,7 @@
<string name="wc_no_wallet_changes_detected">No se han detectado cambios en la cartera</string>
<string name="wc_notification_security_risk_subtitle">Se han detectado riesgos potenciales o comportamiento malicioso. Conectarse o firmar transacciones puede resultar en la pérdida de fondos.</string>
<string name="wc_notification_security_risk_title">Riesgo de seguridad conocido</string>
<string name="wc_qr_scan_hint">Abra la aplicación Web3 y elija la opción WalletConnect</string>
<string name="wc_request_from">Solicitud de</string>
<string name="wc_send_anyway">Firmar de todos modos</string>
<string name="wc_signature_type">Tipo de firma</string>

View file

@ -124,6 +124,7 @@
<string name="common_claim_rewards">Réclamez des récompenses</string>
<string name="common_close">Fermer</string>
<string name="common_confirm">Confirmez</string>
<string name="common_connecting">Connexion</string>
<string name="common_continue">Continuer</string>
<string name="common_convert">Convertir</string>
<string name="common_copy">Copier</string>
@ -222,6 +223,10 @@
<string name="common_terms_and_conditions">termes et conditions</string>
<string name="common_terms_of_use">Conditions d\'utilisation</string>
<string name="common_today">Aujourd\'hui</string>
<plurals name="common_tokens_count">
<item quantity="one">%d jeton</item>
<item quantity="other">%d jetons</item>
</plurals>
<string name="common_transaction_failed">La transaction a échoué</string>
<string name="common_transaction_status">Statut de la transaction</string>
<string name="common_transactions">Transactions</string>

View file

@ -10,6 +10,7 @@
<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_cancel">Annulla</string>
<string name="common_connecting">Connessione in corso</string>
<string name="common_delete">Rimuovere</string>
<string name="common_done">Fatto</string>
<string name="common_error">Errore</string>
@ -20,6 +21,10 @@
<string name="common_send">Invia</string>
<string name="common_send_tx_error">Impossibile inviare la transazione</string>
<string name="common_success">Con successo</string>
<plurals name="common_tokens_count">
<item quantity="one">%d gettone</item>
<item quantity="other">%d gettoni</item>
</plurals>
<string name="details_manage_security_access_code">Codice di accesso</string>
<string name="details_manage_security_access_code_description">Prima di scansionare la carta sarà necessario inserire il codice di accesso corretto</string>
<string name="details_manage_security_long_tap">Mantenimento della carta</string>

View file

@ -12,6 +12,10 @@
<string name="access_code_create_description">ウォレットのロックを解除するには、 %s桁のアクセスコードを設定します。</string>
<string name="access_code_create_title">アクセスコードの作成</string>
<string name="access_code_navtitle">アクセスコード</string>
<string name="account_details_archive">アカウントをアーカイブする</string>
<string name="account_details_archive_action">アーカイブ</string>
<string name="account_details_archive_description">このアカウントをアーカイブしますが、いつでも復元できます。</string>
<string name="account_details_title">アカウント</string>
<string name="account_form_create_button">アカウントを追加</string>
<string name="account_form_edit_button">保存</string>
<string name="account_form_name">アカウント名</string>
@ -171,6 +175,7 @@
<string name="common_close">閉じる</string>
<string name="common_coming_soon">近日公開</string>
<string name="common_confirm">確認</string>
<string name="common_connecting">接続中</string>
<string name="common_contact_tangem_support">Tangemサポートへ問い合わせる</string>
<string name="common_contact_visa_support">Visaサポートへ問い合わせる</string>
<string name="common_continue">続ける</string>
@ -227,6 +232,7 @@
<string name="common_no">いいえ</string>
<string name="common_no_address">アドレスがありません</string>
<string name="common_not_added">未追加</string>
<string name="common_not_now">今はしない</string>
<string name="common_now"></string>
<string name="common_ok">わかりました</string>
<string name="common_open_in_browser">ブラウザで開く</string>
@ -273,6 +279,9 @@
<string name="common_terms_and_conditions">利用規約</string>
<string name="common_terms_of_use">利用規約</string>
<string name="common_today">今日</string>
<plurals name="common_tokens_count">
<item quantity="other">%d トークン</item>
</plurals>
<string name="common_transaction_failed">取引が失敗しました</string>
<string name="common_transaction_status">取引状況</string>
<string name="common_transactions">取引</string>
@ -455,6 +464,7 @@
<string name="hw_activation_need_warning_description">セットアップを完了するには、アクセスコードを使用してアプリへのアクセスを保護します。</string>
<string name="hw_backup_alert_description">そうした場合は、最初からやり直す必要があります。</string>
<string name="hw_backup_alert_title">アクティベーションプロセスを終了してもよろしいですか?</string>
<string name="hw_backup_close_description">実行すると、最初からやり直す必要があります。</string>
<string name="hw_backup_google_drive_description">Googleドライブのバックアップに保存されている既存のウォレットを復元する</string>
<string name="hw_backup_google_drive_title">Googleドライブのバックアップ</string>
<string name="hw_backup_need_action">バックアップへ移動</string>
@ -968,12 +978,14 @@
<string name="send_with_swap_change_token_alert_message">トークンを変更してもよろしいですか? 変更後、以前のデータはリセットされます。</string>
<string name="send_with_swap_change_token_alert_title">トークンの変更</string>
<string name="send_with_swap_confirm_title">スワップして送信</string>
<string name="send_with_swap_convert_token_alert_message">変換を続行しますか? 以前のデータはリセットされます。</string>
<string name="send_with_swap_convert_token_alert_title">変換を確定</string>
<string name="send_with_swap_notification_text">トークンを送信すれば、送信中に変換されます。受信者は必要なものをシームレスに受け取ります。</string>
<string name="send_with_swap_recipient_amount_success_title">受信者は受け取ります</string>
<string name="send_with_swap_recipient_amount_text">受信者に送信されます</string>
<string name="send_with_swap_recipient_amount_title">受取金額</string>
<string name="send_with_swap_remove_convert_alert_message">変換をキャンセルしてもよろしいですか? 変更後、以前のデータはリセットされます。</string>
<string name="send_with_swap_remove_convert_alert_title">キャンセルの確認</string>
<string name="send_with_swap_remove_convert_alert_title">キャンセルを確定</string>
<string name="send_with_swap_title">スワップして送信</string>
<string name="sent_transaction_sent_title">取引が送信されました</string>
<string name="settings_card_settings_footer">設定したいカードまたはリングをスキャンするために準備してください。</string>
@ -1462,6 +1474,12 @@
<string name="wc_disconnect_all">すべての接続を解除する</string>
<string name="wc_disconnect_all_alert_desc">すべてのdAppsの接続解除に関するテキスト</string>
<string name="wc_disconnect_all_alert_title">すべてのdAppを接続解除する</string>
<string name="wc_errors_invalid_domain_subtitle">新しいURIで、再度ペアリングを試してください</string>
<string name="wc_errors_invalid_domain_title">無効なdAppドメイン</string>
<string name="wc_errors_no_blockchains_subtitle">%sはブロックチェーンを指定していません必須でもオプションでもありません。 \n正しいURIを使用していることを確認してください。</string>
<string name="wc_errors_no_blockchains_title">ネットワークなし</string>
<string name="wc_errors_proposal_expired_subtitle">新しいURIを生成し、再度接続してください</string>
<string name="wc_errors_proposal_expired_title">接続提案の期限が切れました</string>
<string name="wc_estimated_wallet_changes">ウォレットの変更の予測</string>
<string name="wc_estimated_wallet_changes_not_simulated">取引をシミュレーションできませんでした。注意して続行してください。</string>
<string name="wc_estimation_is_not_supported">%sでは見積もりはサポートされていません</string>
@ -1477,6 +1495,7 @@
<string name="wc_no_wallet_changes_detected">ウォレットの変更は検出されませんでした</string>
<string name="wc_notification_security_risk_subtitle">潜在的なリスクまたは悪意のある行為が検出されました。接続または取引への署名は資金の損失につながる可能性があります。</string>
<string name="wc_notification_security_risk_title">既知のセキュリティリスク</string>
<string name="wc_qr_scan_hint">Web3アプリを開き、WalletConnectオプションを選択します</string>
<string name="wc_request_from">リクエスト元</string>
<string name="wc_send_anyway">とにかく署名する</string>
<string name="wc_signature_type">署名タイプ</string>

View file

@ -121,6 +121,7 @@
<string name="common_claim_rewards">Вывести награду</string>
<string name="common_close">Закрыть</string>
<string name="common_confirm">Подтвердить</string>
<string name="common_connecting">Подключение</string>
<string name="common_continue">Продолжить</string>
<string name="common_copy">Копировать</string>
<string name="common_copy_address">Скопировать адрес</string>
@ -219,6 +220,12 @@
<string name="common_terms_and_conditions">условия участия</string>
<string name="common_terms_of_use">Условиями использования</string>
<string name="common_today">Сегодня</string>
<plurals name="common_tokens_count">
<item quantity="one">%d токен</item>
<item quantity="few">%d токена</item>
<item quantity="many">%d токенов</item>
<item quantity="other">%d токенов</item>
</plurals>
<string name="common_transaction_failed">Ошибка транзакции</string>
<string name="common_transaction_status">Статус транзакции</string>
<string name="common_transactions">Транзакции</string>
@ -895,6 +902,18 @@
<string name="send_validation_invalid_amount">Недопустимая сумма</string>
<string name="send_validation_invalid_fee">Комиссия превышает остаток</string>
<string name="send_validation_invalid_total">Отправляемая сумма превышает остаток</string>
<string name="send_with_swap_change_token_alert_message">Вы уверены, что хотите изменить токен для получения? Это действие сбросит ранее введённые данные.</string>
<string name="send_with_swap_change_token_alert_title">Изменение токена</string>
<string name="send_with_swap_confirm_title">Обмен и отправка</string>
<string name="send_with_swap_convert_token_alert_message">Продолжить с конвертацией? Это действие удалит предыдущие данные</string>
<string name="send_with_swap_convert_token_alert_title">Подтвердить конвертацию</string>
<string name="send_with_swap_notification_text">Отправьте любой токен, и мы конвертируем его по пути. Адресат получит именно то, что нужно — без лишних действий.</string>
<string name="send_with_swap_recipient_amount_success_title">Будет получено</string>
<string name="send_with_swap_recipient_amount_text">Получателю</string>
<string name="send_with_swap_recipient_amount_title">Сумма к получению</string>
<string name="send_with_swap_remove_convert_alert_message">Вы уверены, что хотите отменить конвертацию? Ваши предыдущие данные будут удалены.</string>
<string name="send_with_swap_remove_convert_alert_title">Убрать конвертацию</string>
<string name="send_with_swap_title">Отправка с обменом</string>
<string name="sent_transaction_sent_title">Транзакция отправлена</string>
<string name="settings_card_settings_footer">Подготовьтесь к сканированию кольца или карты, которую вы хотите настроить.</string>
<string name="settings_forget_wallet">Забыть кошелек</string>

View file

@ -120,6 +120,7 @@
<string name="common_claim_rewards">Отримати винагороди</string>
<string name="common_close">Закрити</string>
<string name="common_confirm">Підтвердити</string>
<string name="common_connecting">Підключення</string>
<string name="common_continue">Продовжити</string>
<string name="common_copy">Копіювати</string>
<string name="common_copy_address">Скопіювати адресу</string>
@ -218,6 +219,12 @@
<string name="common_terms_and_conditions">умови участі</string>
<string name="common_terms_of_use">Умовами використання</string>
<string name="common_today">Сьогодні</string>
<plurals name="common_tokens_count">
<item quantity="one">%d токен</item>
<item quantity="few">%d токени</item>
<item quantity="many">%d токенів</item>
<item quantity="other">%d токенів</item>
</plurals>
<string name="common_transaction_failed">Помилка транзакції</string>
<string name="common_transaction_status">Статус транзакції</string>
<string name="common_transactions">Транзакції</string>

View file

@ -53,6 +53,7 @@
<string name="common_cancel">删除</string>
<string name="common_choose_token">選擇代幣</string>
<string name="common_close">關閉</string>
<string name="common_connecting">連線中</string>
<string name="common_continue">繼續</string>
<string name="common_copy">複製</string>
<string name="common_copy_address">複製地址</string>
@ -90,6 +91,9 @@
<string name="common_success">成功</string>
<string name="common_swap">交換</string>
<string name="common_terms_and_conditions">條款和條件</string>
<plurals name="common_tokens_count">
<item quantity="other">%d 代幣</item>
</plurals>
<string name="common_transactions">交易</string>
<string name="common_understand">我了解</string>
<string name="common_unreachable">無法觸達</string>
@ -129,6 +133,7 @@
<string name="details_title">更多</string>
<string name="disclaimer_error_loading">檢查您的網路連接或切換到其他網絡</string>
<string name="disclaimer_title">服務條款</string>
<string name="email_subject_wc_error">WalletConnect 錯誤</string>
<string name="error_wrong_wallet_tapped">您使用了另一個錢包中的卡。點按與此錢包關聯的卡片</string>
<string name="eth_gas_required_exceeds_allowance">沒有足夠的資金進行交易。請先入金</string>
<string name="feedback_data_collection_message">以下信息是可選的。如果不想共享,可以將其刪除</string>

View file

@ -178,6 +178,7 @@
<string name="common_close">Close</string>
<string name="common_coming_soon">Coming Soon</string>
<string name="common_confirm">Confirm</string>
<string name="common_connecting">Connecting</string>
<string name="common_contact_tangem_support">Contact Tangem Support</string>
<string name="common_contact_visa_support">Contact Visa Support</string>
<string name="common_continue">Continue</string>
@ -284,6 +285,10 @@
<string name="common_terms_and_conditions">terms and conditions</string>
<string name="common_terms_of_use">Terms of Use</string>
<string name="common_today">Today</string>
<plurals name="common_tokens_count">
<item quantity="one">%d token</item>
<item quantity="other">%d tokens</item>
</plurals>
<string name="common_transaction_failed">Transaction failed</string>
<string name="common_transaction_status">Transaction status</string>
<string name="common_transactions">Transactions</string>
@ -354,6 +359,7 @@
<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="email_subject_wc_error">Wallet Connect error</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="exchange_tokens_available_tokens_header">My tokens</string>
@ -459,6 +465,7 @@
<string name="home_button_scan">Scan Tangem</string>
<string name="hot_crypto_add_token_subtitle">to %s</string>
<string name="hot_crypto_token_network">On %s network</string>
<string name="hw_access_code_create_alert_title">Are you sure you want to exit the access code creation process?</string>
<string name="hw_activation_need_backup">Backup Now</string>
<string name="hw_activation_need_description">To complete setup, back up your wallet and secure app access with a Access Code.</string>
<string name="hw_activation_need_finish">Finish Now</string>
@ -986,17 +993,17 @@
<string name="send_validation_invalid_amount">Invalid amount</string>
<string name="send_validation_invalid_fee">Fee exceeds balance</string>
<string name="send_validation_invalid_total">Total amount exceeds balance</string>
<string name="send_with_swap_change_token_alert_message">Are you sure you want to change the token? After changing, previous data will be reset.</string>
<string name="send_with_swap_change_token_alert_message">Are you sure you want to change the receiving token? This will reset your previously entered data.</string>
<string name="send_with_swap_change_token_alert_title">Changing token</string>
<string name="send_with_swap_confirm_title">Swap and send</string>
<string name="send_with_swap_convert_token_alert_message">Proceed with conversion? Previous data will be reset.</string>
<string name="send_with_swap_convert_token_alert_title">Confirm Convert</string>
<string name="send_with_swap_convert_token_alert_message">Proceed with conversion? This will clear your previous data.</string>
<string name="send_with_swap_convert_token_alert_title">Confirm Conversion</string>
<string name="send_with_swap_notification_text">Send any token, and well convert it on the way. Your recipient gets exactly what they need—seamlessly.</string>
<string name="send_with_swap_recipient_amount_success_title">Recipient will receive</string>
<string name="send_with_swap_recipient_amount_text">Will be sent a recipient</string>
<string name="send_with_swap_recipient_amount_text">To recipient</string>
<string name="send_with_swap_recipient_amount_title">Amount to receive</string>
<string name="send_with_swap_remove_convert_alert_message">Are you sure you want to cancel the conversion? After changing, previous data will be reset.</string>
<string name="send_with_swap_remove_convert_alert_title">Confirm cancellation</string>
<string name="send_with_swap_remove_convert_alert_message">Are you sure you want to cancel the conversion? Your previous data will be cleared.</string>
<string name="send_with_swap_remove_convert_alert_title">Remove Conversion</string>
<string name="send_with_swap_title">Send with swap</string>
<string name="sent_transaction_sent_title">Transaction sent</string>
<string name="settings_card_settings_footer">Prepare to scan card or ring you want to set up.</string>
@ -1534,6 +1541,12 @@
<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_title">Disconect All dApps</string>
<string name="wc_errors_invalid_domain_subtitle">Try pairing again with a fresh URI</string>
<string name="wc_errors_invalid_domain_title">Invalid dApp domain</string>
<string name="wc_errors_no_blockchains_subtitle">%s does not specify any blockchains — neither required nor optional.\nPlease ensure you used the correct URI</string>
<string name="wc_errors_no_blockchains_title">No networks</string>
<string name="wc_errors_proposal_expired_subtitle">Please, generate a new URI and attempt connecting again</string>
<string name="wc_errors_proposal_expired_title">Connection proposal expired</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_estimation_is_not_supported">Estimation is not supported for %s</string>
@ -1549,6 +1562,7 @@
<string name="wc_no_wallet_changes_detected">No wallet changes detected</string>
<string name="wc_notification_security_risk_subtitle">Potential risks or malicious behavior have been detected. Connecting or signing transactions may lead to loss of funds.</string>
<string name="wc_notification_security_risk_title">Known security risk</string>
<string name="wc_qr_scan_hint">Open Web3 app and chose WalletConnect option</string>
<string name="wc_request_from">Request from</string>
<string name="wc_send_anyway">Sign anyway</string>
<string name="wc_signature_type">Signature Type</string>

View file

@ -67,7 +67,9 @@ class GetSwapSupportedPairsUseCase(
// Search available to swap currency
.filter { pair ->
cryptoCurrencyList.any { currencyStatus ->
currencyStatus.id == pair.to.currency.id
// Allowed only on networks without tx extras (e.i. memo and destination tag)
val isExtrasSupported = currencyStatus.network.transactionExtrasType.isTxExtrasSupported()
currencyStatus.id == pair.to.currency.id && !isExtrasSupported
}
}.map { pair -> SwapCryptoCurrency(groupingCurrency(pair), pair.providers) }

View file

@ -22,11 +22,11 @@ import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.express.models.ExpressError
import com.tangem.domain.models.currency.CryptoCurrency
import com.tangem.domain.models.currency.CryptoCurrencyStatus
import com.tangem.domain.notifications.ShouldShowNotificationUseCase
import com.tangem.domain.settings.usercountry.GetUserCountryUseCase
import com.tangem.domain.settings.usercountry.models.UserCountry
import com.tangem.domain.swap.models.SwapCurrencies
import com.tangem.domain.notifications.ShouldShowNotificationUseCase
import com.tangem.domain.settings.usercountry.models.needApplyFCARestrictions
import com.tangem.domain.swap.models.SwapCurrencies
import com.tangem.domain.swap.models.SwapDirection
import com.tangem.domain.swap.models.SwapDirection.Companion.withSwapDirection
import com.tangem.domain.swap.models.SwapQuoteModel
@ -56,8 +56,8 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.coroutines.Debouncer
import com.tangem.utils.coroutines.PeriodicTask
import com.tangem.utils.coroutines.SingleTaskScheduler
import com.tangem.utils.extensions.isZero
import com.tangem.utils.extensions.orZero
import com.tangem.utils.isNullOrZero
import com.tangem.utils.transformer.update
import kotlinx.coroutines.async
import kotlinx.coroutines.awaitAll
@ -199,8 +199,6 @@ internal class SwapAmountModel @Inject constructor(
)
amountDebouncer.debounce(
coroutineScope = modelScope,
waitMs = DEBOUNCE_AMOUNT_DELAY,
forceUpdate = true,
destinationFunction = {
startLoadingQuotesTask(isSilentReload = false)
},
@ -532,11 +530,12 @@ internal class SwapAmountModel @Inject constructor(
SwapDirection.Reverse -> state.secondaryAmount.amountField
} as? AmountState.Data
if (fromAmount?.amountTextField?.isError == true) return
val fromAmountValue = fromAmount?.amountTextField?.cryptoAmount?.value.orZero()
val fromAmountValue = fromAmount?.amountTextField?.cryptoAmount?.value ?: return
if (fromAmountValue.isZero()) return
if (fromAmount?.amountTextField?.isError == true || fromAmountValue.isNullOrZero()) {
uiState.transformerUpdate(SwapQuoteEmptyStateTransformer)
return
}
val swapGroups = state.swapCurrencies.getGroupWithDirection(state.swapDirection)

View file

@ -56,15 +56,20 @@ internal object SwapAmountQuoteUtils {
): SwapAmountUM {
if (this !is SwapAmountUM.Content) return this
return if (
val updatedAmountField = if (
selectedAmountType == SwapAmountType.From && swapDirection == SwapDirection.Direct
) {
val amountFieldUM = primaryAmount as? SwapAmountFieldUM.Content ?: return this
copy(primaryAmount = amountFieldUM.onPrimaryAmount(primaryCryptoCurrencyStatus))
amountFieldUM.onPrimaryAmount(primaryCryptoCurrencyStatus)
} else {
if (secondaryCryptoCurrencyStatus == null) return this
val amountFieldUM = secondaryAmount as? SwapAmountFieldUM.Content ?: return this
copy(secondaryAmount = amountFieldUM.onSecondaryAmount(secondaryCryptoCurrencyStatus))
amountFieldUM.onSecondaryAmount(secondaryCryptoCurrencyStatus)
}
return copy(
isPrimaryButtonEnabled = updatedAmountField.amountField.isPrimaryButtonEnabled,
primaryAmount = updatedAmountField,
)
}
}

View file

@ -17,33 +17,39 @@ internal class SwapAmountValueChangeTransformer(
override fun transform(prevState: SwapAmountUM): SwapAmountUM {
if (prevState !is SwapAmountUM.Content) return prevState
return prevState
.copy(selectedQuote = SwapQuoteUM.Loading)
.updateAmount(
onPrimaryAmount = { primaryStatus ->
val updatedState = prevState.updateAmount(
onPrimaryAmount = { primaryStatus ->
copy(
amountField = AmountFieldChangeTransformer(
cryptoCurrencyStatus = primaryStatus,
maxEnterAmount = primaryMaximumAmountBoundary,
minimumTransactionAmount = primaryMinimumAmountBoundary,
value = value,
).transform(prevState.primaryAmount.amountField),
)
},
onSecondaryAmount = { secondaryStatus ->
if (secondaryMaximumAmountBoundary != null) {
copy(
amountField = AmountFieldChangeTransformer(
cryptoCurrencyStatus = primaryStatus,
maxEnterAmount = primaryMaximumAmountBoundary,
minimumTransactionAmount = primaryMinimumAmountBoundary,
cryptoCurrencyStatus = secondaryStatus,
maxEnterAmount = secondaryMaximumAmountBoundary,
minimumTransactionAmount = secondaryMinimumAmountBoundary,
value = value,
).transform(prevState.primaryAmount.amountField),
).transform(prevState.secondaryAmount.amountField),
)
},
onSecondaryAmount = { secondaryStatus ->
if (secondaryMaximumAmountBoundary != null) {
copy(
amountField = AmountFieldChangeTransformer(
cryptoCurrencyStatus = secondaryStatus,
maxEnterAmount = secondaryMaximumAmountBoundary,
minimumTransactionAmount = secondaryMinimumAmountBoundary,
value = value,
).transform(prevState.secondaryAmount.amountField),
)
} else {
this
}
},
)
} else {
this
}
},
)
return (updatedState as? SwapAmountUM.Content)?.copy(
selectedQuote = if (updatedState.isPrimaryButtonEnabled) {
SwapQuoteUM.Empty
} else {
SwapQuoteUM.Loading
},
) ?: updatedState
}
}

View file

@ -0,0 +1,17 @@
package com.tangem.features.swap.v2.impl.amount.model.transformers
import com.tangem.features.swap.v2.impl.amount.entity.SwapAmountUM
import com.tangem.features.swap.v2.impl.common.entity.SwapQuoteUM
import com.tangem.utils.transformer.Transformer
internal object SwapQuoteEmptyStateTransformer : Transformer<SwapAmountUM> {
override fun transform(prevState: SwapAmountUM): SwapAmountUM {
if (prevState !is SwapAmountUM.Content) return prevState
return prevState.copy(
selectedQuote = SwapQuoteUM.Empty,
isPrimaryButtonEnabled = false,
)
}
}

View file

@ -96,9 +96,12 @@ internal fun SwapChooseTokenNetworkContent(state: SwapChooseTokenNetworkContentU
@Composable
private fun SwapChooseTokenNetworkContentList(swapNetworks: ImmutableList<SwapChooseNetworkUM>) {
Column(
modifier = Modifier
.padding(top = 8.dp)
.padding(16.dp),
modifier = Modifier.padding(
top = 8.dp,
start = 16.dp,
end = 16.dp,
bottom = 16.dp,
),
) {
swapNetworks.fastForEachIndexed { index, network ->
Row(
@ -116,10 +119,7 @@ private fun SwapChooseTokenNetworkContentList(swapNetworks: ImmutableList<SwapCh
indication = ripple(),
onClick = { network.onNetworkClick() },
)
.padding(
vertical = 12.dp,
horizontal = 14.dp,
),
.padding(vertical = 12.dp, horizontal = 14.dp),
) {
Image(
modifier = Modifier.size(36.dp),
@ -153,10 +153,7 @@ private fun SwapChooseTokenNetworkContentList(swapNetworks: ImmutableList<SwapCh
color = TangemTheme.colors.stroke.primary,
shape = RoundedCornerShape(6.dp),
)
.padding(
vertical = 2.dp,
horizontal = 4.dp,
),
.padding(vertical = 2.dp, horizontal = 4.dp),
)
}
}