Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-26 18:10:18 +02:00
parent 54e612cf30
commit c3030d93c9
8 changed files with 43 additions and 8 deletions

View file

@ -323,6 +323,7 @@
<string name="common_no">Nein</string>
<string name="common_no_address">Keine Adresse</string>
<string name="common_not_added">Nicht hinzugefügt</string>
<string name="common_not_available">Nicht verfügbar</string>
<string name="common_not_now">Nicht jetzt</string>
<string name="common_now">Jetzt</string>
<string name="common_ok">OK</string>
@ -561,6 +562,8 @@
<string name="feedback_subject_support_tangem">Feedback zu Tangem</string>
<string name="feedback_subject_tx_failed">Eine Transaktion kann nicht gesendet werden</string>
<string name="feedback_token_description_error">Fehler in der Coinbeschreibung</string>
<string name="gasless_not_enough_funds_to_cover_token_fee">Nicht genügend Mittel</string>
<string name="gasless_transaction_fee">Transaktionsgebühr</string>
<string name="generic_error">Es ist ein Fehler aufgetreten</string>
<string name="generic_error_code">Es ist ein Fehler aufgetreten. Code: %s.</string>
<string name="generic_requires_memo_error">Memo erforderlich</string>
@ -602,7 +605,7 @@
<string name="hw_backup_hardware_create_title">Neue Wallet erstellen</string>
<string name="hw_backup_hardware_description">Erhöhe Deine Sicherheit mit der überlegenen Hardware-Wallet von Tangem.</string>
<string name="hw_backup_hardware_title">Hardware-Wallet</string>
<string name="hw_backup_hardware_upgrade_description">Übertrage Deine aktuelle Wallet in die Tangem Wallet.</string>
<string name="hw_backup_hardware_upgrade_description">Übertrage Deine aktuelle Wallet in die Tangem Hardware-Wallet.</string>
<string name="hw_backup_hardware_upgrade_title">Aktualisiere Deine aktuelle Wallet</string>
<string name="hw_backup_need_action">Gehe zum Backup</string>
<string name="hw_backup_need_description">Bitte sicher Deine Wallet, bevor Du einen Zugangscode erstellst.</string>
@ -827,7 +830,7 @@
<string name="news_quick_recap">Kurze Zusammenfassung</string>
<string name="news_related_news">Verwandte Nachrichten</string>
<string name="news_related_tokens">Verwandte Token</string>
<string name="news_sources">Quellen</string>
<string name="news_sources">Verwandte Nachrichten</string>
<string name="news_stay_in_the_loop">Auf dem Laufenden bleiben</string>
<string name="nfc_error_unavailable">NFC ist auf deinem Gerät nicht verfügbar</string>
<string name="nft_about_title">Über NFT</string>
@ -995,6 +998,7 @@
<string name="onboarding_wallet_info_title_fourth">Zugangscode wiederherstellen</string>
<string name="onboarding_wallet_info_title_second">Identische Karten oder Ring</string>
<string name="onboarding_wallet_info_title_third">Zugangscode</string>
<string name="only_one_mobile_wallet_explanation">Du kannst nur eine mobile Wallet verwenden. Aktualisiere diese auf einer Tangem-Hardware-Wallet oder füge eine neue Hardware-Wallet hinzu.</string>
<string name="onramp_all_offers_button_title">Alle Angebote</string>
<string name="onramp_avaiable_with_payment_methods">Verfügbar mit %s</string>
<string name="onramp_choose_provider_title_hint">Anbieter erleichtern Transaktionen</string>
@ -1265,6 +1269,7 @@
<string name="staking_amount_tron_integer_error">Der Stakingbetrag wird aufgrund der Netzwerkregeln auf %1$s TRX aufgerundet.</string>
<string name="staking_amount_tron_integer_error_unstaking">Der Betrag der unstaked wird, wird aufgrund der Netzwerkregeln auf %1$s TRX gerundet.</string>
<string name="staking_apr_earn_badge">Effektiver Jahreszins %1$s%%</string>
<string name="staking_cardano_details_rewards_info_text">Deine Staking-Belohnungen beginnen nach 5 Epochen (~25 Tage), während Deine Delegation vom Netzwerk registriert und gezählt wird.</string>
<string name="staking_claim_unstaked">Nicht gestakte beanspruche</string>
<string name="staking_details_account_fee">Gebühr für das Staking-Konto</string>
<string name="staking_details_account_fee_info">Ein Staking-Konto ist ein spezielles Konto, auf dem eingesetzte SOL-Token gespeichert werden. Es wird erstellt, indem Sie Ihre Token an einen Validator delegieren, um an der Transaktionsvalidierung teilzunehmen und Belohnungen zu erhalten. Für die Einrichtung des Staking-Kontos wird eine geringe Gebühr erhoben, die nach Abschluss des Stakings zurückerstattet wird.</string>
@ -1275,6 +1280,7 @@
<string name="staking_details_apr">Effektiver Jahreszins</string>
<string name="staking_details_apy">APY</string>
<string name="staking_details_auto_claiming_rewards_daily_text">Belohnungen sammeln sich täglich automatisch in deinem Staking-Konto an.</string>
<string name="staking_details_autocompound_rewards_earned">Die Belohnungen werden auf Dein Stakingguthaben aufgezinst. Verdiente Gelder: %s</string>
<string name="staking_details_available">Verfügbar</string>
<string name="staking_details_average_reward_rate">Durchschnittliche Belohnungsquote</string>
<string name="staking_details_banner_text">Wie funktioniert Staking?</string>
@ -1419,6 +1425,7 @@
<string name="swap_story_third_subtitle">Problemlos und intuitiv, sodass Deine Token mit nur wenigen Handgriffen getauscht werden können</string>
<string name="swap_story_third_title">Einfach bequem</string>
<string name="swap_via_provider">Tausch über Anbieter</string>
<string name="swap_your_assets_title">Dein Vermögen</string>
<string name="swapping_alert_cex_description">Der Betrag umfasst:\n- Gebühr des Dienstanbieters\n- Netzgebühr für die Rücksendung von %s von der Vermittlungsstelle an die Adresse des Nutzers.</string>
<string name="swapping_alert_cex_description_with_slippage">Der Betrag beinhaltet:\n• Honorar des Dienstleisters\n• Netzwerkgebühr für das Senden %1$s von der Börse zurück an die Adresse des Benutzers. \n\n Provider-Slippage kann bis zu %2$s</string>
<string name="swapping_alert_dex_description">Der Betrag enthält die Gebühren des Dienstleisters.</string>
@ -1433,6 +1440,7 @@
<string name="swapping_insufficient_funds">Unzureichende Mittel</string>
<string name="swapping_permission_header">Erlaubnis erteilen</string>
<string name="swapping_swap_action">Tauschen</string>
<string name="swapping_swap_action_in_progress">Tauschen...</string>
<string name="swapping_to_title">Du erhältst</string>
<string name="swapping_token_list_title">Token auswählen</string>
<string name="swapping_token_not_available">Nicht verfügbar</string>
@ -1527,10 +1535,15 @@
<string name="tangempay_kyc_confirm_cancellation_description">Möchtest Du den KYC wirklich abbrechen? Du kannst später jederzeit weiter machen.</string>
<string name="tangempay_kyc_failed_description">Wir konnten Ihr Profil nicht verifizieren. Bei Fragen wenden Sie sich bitte an den Support.</string>
<string name="tangempay_kyc_failed_title">Leider konnten wir Ihre Identität nicht verifizieren</string>
<string name="tangempay_kyc_has_failed">KYC ist gescheitert</string>
<string name="tangempay_kyc_in_progress">KYC in Bearbeitung</string>
<string name="tangempay_kyc_in_progress_notification_button">Status anzeigen</string>
<string name="tangempay_kyc_in_progress_notification_title">KYC für Tangem Pay in Arbeit</string>
<string name="tangempay_kyc_in_progress_popup_description">Dokumente werden in der Regel innerhalb von 5 Minuten automatisch überprüft. In seltenen Fällen, wenn eine manuelle Überprüfung erforderlich ist, kann es bis zu 48 Stunden dauern.</string>
<string name="tangempay_kyc_rejected">KYC abgelehnt</string>
<string name="tangempay_kyc_rejected_button_text">KYC-Sperre ausblenden</string>
<string name="tangempay_kyc_rejected_description">Entschuldigung, wir konnten dies nicht überprüfen.</string>
<string name="tangempay_kyc_rejected_description_span">Dein Profil.</string>
<string name="tangempay_onboarding_banner_description">Holen Sie sich Ihre kostenlose virtuelle Tangem Visa-Karte</string>
<string name="tangempay_onboarding_banner_title">Nutzen Sie USDC für alltägliche Zahlungen</string>
<string name="tangempay_onboarding_get_card_button_text">Karte erhalten</string>

View file

@ -130,9 +130,9 @@
<string name="backup_complete_seed_description">これらの単語は、紛失すると復元できません。安全に保管してください。</string>
<string name="backup_complete_title">バックアップが完了しました</string>
<string name="backup_info_description">シークレットリカバリーフレーズは、ウォレットへのアクセスおよび復元に使用する、%s個のランダムな単語のセットです。</string>
<string name="backup_info_keep_description">れらの単語は紛失した場合、復元できません。大切に保管してください。</string>
<string name="backup_info_keep_description">のフレーズを紛失すると、復元することはできません。厳重に保管してください。</string>
<string name="backup_info_keep_title">安全に保管してください</string>
<string name="backup_info_save_description">これらの%s個の単語を安全な場所に保存し、決して誰とも共有しないでください。</string>
<string name="backup_info_save_description">これらの%sの単語は、あなただけがアクセスできる安全な場所に保管し、決して他人と共有しないでください。</string>
<string name="backup_info_save_title">復元は不可能です</string>
<string name="backup_info_title">リカバリーフレーズ</string>
<string name="backup_seed_caution">以下の%s個の単語が、あなたのウォレットのリカバリーフレーズです。これらの単語は絶対に他人と共有しないでください。Tangemがこれらを尋ねることは決してありません。デバイスを紛失した場合、このフレーズを使ってウォレットを復元できます。</string>
@ -446,7 +446,7 @@
<string name="details_row_title_signed_hashes">署名済み</string>
<string name="details_send_feedback">フィードバックを送信</string>
<string name="details_title">詳細</string>
<string name="details_wallets_section_description">モバイルウォレットは同時に1つのみ利用できます。Tangemコールドウォレットにアップグレードすることも、新しいコールドウォレットと併用することも可能です</string>
<string name="details_wallets_section_description">モバイルウォレットは1つしか作成できません。Tangemハードウェアウォレットにアップグレードするか、新しいハードウェアウォレットを追加してください</string>
<string name="disclaimer_error_loading">インターネット接続を確認するか、別のネットワークに切り替えてください。</string>
<string name="disclaimer_title">利用規約</string>
<string name="domain_receive_assets_default_address">デフォルトアドレス</string>
@ -569,7 +569,7 @@
<string name="give_permission_swap_subtitle" formatted="false">続行するには、%1sスマートコントラクトに%2sを使用する権限を付与してください</string>
<string name="give_permission_title">許可を与える</string>
<string name="give_permission_unlimited">無制限</string>
<string name="hardware_wallet_backup_feature_description">ハードウェアウォレット内に新しいアドレスが自動生成され、安全にすぐ利用できる状態になります。</string>
<string name="hardware_wallet_backup_feature_description">アドレスはTangemハードウェアウォレット上で直接生成され、そのまま安全に使用できます。</string>
<string name="hardware_wallet_backup_feature_title">新しいアドレス</string>
<string name="hardware_wallet_create_title">Tangemウォレットを追加</string>
<string name="hardware_wallet_key_feature_description">秘密鍵はTangemカード内部で直接生成され、外部に出ることは一切ありません。</string>
@ -645,7 +645,7 @@
<string name="hw_upgrade_error_wallet2_card_required">操作中にエラーが発生しました。</string>
<string name="hw_upgrade_funds_access_description">処理中も、資金は安全に保たれ、常にアクセス可能です。</string>
<string name="hw_upgrade_funds_access_title">資金へのアクセス</string>
<string name="hw_upgrade_general_security_description">アップグレード後、モバイルウォレットはアプリから削除され、ハードウェアウォレットに保存されます。リカバリーフレーズは引き続きご自身で管理してください</string>
<string name="hw_upgrade_general_security_description">アップグレード後、モバイルウォレットはアプリから削除され、Tangemハードウェアウォレットに保存されます。リカバリーフレーズは引き続きお手元に保持されます</string>
<string name="hw_upgrade_general_security_title">セキュリティ全般</string>
<string name="hw_upgrade_key_migration_description">秘密鍵はアプリからTangemハードウェアウォレットへ移行されます</string>
<string name="hw_upgrade_key_migration_title">キーの移行</string>
@ -984,7 +984,7 @@
<string name="onboarding_wallet_info_title_fourth">アクセスコードの復元</string>
<string name="onboarding_wallet_info_title_second">同一のカード</string>
<string name="onboarding_wallet_info_title_third">アクセスコード</string>
<string name="only_one_mobile_wallet_explanation">同時に利用できるのは、モバイルウォレットまたはハードウェアウォレットのいずれか一方のみです。Tangemのコールドウォレットを使用するには、ウォレットをアップグレードするか、アプリから削除してください。</string>
<string name="only_one_mobile_wallet_explanation">モバイルウォレットは1つまでしか作成できません。Tangemハードウェアウォレットにアップグレードするか、新しいハードウェアウォレットを追加してください。</string>
<string name="onramp_all_offers_button_title">すべてのオファー</string>
<string name="onramp_avaiable_with_payment_methods">%sで利用可能</string>
<string name="onramp_choose_provider_title_hint">プロバイダーが取引を促進します</string>

View file

@ -1276,6 +1276,7 @@
<string name="staking_amount_tron_integer_error">Staking amount will be rounded to %1$s TRX due to network rules.</string>
<string name="staking_amount_tron_integer_error_unstaking">Unstaking amount will be rounded to %1$s TRX due to network rules.</string>
<string name="staking_apr_earn_badge">APR %1$s%%</string>
<string name="staking_cardano_details_rewards_info_text">Your staking rewards will start after 5 epochs (~25 days) while your delegation is registered and counted by the network.</string>
<string name="staking_claim_unstaked">Claim unstaked</string>
<string name="staking_details_account_fee">Stake account fee</string>
<string name="staking_details_account_fee_info">A staking account is a special account where staked SOL tokens are stored. It is created when you delegate your tokens to a validator to participate in transaction validation and receive rewards. A small fee is charged for creating the staking account, which is returned after the staking is completed.</string>

View file

@ -109,6 +109,7 @@ enum class BalanceType(val order: Int) {
@Serializable
sealed interface RewardBlockType {
data object NoRewards : RewardBlockType
data object CardanoNoRewards : RewardBlockType
data object Rewards : RewardBlockType
data object RewardsRequirementsError : RewardBlockType
data object EthereumEarnedRewards : RewardBlockType
@ -125,6 +126,7 @@ sealed interface RewardBlockType {
val isActionable: Boolean
get() = when (this) {
is NoRewards,
is CardanoNoRewards,
is RewardUnavailable,
is EthereumEarnedRewards,
-> false

View file

@ -16,6 +16,7 @@ import com.tangem.domain.staking.model.StakingIntegration
import com.tangem.features.staking.impl.presentation.state.InnerYieldBalanceState
import com.tangem.features.staking.impl.presentation.state.YieldReward
import com.tangem.lib.crypto.BlockchainUtils
import com.tangem.lib.crypto.BlockchainUtils.isCardano
import com.tangem.lib.crypto.BlockchainUtils.isStakingRewardUnavailable
import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
@ -110,6 +111,7 @@ internal class YieldBalancesConverter(
}
isRewardsClaimable && isActionable -> RewardBlockType.Rewards
isRewardsClaimable && !isActionable -> RewardBlockType.RewardsRequirementsError
isCardano(blockchainId) -> RewardBlockType.CardanoNoRewards
else -> RewardBlockType.NoRewards
}
}

View file

@ -4,9 +4,11 @@ import com.tangem.core.ui.extensions.*
import com.tangem.domain.staking.model.common.RewardSchedule
import com.tangem.domain.staking.model.common.RewardType
import com.tangem.features.staking.impl.R
import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardScheduleConstants.CARDANO_SCHEDULE
import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardScheduleConstants.COSMOS_SCHEDULE
import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardScheduleConstants.SOLANA_SCHEDULE
import com.tangem.features.staking.impl.presentation.state.utils.StakingRewardScheduleConstants.TON_SCHEDULE
import com.tangem.lib.crypto.BlockchainUtils.isCardano
import com.tangem.lib.crypto.BlockchainUtils.isCosmos
import com.tangem.lib.crypto.BlockchainUtils.isSolana
import com.tangem.lib.crypto.BlockchainUtils.isTon
@ -15,6 +17,7 @@ import com.tangem.utils.StringsSigns.MINUS
import com.tangem.utils.StringsSigns.NON_BREAKING_SPACE
private data object StakingRewardScheduleConstants {
const val CARDANO_SCHEDULE = 5
val COSMOS_SCHEDULE = 5 to 12
val SOLANA_SCHEDULE = 2 to 3
val TON_SCHEDULE = 1 to 2
@ -100,6 +103,15 @@ private fun getCustomRewardSchedule(networkId: String, decapitalize: Boolean = f
count = TON_SCHEDULE.second,
),
)
isCardano(networkId) -> combinedReference(
resourceReference(id = R.string.staking_reward_schedule_each_plural, decapitalize = decapitalize),
stringReference(NON_BREAKING_SPACE.toString()),
stringReference("$CARDANO_SCHEDULE$NON_BREAKING_SPACE"),
pluralReference(
id = R.plurals.common_days_no_param,
count = CARDANO_SCHEDULE,
),
)
else -> null
}
}

View file

@ -257,6 +257,10 @@ private fun StakingRewardBlock(
resourceReference(R.string.staking_solana_details_auto_claiming_rewards_daily_text) to
TangemTheme.colors.text.tertiary
}
RewardBlockType.CardanoNoRewards -> {
resourceReference(R.string.staking_cardano_details_rewards_info_text) to
TangemTheme.colors.text.tertiary
}
RewardBlockType.NoRewards -> {
resourceReference(R.string.staking_details_no_rewards_to_claim) to TangemTheme.colors.text.tertiary
}

View file

@ -194,6 +194,7 @@ internal class TokenDetailsStakingInfoConverter(
return when (rewardBlockType) {
RewardBlockType.NoRewards -> resourceReference(R.string.staking_details_no_rewards_to_claim)
RewardBlockType.CardanoNoRewards -> resourceReference(R.string.staking_cardano_details_rewards_info_text)
RewardBlockType.RewardUnavailable.DefaultRewardUnavailable,
RewardBlockType.RewardUnavailable.SolanaRewardUnavailable,
-> TextReference.EMPTY