diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml
index 12b6f28389..c1bb266ba5 100644
--- a/core/res/src/main/res/values-de/strings.xml
+++ b/core/res/src/main/res/values-de/strings.xml
@@ -35,7 +35,7 @@
Verstanden
Guthaben sind ausgeblendet
Bitte Karte oder Ring scannen
- Bitte versuche es in 30 Sekunden erneut oder scanne die Karte
+ Bitte versuche es in 30 Sekunden erneut oder scanne die Karte oder Ring
Zu viele Versuche
Du hast die biometrische Authentifizierung auf deinem Telefon deaktiviert und kannst keine Wallets in der App speichern. Um Wallets zu speichern, aktiviere bitte die biometrische Authentifizierung in deinen Telefoneinstellungen.
Backup-Prozess starten
@@ -59,7 +59,7 @@
Du hast nicht alle deine Karten oder Ringe zurückgesetzt
Auf Werkseinstellungen zurücksetzen
Sicherheitsmodus
- Karteneinstellungen
+ Karten oder Ring-Einstellungen
Zusätzlich zu den Netzwerkgebühren erhebt das Cardano-Netzwerk %1$s ADA bei Transaktionen mit dem Token %2$s
Cardano-Transaktionsanforderungen
Um eine %1$s Transaktion durchzuführen, musst du einen gewissen ADA-Betrag einzahlen, um die Netzwerkgebühr und den ADA-Mindestwert zu decken (5 ADA werden empfohlen).
@@ -213,7 +213,7 @@
Zugangscode
Du musst den richtigen Zugangscode eingeben, bevor du die Karte oder Ring scannst.
Langes Tippen
- Dieser Mechanismus schützt vor Annäherungsangriffen auf eine Karte oder Ring. Es wird eine Verzögerung zwischen dem Empfang und der Ausführung eines Befehls erzwungen. Nach der ersten signierten Transaktion wird dieses Telefon mit der Karte oder Ring verknüpft und die Transaktionen werden sofort signiert.
+ Dieser Mechanismus schützt vor Annäherungsangriffen auf eine Karte oder einen Ring. Er erzwingt eine Verzögerung zwischen dem Empfang und der Ausführung eines Befehls.
Passcode
Bevor du einen Befehl ausführst, der eine Änderung des Kartenstatus zur Folge hat, musst du den Passcode eingeben.
Empfehlungsprogramm
@@ -257,6 +257,7 @@
Tauschen läuft
Austauschen...
Fehlgeschlagen
+ Pausiert
Einzahlung empfangen
Einzahlung wird erwartet
Warten auf Einzahlung...
@@ -307,7 +308,7 @@
Unbegrenzt
Karte oder Ring bestellen
Karte oder Ring scannen
- Diese Information ist KI generiert
+ Diese Informationen wurden mithilfe von KI generiert. \n Tippe hier, wenn Du Fehler finden.
Um den Zugangscode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
Um den Passcode zu ändern, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
Um die Wallet zu erstellen, halte die Karte oder Ring wie oben gezeigt an das Gerät und entferne sie erst am Ende des Vorgangs.
@@ -459,7 +460,7 @@
Schützen
Du kannst später auf jeder Karte oder Ring einen individuellen Zugangscode einrichten
Personalisieren
- Der Zugangscode kann mit einer verbundenen Karte oder Ring wiederhergestellt werden. Bewahre nicht alle Karten oder Ringe an einem Ort auf.
+ Stelle den Zugangscode mit einer verknüpften Karte oder einem Ring wieder her. Bewahre nicht alle Deine Geräte an einem Ort auf.
Wiederherstellen
Wähle ein beliebiges Wort, eine Phrase oder eine Zahl als Zugangscode
Zugangscode erstellen
@@ -470,7 +471,7 @@
Bitte wiederhole den Vorgang. Die Karte oder Ring wird auf Werkseinstellungen zurückgesetzt.
Aktivierungsfehler
Token hinzufügen
- Du hast eine Backup-Karte oder Ring hinzugefügt. Wenn der Backup-Prozess abgeschlossen ist, kannst du keine weiteren Backup-Karten oder Ringe hinzufügen. Wenn du noch eine Karte oder Ring hast, füge diese zum Backup hinzu. Möchtest du den Backup-Prozess fortsetzen?
+ Du hast einee Backup-Karte oder einen Backup-Ring hinzugefügt. Wenn der Backup-Prozess abgeschlossen ist, kannst Du keine weiteren Backup-Geräte hinzufügen. Wenn Du noch eine Karte oder einen Ring hast, fügen diese(n) zum Backup hinzu. Möchtest Du den Backup-Prozess fortsetzen?
Der Sicherungsvorgang ist teilweise abgeschlossen. Du kannst ihn jetzt nicht beenden.
Die Passphrase ist eine fortschrittliche Sicherheitsfunktion, die von Krypto-Wallets verwendet wird. Sie fügt ein zusätzliches Wort oder eine Phrase deiner Wahl zu der bereits bestehenden Wiederherstellungsphrase hinzu, um einen brandneuen Satz von Adressen zu erzeugen.
Hinzufügen einer Sicherungskarte oder Ring
@@ -610,7 +611,7 @@
Beachte, dass für Transaktionen mit deinem Guthaben weiterhin deine Karte oder Ring erforderlich ist
Karte oder Ring scannen
Scanne die Karte oder Ring, um ihre Einstellungen zu ändern. Die Änderungen wirken sich nur auf die von dir gescannte Karte oder Ring aus und haben keine Auswirkungen auf andere mit deiner Wallet verknüpften Karten oder Ringe.
- Halte deine Karte bereit!
+ Halte deine Karte oder Ring bereit!
Bereits in der eingegebenen Adresse enthalten
Der Provisionsbetrag ist %s mal der empfohlene Betrag. Stelle sicher, dass die benutzerdefinierten Einstellungen korrekt sind.
Du hast eine Kommission angegeben, die unter dem empfohlenen Betrag liegt, was zu einer Verzögerung Ihrer Transaktion führen könnte. Weiter?
@@ -710,7 +711,7 @@
Belohnungen beanspruchen
Eine Möglichkeit, Staking-Belohnungen zu erhalten. Es kann automatisch oder manuell beansprucht werden.
Belohnungszeitplan
- Dabei handelt es sich um einen Zeitplan, der festlegt, wann die Teilnehmer am Staking ihre Belohnungen erhalten.
+ Dies ist ein Zeitplan, der bestimmt, wann Teilnehmer am Staking ihre Belohnungen erhalten. Der Zeitpunkt der Belohnungsverteilung kann je nach Validator und Netzwerklast leicht variieren.
Belohnungen %s
Staking %s
Entbindungsdauer
@@ -736,6 +737,7 @@
Aufgrund von Netzwerkproblemen ist Staking derzeit nicht verfügbar. Bitte versuche es später erneut.
Beim Staking im %1$s -Netzwerk mit einem neuen Validator werden alle zuvor eingesetzten Kryptos automatisch an diesen Validator übertragen
Reinvestiert Deine verdienten Prämien in Deinen Einsatzbetrag und erhöht so den potenziellen Gewinn.
+ Mit Restake kannst Du Dein Guthaben von einem Validator zu einem anderen verschieben, ohne dass Du den Stake aufheben musst.
Entsperre dein Geld, um es aus dem Staking-Prozess abzuheben. Das Freischalten nimmt %s.
Nach Ablauf der 21-tägigen Bindungsfrist kannst Du über Dein Guthaben verfügen. Die Prämie wird zusammen mit dem ungestaketen Guthaben abgehoben.
Deine Assets steht Dir nach Ablauf der Frist für die Aufhebung der Bindung %s zur Verfügung.
@@ -754,6 +756,7 @@
Täglich
Alle %s
Täglich
+ Alle %s
Pro Epoche
Pro Ära
Stündlich
@@ -762,7 +765,6 @@
Belohnungen
Stake gesperrt
Mehr staken
- Du setzt %1$s ein und erhältst jährlich %2$s
Zum Entsperren antippen
Tippe zum Entsperren oder Abstimmen
Zum abheben antippen
@@ -955,7 +957,7 @@
Auf dieser Karte oder Ring sind nur noch %s Unterschriften übrig. Du musst dein gesamtes Guthaben abheben.
Geringe Anzahl von Unterschriften
Token in verschiedenen Netzwerken können unterschiedliche Adressen haben. Überprüfe bei der Überweisung noch einmal, ob deine Adresse mit der des Netzwerks übereinstimmt.
- MATIC wird auf POL migriert. Es gibt jedoch keine Frist, und MATIC wird noch nicht abgeschafft. Du kannst MATIC-Token weiterhin verwenden oder sie über eien Exchange gegen POL tauschen.
+ MATIC wird zu POL migriert. Es gibt jedoch keine festgelegte Frist und MATIC wird noch nicht abgeschafft. Du kannst den MATIC-Token weiterhin bedenkenlos verwenden oder es gegen POL austauschen.
Migration von MATIC zu POL
- Verwende deine Karte oder Ring, um eine Adresse für das %d-Netz zu erhalten
diff --git a/core/res/src/main/res/values-es/strings.xml b/core/res/src/main/res/values-es/strings.xml
index a0dc037e9d..67bc35be25 100644
--- a/core/res/src/main/res/values-es/strings.xml
+++ b/core/res/src/main/res/values-es/strings.xml
@@ -729,7 +729,9 @@
Manual
Bloquear
Día
+ Cada %s
Cada día
+ Cada %s
Época
Era
Hora
@@ -738,7 +740,6 @@
Recompensas
El stake está bloqueado
Hacer más staking
- Haga staking de %1$s y recibirá %2$s anualmente
Toque para desbloquear
Toque para retirar
Stake %s
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index 7a6b959868..5efbcda226 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -729,7 +729,9 @@
Manuel
Bloquer
Jour
+ Chaque %s
Chaque jour
+ Chaque %s
Époque
Ère
Heure
@@ -738,7 +740,6 @@
Récompenses
Stake verrouillé
Staker plus
- Vous stakez %1$s et recevrez %2$s par an
Appuyez pour déverrouiller
Appuyez pour retirer
Stake %s
diff --git a/core/res/src/main/res/values-ja/strings.xml b/core/res/src/main/res/values-ja/strings.xml
index 9251296e0b..29694b640e 100644
--- a/core/res/src/main/res/values-ja/strings.xml
+++ b/core/res/src/main/res/values-ja/strings.xml
@@ -254,6 +254,7 @@
交換中
交換中...
失敗しました
+ 停止中
入金済み
入金待ち
入金待ち...
@@ -585,7 +586,7 @@
工場出荷時設定にリセットすると、選択したカードやリングからウォレットが完全に削除されます。現在のウォレットを復元したり、カードやリングを使用してアクセスコードを復元することはできません。
工場出荷時の状態にリセットすると、選択したカードやリングからウォレットが完全に削除され、アプリから削除されます。現在のウォレットを復元することはできません。
Tangem Ringユーザーは、11/15日までChangelly経由でスワップを3回手数料ゼロで行えます!
- 今すぐ手数料0%でスワップしましょう!
+ 今すぐ手数料0%%でスワップしましょう!
他の国の銀行カードと、ロシア連邦外での居住許可証または登録をお持ちですか?
ロシアの銀行カードは現在ご利用いただけません
アプリにログインして、カードまたはリングをスキャンせずに残高を確認できます
@@ -725,6 +726,7 @@
ネットワークの状態により、現在ステーキングはご利用いただけません。しばらくしてからもう一度お試しください。
新しいバリデーターで%1$sネットワークにステーキングすると、以前にステーキングされた資金はすべてこのバリデーターに自動的に転送されます。
獲得した報酬をステーキングに再投資し、潜在的な収益を増やします。
+ 再ステーキングを使うと、ステーキングを解除することなく、あるバリデータから別のバリデータに資金を移動できます。
資金をステーキングから引き出すには、ロックを解除してください。ロック解除には%sかかります。
資金は、21日間のロック解除期間後に使用可能になります。報酬は、ロック解除後の資金とともに引き出されます。
%sのステーキング解除期間後、資金はすぐ利用可能となります。
@@ -743,6 +745,7 @@
毎日
%sごと
毎日
+ %sごと
エポック毎
時代毎
毎時間
@@ -751,7 +754,6 @@
報酬
ステーキングはロックされています
もっとステーキングする
- %1$sをステーキングし、毎%2$s報酬を受け取ります
タップしてロック解除
タップしてロック解除もしくは投票
タップして引き出す
diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml
index 170c6bfd5f..5c0cc709dd 100644
--- a/core/res/src/main/res/values-ru/strings.xml
+++ b/core/res/src/main/res/values-ru/strings.xml
@@ -261,6 +261,7 @@
Обмен
Обмен...
Неудачно
+ Приостановлен
Депозит получен
Ожидание депозита
Ожидаем пополнения...
@@ -752,6 +753,7 @@
Стейкинг временно недоступен из-за проблем в сети. Пожалуйста, попробуйте позже.
Стейкинг в сети %1$s с новым валидатором автоматически переведет ваши текущие застейканные средства на него.
Реинвестируйте свои заработанные награды в вашу застейканную сумму, увеличивая потенциальный доход
+ Рестейк позволяет вам переместить средства из одного валидатора в другого без необходимости выхода из стейкинга.
Разблокируйте свои средства, чтобы вывести их из стейкинга. Разблокировка займёт %s.
Ваши средства будут доступны для использования после 21-дневного периода отзыва. Награда будет выведена вместе с вашими выводими средствами.
Ваши средства будут доступны после %s периода отзыва.
@@ -767,7 +769,9 @@
Вручную
За блок
Ежедневно
+ Каждый %s
Каждый день
+ Каждые %s дня
За эпоху
За эру
Ежечасно
@@ -776,7 +780,6 @@
Вознаграждения
Стейкинг закрыт
Застейкать еще
- Вы стейкаете %1$s и будете получать %2$s ежегодно
Нажмите для разблокировки
Нажмите для разблокировки
Нажмите для вывода
diff --git a/core/res/src/main/res/values-uk-rUA/strings.xml b/core/res/src/main/res/values-uk-rUA/strings.xml
index 1d8ae684fb..baed26eb8c 100644
--- a/core/res/src/main/res/values-uk-rUA/strings.xml
+++ b/core/res/src/main/res/values-uk-rUA/strings.xml
@@ -262,6 +262,7 @@
Обмін
Обмін...
Не вдалося
+ Призупинено
Депозит отримано
Очікуємо на депозит
Очікуємо на депозит...
@@ -766,6 +767,7 @@
День
Кожен %s
Щодня
+ Кожен %s
Епоха
Ера
Година
@@ -774,7 +776,6 @@
Винагороди
Стейкінг закрито
Застейкати більше
- Ви стейкаєте %1$s і будете отримувати %2$s щороку
Натисніть, щоб розблокувати
Натисніть, щоб розблокувати або проголосувати
Натисніть, щоб вивести кошти
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 46365c5cc0..46dfde4c7a 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -257,6 +257,7 @@
Exchanging
Exchanging...
Failed
+ Paused
Deposit received
Awaiting deposit
Awaiting deposit...
@@ -307,7 +308,7 @@
Unlimited
Order Tangem
Scan Tangem
- This information was generated with AI.\nTap here, If you find any errors.
+ This information was generated with AI.\nTap here, if you find any errors.
To change the access code tap the card or ring as shown above and do not remove until the end of the operation
To change the passcode tap the card as shown above and do not remove until the end of the operation
To create the wallet tap the card as shown above and do not remove until the end of the operation
@@ -735,6 +736,7 @@
Staking is currently unavailable due to network conditions. Please try again later.
Staking in the %1$s network with a new validator will automatically transfer all previously staked funds to this validator
Reinvests your earned rewards in your staked amount, increasing potential earnings.
+ Restake lets you move your funds from one validator to another without the need to unstake
Unlock your money to withdraw it from staking process. Unlocking takes %s.
Your funds will be available for use after the 21-day unbonding period. Reward will be withdrawn along with your unstaking funds.
Your funds will be available for use after the %s unbonding period.
@@ -753,6 +755,7 @@
Daily
Each %s
Each day
+ Each %s days
Per Epoch
Per Era
Hourly
diff --git a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt
index d782b606f9..cb3ba18d9f 100644
--- a/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt
+++ b/features/swap/data/src/main/java/com/tangem/feature/swap/converters/ExchangeStatusConverter.kt
@@ -9,7 +9,7 @@ internal class ExchangeStatusConverter : Converter ExchangeStatusState(
status = ExchangeStatus.Verifying,
@@ -283,6 +287,12 @@ internal class TokenDetailsSwapTransactionsStateConverter(
isActive = true,
isDone = false,
)
+ isPaused -> ExchangeStatusState(
+ status = ExchangeStatus.Paused,
+ text = resourceReference(id = R.string.express_exchange_status_paused),
+ isActive = true,
+ isDone = false,
+ )
hasFailed || isFailed || isRefunded -> ExchangeStatusState(
status = ExchangeStatus.Failed,
text = TextReference.Res(R.string.express_exchange_status_failed),
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt
index ff2dd3baff..ec2a2b3cfb 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/ui/components/exchange/ExchangeStatusBlock.kt
@@ -18,13 +18,17 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
import com.tangem.core.ui.components.SpacerWMax
import com.tangem.core.ui.extensions.resolveReference
+import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.TangemTheme
+import com.tangem.core.ui.res.TangemThemePreview
import com.tangem.feature.swap.domain.models.domain.ExchangeStatus
import com.tangem.feature.tokendetails.presentation.tokendetails.state.ExchangeStatusState
import com.tangem.features.tokendetails.impl.R
import kotlinx.collections.immutable.ImmutableList
+import kotlinx.collections.immutable.toImmutableList
@Composable
internal fun ExchangeStatusBlock(
@@ -103,34 +107,34 @@ private fun ExchangeStatusStep(
label = "Exchange Step Change Success",
modifier = Modifier
.size(TangemTheme.dimens.size20),
- ) {
+ ) { state ->
when {
- it.status == ExchangeStatus.Cancelled -> ExchangeStep(
- iconRes = R.drawable.ic_close_24,
- color = TangemTheme.colors.icon.warning,
- isDone = false,
- )
- it.status == ExchangeStatus.Failed -> ExchangeStep(
- iconRes = R.drawable.ic_close_24,
- color = TangemTheme.colors.icon.warning,
- isDone = it.isDone,
- )
- it.status == ExchangeStatus.Refunded -> ExchangeStep(
- iconRes = R.drawable.ic_close_24,
- color = TangemTheme.colors.icon.warning,
- isDone = it.isDone,
- )
- it.status == ExchangeStatus.Verifying -> ExchangeStep(
+ state.status == ExchangeStatus.Cancelled -> {
+ ExchangeStep(
+ iconRes = R.drawable.ic_close_24,
+ color = TangemTheme.colors.icon.warning,
+ isDone = false,
+ )
+ }
+ state.status == ExchangeStatus.Failed || state.status == ExchangeStatus.Refunded ||
+ state.status == ExchangeStatus.Paused -> {
+ ExchangeStep(
+ iconRes = R.drawable.ic_close_24,
+ color = TangemTheme.colors.icon.warning,
+ isDone = state.isDone,
+ )
+ }
+ state.status == ExchangeStatus.Verifying -> ExchangeStep(
iconRes = R.drawable.ic_exclamation_24,
color = TangemTheme.colors.icon.attention,
- isDone = it.isDone,
+ isDone = state.isDone,
)
- it.isDone -> ExchangeStep(
+ state.isDone -> ExchangeStep(
iconRes = R.drawable.ic_check_24,
color = TangemTheme.colors.icon.primary1,
isDone = true,
)
- it.isActive -> ExchangeStepInProgress()
+ state.isActive -> ExchangeStepInProgress()
else -> ExchangeStepDefault()
}
}
@@ -144,11 +148,14 @@ private fun ExchangeStatusStep(
@Composable
private fun ExchangeStatusStepText(stepStatus: ExchangeStatusState) {
+ val status = stepStatus.status
+
val textColor = when {
- stepStatus.status == ExchangeStatus.Cancelled -> TangemTheme.colors.icon.warning
- stepStatus.status == ExchangeStatus.Refunded -> TangemTheme.colors.icon.warning
- stepStatus.status == ExchangeStatus.Failed && !stepStatus.isDone -> TangemTheme.colors.icon.warning
- stepStatus.status == ExchangeStatus.Verifying && !stepStatus.isDone -> TangemTheme.colors.icon.attention
+ status == ExchangeStatus.Cancelled || status == ExchangeStatus.Refunded || status == ExchangeStatus.Paused -> {
+ TangemTheme.colors.icon.warning
+ }
+ status == ExchangeStatus.Failed && !stepStatus.isDone -> TangemTheme.colors.icon.warning
+ status == ExchangeStatus.Verifying && !stepStatus.isDone -> TangemTheme.colors.icon.attention
stepStatus.isDone -> TangemTheme.colors.text.primary1
!stepStatus.isActive -> TangemTheme.colors.text.disabled
else -> TangemTheme.colors.text.primary1
@@ -222,4 +229,35 @@ private fun ExchangeStepSeparator() {
shape = CircleShape,
),
)
+}
+
+@Preview
+@Composable
+private fun Preview_ExchangeStatusBlock() {
+ val base = ExchangeStatusState(
+ status = ExchangeStatus.Failed,
+ text = resourceReference(id = R.string.express_exchange_status_failed),
+ isActive = true,
+ isDone = false,
+ )
+
+ TangemThemePreview {
+ ExchangeStatusBlock(
+ statuses = listOf(
+ base,
+ base.copy(isActive = false, isDone = false),
+ base.copy(isActive = true, isDone = false),
+ base.copy(isActive = true, isDone = true),
+ ExchangeStatusState(
+ status = ExchangeStatus.Paused,
+ text = resourceReference(id = R.string.express_exchange_status_paused),
+ isActive = true,
+ isDone = false,
+ ),
+ )
+ .toImmutableList(),
+ showLink = false,
+ onClick = {},
+ )
+ }
}
\ No newline at end of file