diff --git a/app/src/main/java/com/tangem/tap/domain/TapErrors.kt b/app/src/main/java/com/tangem/tap/domain/TapErrors.kt index b986f9f247..8ac459bf2b 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapErrors.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapErrors.kt @@ -26,10 +26,8 @@ sealed class TapError( val stateError: String, ) : TapError(R.string.common_custom_string, listOf("Unsupported state: $stateError")) - object ScanCardError : TapError(R.string.scan_card_error) object UnknownBlockchain : TapError(R.string.wallet_error_unsupported_blockchain_subtitle) object NoInternetConnection : TapError(R.string.wallet_notification_no_internet) - object BlockchainInternalError : TapError(R.string.send_error_blockchain_internal) object AmountExceedsBalance : TapError(R.string.send_validation_amount_exceeds_balance) data class AmountLowerExistentialDeposit( override val args: List, @@ -43,7 +41,7 @@ sealed class TapError( object DustChange : TapError(R.string.send_error_dust_change) sealed class WalletManager { - object CreationError : CustomError("Can't create wallet manager") + object CreationError : CustomError(customMessage = "Can't create wallet manager") class NoAccountError(amountToCreateAccount: String) : CustomError(amountToCreateAccount) class InternalError(message: String) : CustomError(message) object BlockchainIsUnreachableTryLater : TapError(R.string.wallet_balance_blockchain_unreachable_try_later) diff --git a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt index 5011ca010c..558534f369 100644 --- a/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt +++ b/app/src/main/java/com/tangem/tap/features/customtoken/impl/presentation/ui/components/AddCustomTokenFloatingButton.kt @@ -29,7 +29,7 @@ internal fun AddCustomTokenFloatingButton(model: AddCustomTokenFloatingButton, m .imePadding() .padding(horizontal = TangemTheme.dimens.spacing16) .fillMaxWidth(), - text = stringResource(id = R.string.common_add), + text = stringResource(id = R.string.custom_token_add_token), iconResId = R.drawable.ic_plus_24, enabled = model.isEnabled, onClick = model.onClick, diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/ClipboardOrScanQrDialog.kt b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/ClipboardOrScanQrDialog.kt index a3f94a3cd9..ce79d75c14 100644 --- a/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/ClipboardOrScanQrDialog.kt +++ b/app/src/main/java/com/tangem/tap/features/details/ui/walletconnect/dialogs/ClipboardOrScanQrDialog.kt @@ -12,7 +12,7 @@ import com.tangem.wallet.R object ClipboardOrScanQrDialog { fun create(wcUri: String, context: Context): AlertDialog { return AlertDialog.Builder(context).apply { - setTitle(context.getString(R.string.wallet_connect_title)) + setTitle(context.getString(R.string.common_select_action)) setMessage(context.getText(R.string.wallet_connect_clipboard_alert)) setPositiveButton(context.getText(R.string.wallet_connect_paste_from_clipboard)) { _, _ -> store.dispatch(WalletConnectAction.OpenSession(wcUri)) diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/StoriesScreen.kt b/app/src/main/java/com/tangem/tap/features/home/compose/StoriesScreen.kt index fa3e832436..ca6b84babc 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/StoriesScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/StoriesScreen.kt @@ -188,7 +188,7 @@ fun StoriesScreen( contentDescription = null, ) Text( - text = stringResource(id = R.string.search_tokens_title), + text = stringResource(id = R.string.common_search_tokens), fontWeight = FontWeight.Medium, fontSize = 16.sp, textAlign = TextAlign.Center, diff --git a/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt b/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt index 95049be464..ed7456d300 100644 --- a/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt +++ b/app/src/main/java/com/tangem/tap/features/home/compose/views/HomeButtons.kt @@ -1,11 +1,6 @@ package com.tangem.tap.features.home.compose.views -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.RowScope -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.heightIn -import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.* import androidx.compose.material.Button import androidx.compose.material.ButtonDefaults import androidx.compose.material.CircularProgressIndicator @@ -51,7 +46,7 @@ fun HomeButtons( }, content = { Text( - text = stringResource(id = R.string.welcome_unlock_card), + text = stringResource(id = R.string.home_button_scan), fontWeight = FontWeight.Medium, fontSize = 16.sp, textAlign = TextAlign.Center, diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt index cf68e35486..6cdb83e4d7 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/note/OnboardingNoteFragment.kt @@ -151,7 +151,7 @@ class OnboardingNoteFragment : BaseOnboardingFragment() { btnAlternativeAction.isVisible = false } - tvHeader.setText(R.string.onboarding_top_up_header) + tvHeader.setText(R.string.onboarding_topup_title) if (state.balanceNonCriticalError == null) { tvBody.setText(R.string.onboarding_top_up_body) } else { diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt index 2fa0a10909..5163bf4284 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt @@ -350,7 +350,7 @@ class TwinsCardsFragment : BaseOnboardingFragment() { btnAlternativeAction.isVisible = false } - tvHeader.setText(R.string.onboarding_top_up_header) + tvHeader.setText(R.string.onboarding_topup_title) tvBody.setText(R.string.onboarding_top_up_body) btnRefreshBalanceWidget.changeState(state.walletBalance.state) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index 269449599e..5b6afc478f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -257,7 +257,7 @@ class OnboardingWalletFragment : prepareBackupView() tvHeader.text = getText(R.string.onboarding_title_scan_origin_card) tvBody.text = getString( - R.string.onboarding_subtitle_scan_origin_card, + R.string.onboarding_subtitle_scan_primary, ) with(layoutButtonsCommon) { diff --git a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt index 58b89b9901..bfb86a0f8a 100644 --- a/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/shop/ui/ShopFragment.kt @@ -15,7 +15,6 @@ import com.tangem.core.navigation.NavigationAction import com.tangem.tap.common.GlobalLayoutStateHandler import com.tangem.tap.common.KeyboardObserver import com.tangem.tap.common.extensions.getQuantityString -import com.tangem.tap.common.extensions.hide import com.tangem.tap.common.extensions.show import com.tangem.tap.features.BaseStoreFragment import com.tangem.tap.features.shop.domain.models.ProductState @@ -153,11 +152,12 @@ internal class ShopFragment : BaseStoreFragment(R.layout.fragment_shop), StoreSu animateProductSelection(state.selectedProduct) handlePriceState(state) handlePromoCodeState(state) - if (shopifyFeatureToggleManager.isDynamicSalesProductsEnabled) { - handleNotificationBlock(state) - } else { - handleOrderingDelayBlock(isVisible = state.isOrderingDelayBlockVisible) - } + // TODO: https://tangem.slack.com/archives/C01HARKDLQ0/p1691421861756069 + // if (shopifyFeatureToggleManager.isDynamicSalesProductsEnabled) { + // handleNotificationBlock(state) + // } else { + // handleOrderingDelayBlock(isVisible = state.isOrderingDelayBlockVisible) + // } handleButtonsState(state) } @@ -198,20 +198,20 @@ internal class ShopFragment : BaseStoreFragment(R.layout.fragment_shop), StoreSu pbPromoCode.show(state.promoCodeLoading) } - private fun handleOrderingDelayBlock(isVisible: Boolean) { - if (isVisible) binding.tvSoldOutDesc.show() else binding.tvSoldOutDesc.hide() - } - - private fun handleNotificationBlock(state: ShopState) { - if (isVisible) { - binding.tvSoldOutDesc.show() - getSelectedSalesProduct(state)?.notification?.let { notification -> - binding.tvSoldOutDesc.text = notification.description - } - } else { - binding.tvSoldOutDesc.hide() - } - } + // private fun handleOrderingDelayBlock(isVisible: Boolean) { + // if (isVisible) binding.tvSoldOutDesc.show() else binding.tvSoldOutDesc.hide() + // } + // + // private fun handleNotificationBlock(state: ShopState) { + // if (isVisible) { + // binding.tvSoldOutDesc.show() + // getSelectedSalesProduct(state)?.notification?.let { notification -> + // binding.tvSoldOutDesc.text = notification.description + // } + // } else { + // binding.tvSoldOutDesc.hide() + // } + // } private fun handleButtonsState(state: ShopState) = with(binding) { btnPayGooglePay.root.show(state.isGooglePayAvailable) diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt index b35bcd93bc..174563c6be 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListScreen.kt @@ -234,7 +234,7 @@ private fun Preview_TokensListScreen_Read() { TokensListScreen( stateHolder = TokensListStateHolder.ReadContent( toolbarState = TokensListToolbarState.Title.Read( - titleResId = R.string.search_tokens_title, + titleResId = R.string.common_search_tokens, onBackButtonClick = {}, onSearchButtonClick = {}, ), diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt index 03ae578e8a..f5db5aa1a1 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/ui/TokensListToolbar.kt @@ -11,12 +11,7 @@ import androidx.compose.material.Icon import androidx.compose.material.IconButton import androidx.compose.material.Text import androidx.compose.material.TopAppBar -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue +import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.ExperimentalComposeUiApi import androidx.compose.ui.Modifier @@ -186,7 +181,7 @@ private fun Preview_AddTokensToolbar_ReadAccess() { TangemTheme { TokensListToolbar( state = Title.Read( - titleResId = R.string.search_tokens_title, + titleResId = R.string.common_search_tokens, onBackButtonClick = {}, onSearchButtonClick = {}, ), diff --git a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt index c9ab947187..a44d631c1c 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/impl/presentation/viewmodels/TokensListViewModel.kt @@ -102,14 +102,14 @@ internal class TokensListViewModel @Inject constructor( private fun getInitialToolbarState(): TokensListToolbarState { return if (args.isManageAccess) { TokensListToolbarState.Title.Manage( - titleResId = R.string.main_manage_tokens, + titleResId = R.string.add_tokens_title, onBackButtonClick = actionsHandler::onBackButtonClick, onSearchButtonClick = actionsHandler::onSearchButtonClick, onAddCustomTokenClick = actionsHandler::onAddCustomTokenClick, ) } else { TokensListToolbarState.Title.Read( - titleResId = R.string.search_tokens_title, + titleResId = R.string.common_search_tokens, onBackButtonClick = actionsHandler::onBackButtonClick, onSearchButtonClick = actionsHandler::onSearchButtonClick, ) diff --git a/app/src/main/java/com/tangem/tap/features/walletSelector/ui/components/WalletItem.kt b/app/src/main/java/com/tangem/tap/features/walletSelector/ui/components/WalletItem.kt index 305cfa6545..62ef2c0468 100644 --- a/app/src/main/java/com/tangem/tap/features/walletSelector/ui/components/WalletItem.kt +++ b/app/src/main/java/com/tangem/tap/features/walletSelector/ui/components/WalletItem.kt @@ -251,7 +251,7 @@ private fun LoadedTokensInfo( SpacerH2() Text( text = pluralStringResource( - id = R.plurals.tokens_count, + id = R.plurals.token_count, count = tokensCount, tokensCount, ), diff --git a/app/src/main/res/layout/dialog_wallet_send.xml b/app/src/main/res/layout/dialog_wallet_send.xml index 2fa54ef3d3..d204d38de3 100644 --- a/app/src/main/res/layout/dialog_wallet_send.xml +++ b/app/src/main/res/layout/dialog_wallet_send.xml @@ -10,7 +10,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="16dp" - android:text="Select" + android:text="@string/wallet_choice_wallet_option_title" android:textSize="14sp" android:textStyle="bold" /> diff --git a/app/src/main/res/layout/fragment_shop.xml b/app/src/main/res/layout/fragment_shop.xml index 0a61bf5b4a..3d6e2f4020 100644 --- a/app/src/main/res/layout/fragment_shop.xml +++ b/app/src/main/res/layout/fragment_shop.xml @@ -264,16 +264,17 @@ - + + + + + + + + + + + Erhalt der Gebühr fehlgeschlagen Laden Sie %1$s+ %2$s auf um ein Konto zu erstellen - Interner Fehler der Blockchain Minimaler Betrag ist %s Restbestand zu klein Falsche Gebühr diff --git a/core/res/src/main/res/values-de/strings.xml b/core/res/src/main/res/values-de/strings.xml index 93537cff03..0542e0607f 100644 --- a/core/res/src/main/res/values-de/strings.xml +++ b/core/res/src/main/res/values-de/strings.xml @@ -10,6 +10,7 @@ Abbrechen Entfernen Erledigt + Fehler OK Änderungen speichern Absenden @@ -27,12 +28,14 @@ Signiert Details Nutzungsbedingungen + Karte scannen Tippen Sie um den Zugangscode zu ändern Tippen Sie um den Passcode zu ändern Legen Sie die Karte zum Scannen an Tippen um zu signieren Legen Sie die Karte an Der Betrag enthält nicht einige Ihrer Mittel + Ein wallet erstellen Betrag Adresse Die Adresse stimmt mit der Adresse Ihrer Brieftasche überein diff --git a/core/res/src/main/res/values-fr/strings-blockchain.xml b/core/res/src/main/res/values-fr/strings-blockchain.xml index 7a18c99c18..42c3c19b03 100644 --- a/core/res/src/main/res/values-fr/strings-blockchain.xml +++ b/core/res/src/main/res/values-fr/strings-blockchain.xml @@ -2,7 +2,6 @@ Échec de réception des commissions Pour créer un compte, téléchargez %1$s+ %2$s - Erreur interne de la blockchain Le montant minimal est de %s Le reste est trop petit Commission non valide diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml index 529af080aa..3dcb556630 100644 --- a/core/res/src/main/res/values-fr/strings.xml +++ b/core/res/src/main/res/values-fr/strings.xml @@ -10,6 +10,7 @@ Annuler Supprimer Exécuté + Erreur OK Sauvegarder les modifications Envoyer @@ -27,12 +28,14 @@ Signé Référénces Conditions d\'utilisation + Scannez la carte Touchez, pour modifier le code d\'accès Touchez, pour modifier le mot de passe Posez pour scanner Touchez pour signer Posez la carte Le montant n\'inclut pas certains de vos fonds + Créer un portefeuille Somme Adresse L\'adresse est la même que celle de votre portefeuille diff --git a/core/res/src/main/res/values-it/strings-blockchain.xml b/core/res/src/main/res/values-it/strings-blockchain.xml index 92560ee28a..2d50632130 100644 --- a/core/res/src/main/res/values-it/strings-blockchain.xml +++ b/core/res/src/main/res/values-it/strings-blockchain.xml @@ -2,7 +2,6 @@ Impossibile ottenere la commissione Scarica %1$s+ %2$s per creare un account - Errore interno della blockchain L\'importo minimo è di %s L\'importo residuo è molto basso Commissione non valida diff --git a/core/res/src/main/res/values-it/strings.xml b/core/res/src/main/res/values-it/strings.xml index 3c294f6376..e9d1904611 100644 --- a/core/res/src/main/res/values-it/strings.xml +++ b/core/res/src/main/res/values-it/strings.xml @@ -10,6 +10,7 @@ Annulla Rimuovere Fatto + Errore OK Mantieni le modifiche Invia @@ -27,12 +28,14 @@ Firmato Requisiti Termini del servizio + Scansiona carta Avvicina per modificare il codice di accesso Avvicina per modificare la password Avvicina per scansionare Avvicina per firmare Avvicina la carta L\'importo non include alcuni dei tuoi fondi + Crea portafoglio Importo Indirizzo L\'indirizzo corrisponde all\'indirizzo del tuo portafoglio diff --git a/core/res/src/main/res/values-ru/strings-blockchain.xml b/core/res/src/main/res/values-ru/strings-blockchain.xml index 15d04919e5..0e716ae5d1 100644 --- a/core/res/src/main/res/values-ru/strings-blockchain.xml +++ b/core/res/src/main/res/values-ru/strings-blockchain.xml @@ -6,7 +6,6 @@ Из-за ограничений Kaspa в одну транзакцию может поместиться только %1$d UTXO. Это означает, что вы можете отправить только %2$s или меньше. Вам нужно уменьшить сумму. Пополните счет на %1$s+ %2$s, чтобы создать аккаунт Аккаунт получателя не активирован. Отправьте %s или более для активации аккаунта. - Внутренняя ошибка блокчейна Минимальная сумма: %s Сдача слишком мала Неверная комиссия diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index ed6016a6d2..ab73d49ede 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -1,13 +1,17 @@ Добавить токен + Валюты Отправляйте только %1$s (%2$s) в сети %3$s на этот адрес. Использование другой сети может привести к утрате средств. + Спасибо за ваш отзыв + Отправлено успешно Обратиться в поддержку Отправить отзыв Эта карта ранее пополнялась и подписывала транзакции. Выведите средства как можно быстрее, если вы получили эту карту из ненадежного источника. Если это ваша карта, то не о чем беспокоиться. Эта функция недоступна в демонстрационном режиме Приложение работает в демонстрационном режиме. Средства на всех счетах ненастоящие. Карта, которую вы отсканировали, является картой разработчика. Не принимайте её в качестве оплаты. + Не удалось отправить письмо Причина: %s Не могу отправить транзакцию Внимание! Валюты на разных сетях имеют разные адреса. Убедитесь, что адрес соответствует сети, в которой вы отправляете средства. @@ -36,14 +40,22 @@ Отключите эту опцию, если не хотите, чтобы эта карта использовалась для сброса кодов доступа на другие карты этого кошелька. Обратите внимание, сброс кода также не будет доступен на этой карте. Использовать эту карту для сброса кода доступа на других картах в этом кошельке + Отключить возможность сброса кода доступа на этой карте или других картах этого кошелька Восстановление кода доступа + Сбросить + Вы уверены, что хотите это сделать? Смена кода доступа Код доступа будет изменен только на данной карте Заводские настройки Тип безопасности + Выбранный способ защиты приложения Настройки карты Tangem Bot Чат + Оценить агента + Отправить логи + Пожалуйста, выберите действие + Пожалуйста, оцените работу агента Принять Добавить Применить @@ -56,6 +68,7 @@ Вы не предоставили доступ к камере, пожалуйста, измените настройки конфиденциальности. Отмена Закрыть + Продолжить Копировать Скопировать адрес Создать @@ -65,12 +78,17 @@ Готово Включить Включено + Ошибка Обменять Посмотреть историю транзакций Обозреватель + Сгенерировать адреса + Импортировать Нравится + Заблокирован Основная сеть Нет + Нет адреса Нет данных OK Основная карта @@ -79,7 +97,9 @@ Перезагрузить Сохранить изменения Искать + Поиск токенов Секретная фраза + Выберите действие Продать Отправить Сервер недоступен, повторите попытку позднее @@ -99,6 +119,7 @@ Да Адрес контракта скопирован! Доступные сети + Добавить токен Адрес контракта Адрес контракта некорректен Путь деривации некорректен @@ -138,7 +159,6 @@ Проверьте подключение с интернетом или переключитесь на другую сеть Условия использования К сожалению, текущая версия приложения не готова к работе с этой картой, проверьте наличие обновлений - Данное приложение не предназначено для работы с этой картой или требует обновления Вы использовали карту от другого кошелька. Приложите карту, связанную с этим кошельком. Вы получаете Вы отправляете @@ -153,10 +173,13 @@ Обращение в поддержку Tangem Не могу отправить транзакцию Купить + Сканировать Чтобы изменить код доступа, приложите карту как показано выше и не убирайте до окончания операции Чтобы изменить пароль, приложите карту как показано выше и не убирайте до окончания операции Чтобы создать кошелек, приложите карту как показано выше и не убирайте до окончания операции + Чтобы сбросить настройки до заводских, приложите карту как показано выше и не убирайте до окончания операции Приложите, чтобы отсканировать + Чтобы подписать транзакцию, приложите карту как показано выше и не убирайте до окончания операции Приложите, чтобы подписать Приложите карту Внутренняя ошибка: не удается найти менеджер кошельков @@ -174,10 +197,16 @@ Баланс В сумме учтены не все монеты 1INCH токены будут зачислены на адрес вашего кошелька в сети %s в течение 48 часов - По вашему промокоду не было покупки кошелька, а значит вы не можете получить бонус. Купите кошелек Tangem, отсканируйте его в приложении и получите бонус. Чтобы получить доступ ко всем сетям, вам необходимо отсканировать карту Отсканируйте карту Токены + + Вам надо сгенерировать адрес для %d новой сети, используя вашу карту + Вам надо сгенерировать адреса для %d новых сетей, используя вашу карту + Вам надо сгенерировать адреса для %d новых сетей, используя вашу карту + Вам надо сгенерировать адреса для %d новых сетей, используя вашу карту + + Некоторые адреса отсутствуют Вам необходимо установить единый код доступа для защиты всех ваших карт Защита Позже вы сможете установить индивидуальный код доступа для каждой карты @@ -219,7 +248,7 @@ Код доступа Подключиться Резервная копия - Читать про секретную фразу + Прочитать о секретной фразе Запишите эти 12 слов в порядке, указанном ниже, и сохраните их в надежном месте. Ваша секретная фраза Чтобы импортировать кошелек, введите секретную фразу в поле ниже @@ -237,7 +266,7 @@ Чтобы начать процесс резервного копирования, добавьте одну или две резервные карты. Вы можете добавить еще одну карту или завершить процесс резервного копирования Подготовьте резервную карту с номером %s - Подготовьте основную карту + Отсканируйте основную карту, чтобы начать процесс резервного копирования. Подготовьте основную карту с номером %s Поздравляем! Ваша платежная крипто карта теперь активирована! Ваша карта настроена и готова к использованию. @@ -255,7 +284,7 @@ Пополните кошелек более чем на %1$s %2$s, чтобы начать пользоваться картой Купить криптовалюту Показать адрес кошелька - Пополните свой кошелек + Активация кошелька Процесс связывания карт частично завершен. Вы не можете выйти из него сейчас. Если процесc создания кошелька каким-либо образом прервется, вам придется начинать сначала Вы можете сделать резервную копию своих ключей на одной или двух других пустых картах Wallet. @@ -275,12 +304,23 @@ Участвовать Не удалось загрузить информацию по реферальной программе. Пожалуйста, попробуйте позже. Не удалось загрузить информацию по реферальной программе. Код ошибки: %s. Пожалуйста, попробуйте позже. + Грядущие выплаты Ваши друзья купили + Меньше + Больше + Нет грядущих выплат + + за %d кошелек + за %d кошелька + за %d кошельков + за %d кошельков + + Получите ^^%1$s^^ на ваш адрес в сети %2$s %3$s ^^спустя 30 дней^^ за каждый кошелек, который купит ваш друг Получите на ваш адрес в сети %1$s%2$s за каждый кошелек, который купит ваш друг Вы Получит - при покупке карточки на сайте tangem.com + при покупке кошелька на сайте tangem.com %s скидку Ваш друг Персональный код скопирован! @@ -316,7 +356,6 @@ Сканировать Отсканируйте карту, чтобы изменить ее настройки. Изменения затронут только ту карту, которую вы отсканировали, и не повлияют на другие карты, привязанные к вашему кошельку. Приготовьте свою карту - Поиск валют Сумма Адрес Адрес совпадает с адресом кошелька @@ -342,7 +381,7 @@ У меня есть промо-код… Tangem Wallet Другие способы оплаты - Из-за высокого количества заказов, которые мы получаем, доставка может быть задержана на срок до 5 недель в зависимости от вашего местоположения + Сделать предзаказ Итого Сеть Solana взимает арендную плату в размере %1$s каждые 2 дня. Аккаунты, которые не могут позволить себе арендную плату, удаляются из сети. Пополните свой счет более чем на %2$s, чтобы не платить арендную плату. Держите свои криптосбережения в безопасности. Приватные ключи надежно хранятся на карте. @@ -414,12 +453,6 @@ Токен %1$s является основной валютой в сети %2$s и не может быть скрыт до тех пор, пока у вас в списке есть другие токены этой сети. Невозможно скрыть %s Нет цены - - %d токен - %d токена - %d токенов - %d токенов - контракт: %s У вас еще нет транзакций Не удалось загрузить историю транзакций.\nНажмите на кнопку перезагрузки, чтобы обновить информацию. @@ -437,6 +470,7 @@ Подготовка карты Tangem Twin Это действие необратимо. У вас не будет доступа к старому кошельку. + Приложите twin-карту с номером %s и не убирайте до окончания операции Добавить новый кошелек Вы уверены, что хотите удалить этот кошелек? %d выбрано @@ -456,6 +490,7 @@ Транзакция подтверждается… Подтвержденный баланс Действия + Что отправить? Вы хотите купить или продать криптовалюту? Запрос на подпись сообщения.\n\n%s Dapp %1$s, запрос на\nподпись транзакции с BNB.\n\n%2$s @@ -477,7 +512,10 @@ Произошла непредвиденная ошибка. Код ошибки: %d Попробуйте, пожалуйста, позже. Если проблема будет продолжать возникать - обратитесь в службу поддержки. Сообщение было успешно подписано и отправлено в Dapp Сеть %s не найдена. Пожалуйста, добавьте её и попробуйте заново. + Нет открытых сессий WalletConnect + Упс. Нет сессий. Вставить из буфера обмена + Сообщение для %1$s:\n%2$s Запрос на открытие сессии для\n%1$s\n\nСЕТЬ: %2$s\n\nURL: %3$s Операция не может быть завершена.\n\nВы уже установили сеанс WalletConnect с этими параметрами. Сканировать новый код @@ -485,6 +523,8 @@ Сеть не поддерживается. Пожалуйста, выберите другую сеть. Выберите сеть Dapp не предоставил необходимые данные для открытия сессии WalletConnect + Не удалось найти сессию для обработки запроса + Сессии WalletConnect Подключение к Dapps WalletConnect Транзакция успешно подписана и отправлена ​​в Dapp diff --git a/core/res/src/main/res/values-zh-rTW/strings-blockchain.xml b/core/res/src/main/res/values-zh-rTW/strings-blockchain.xml index 67f050ffa1..5aa30cef8f 100644 --- a/core/res/src/main/res/values-zh-rTW/strings-blockchain.xml +++ b/core/res/src/main/res/values-zh-rTW/strings-blockchain.xml @@ -6,7 +6,6 @@ 由於 Kaspa 的限制,只有%1$d UTXO 可以放入單次交易中。這意味著您只能發送%2$s或更少數量。您需要減少數量。 加載 %1$s+ %2$s 以創建帳戶 目標帳戶未激活。發送 %s 或更多以激活帳戶 - 區塊鏈內部錯誤 最小數量是 %s 更動太小 無效費用 diff --git a/core/res/src/main/res/values-zh-rTW/strings.xml b/core/res/src/main/res/values-zh-rTW/strings.xml index 711e9ca9c5..748251aefa 100644 --- a/core/res/src/main/res/values-zh-rTW/strings.xml +++ b/core/res/src/main/res/values-zh-rTW/strings.xml @@ -1,13 +1,17 @@ 添加自定義代幣 + 管理代幣 僅將 %1$s (%2$s) 從 %3$s 網絡發送到此地址。使用其他代幣和網絡可能會導致資金損失 + 謝謝您的反饋 + 成功送出 請求支持 發送反饋 此卡過去已經充值並簽署過交易。如果您從不受信任的來源收到此卡,請考慮立即提取所有資金。如果是您的卡,則無需擔心 此功能不在展示模式中提供 您正在展示模式。所有資產皆不是真的 您掃描的卡是開發卡。不要用它作為付款方式 + 發送電子郵件失敗 原因:%s 無法發送交易 請注意代幣在不同的網路有不同的地址。請再次檢查正確的地址 @@ -32,14 +36,22 @@ 如果您不希望使用此卡重置此錢包中其他卡上的訪問密碼,請禁用此選項。請注意,這也會阻止您重置此卡上的訪問密碼。 允許您使用此卡重置此錢包中其他卡上的訪問密碼 + 禁用重置此卡或此錢包中其他卡上的訪問密碼的功能 恢復訪問密碼 + 重置 + 您確定要這麼做嗎? 更改訪問密碼 訪問密碼將僅在此卡上更改 回復至原廠設置 安全模式 + 選定的應用程序保護方法 卡片設置 Tangem 機器人 支援 + 請評價 + 發送logs + 請選擇一個操作 + 請評價我們的服務 接受 添加 注意 @@ -50,6 +62,7 @@ 您尚未授予相機訪問權限,請更改您的隱私設置 刪除 關閉 + 繼續 複製 複製地址 創造 @@ -59,7 +72,9 @@ 完成 允許 啟用 + 錯誤 交易 + 導入 喜歡 OK @@ -67,6 +82,8 @@ 拒絕 保存設置 搜索 + 搜尋代幣 + 選擇 銷售 發送 伺服器不可用,請稍後在試 @@ -84,6 +101,7 @@ 已複製代幣地址 支持的網路 + 添加代幣 代幣地址 無效地址 衍生路徑錯誤 @@ -135,10 +153,13 @@ Tangem反饋 無法發送交易 訂購 + 掃描卡片 要更改訪問密碼,請完全按照上圖所示連接手機和卡片 要更改密碼,請完全按照上圖所示連接手機和卡 要創建錢包,請完全按照上圖所示連接手機和卡 + 要重置為出廠設置,請完全按照上圖所示連接手機和卡片 點擊掃描 + 要簽名,請完全按照上圖所示連接手機和卡 點擊簽名 點按卡片 內部錯誤:找不到錢包管理器 @@ -188,7 +209,7 @@ 這此情況,您必須要重新開始 您想要離開啟用程序嗎? 開始 - 您要添加的卡上已經創建了另一個錢包。你想重置它並將卡用於新錢包嗎 + 您要添加的卡上已經創建了另一個錢包。你想重置它並將卡用於新錢包嗎? PIN 碼 連接 創建備份 @@ -210,7 +231,7 @@ 要開始備份過程,最多可添加兩張備份卡。 您可以再添加一張卡或完成備份過程 準備編號為 %s 的備份卡 - 準備主卡 + 掃描主卡以啟動備份過程 準備編號為 %s 的主卡 恭喜! 您的第一張支付加密卡已啟用! 您的錢包卡已配置完畢,可以使用了 @@ -228,7 +249,7 @@ 要開始,只需為錢包充值超過 %1$s %2$s 購買加密貨幣 顯示錢包地址 - 充值你的錢包 + 啟動錢包 結對過程已部分完成。你現在不能退出 如果創建錢包的過程以任何方式中斷,您將得重新開始 您最多可以額外備份兩張空白的 Tangem冷錢包 @@ -247,7 +268,6 @@ 對於你的朋友在你的 %1$s 網絡地址%2$s上購買的每個錢包 得到 - 當在 tangem.com購買卡片 %s 折扣 你的朋友 個人促銷碼已複製! @@ -280,7 +300,6 @@ 掃描卡片 掃描卡片以更改其設置。這些更改只會影響您掃描過的卡,不會影響綁定到您錢包的其他卡。 準備好您的卡! - 搜尋代幣 數量 地址 地址與錢包地址相同 @@ -367,9 +386,6 @@ %1$s 代幣是 %2$s 網絡上的主要貨幣,只要列表中還有該網絡上的其他代幣,它就無法被隱藏。 無法隱藏 %s 無費用 - - %d 代幣 - 您還沒有任何交易 無法加載交易 進行中… @@ -383,6 +399,7 @@ 準備卡片 Tangem Twin 這個動作是不可逆的。您將無法訪問舊錢包 + 將您的 iPhone 靠近編號為 %s 的雙胞胎卡 添加新錢包 您確定要刪除此錢包? 已選擇 %d @@ -402,6 +419,7 @@ 交易進行中 檢視餘額 動作 + 選擇錢包選項 您想要購買或賣出交易貨幣? 請求籤署消息。%s Dapp %1$s,請求\n簽署 BNB 交易。\n%2$s @@ -423,7 +441,10 @@ 我們遇到了未知錯誤。錯誤代碼:%d。如果問題仍然存在-請隨時聯繫我們的支持人員 消息已成功簽名並發送至Dapp 沒有 %s 網路,請先加入後再試一次 + 沒有已連結的WalletConnect + Ooops, 沒有連接 從剪貼板貼上 + 給 %1$s 的消息:%2$s 請求開始會話\n%1$s\n\n網絡: %2$s\n\n網址:%3$s 無法完成執行,您已經使用此參數建立了 WalletConnect 連接 掃描新密碼 @@ -431,6 +452,8 @@ 不支持此網絡。請選擇其他網絡 選擇網路 Dapp 沒有提供必要的數據來建立 WalletConnect 連接 + 找不到請求的連接 + WalletConnect 連接 連結到Dapps WalletConnect 交易已成功簽署並發送至 Dapp diff --git a/core/res/src/main/res/values/strings-blockchain.xml b/core/res/src/main/res/values/strings-blockchain.xml index 4e305a3ce1..41209dd8f9 100644 --- a/core/res/src/main/res/values/strings-blockchain.xml +++ b/core/res/src/main/res/values/strings-blockchain.xml @@ -6,7 +6,6 @@ Due to Kaspa limitations only %1$d UTXOs can fit in a single transaction. This means you can only send %2$s or less. You need to reduce the amount. Load %1$s+ %2$s to create account Destination account is not active. Send %s or more to activate the account. - Blockchain internal error Minimum amount is %s Change is too small Invalid Fee diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml index a04ba073c9..f1471f6745 100644 --- a/core/res/src/main/res/values/strings.xml +++ b/core/res/src/main/res/values/strings.xml @@ -1,13 +1,17 @@ Add custom token + Manage tokens Send only %1$s (%2$s) from %3$s network to this address. Using other tokens and networks may result in loss of funds. + Thank you for your feedback + Sent successfully Request support Send feedback This card has been already topped up and signed transactions in the past. Consider immediate withdrawal of all funds if you have received this card from an untrusted source. If it\'s your card, there is nothing to worry about. This feature is disabled in Demo mode You are currently running in Demo mode. All funds are not real. The card you scanned is a development card. Don\'t accept it as a payment. + Failed to send the email Reason: %s Can\'t send a transaction Note that tokens on different networks have different addresses. Double check that your address matches the network when you transfer funds. @@ -34,14 +38,22 @@ Disable this option if you don\'t want this card to be used to reset access codes on other cards in this wallet. Please note that this will also prevent you from resetting the access code on this card. Allows you to use this card to reset access code on other cards in this wallet + Disable the ability to reset the access code on this card or other cards in this wallet Access code recovery + Reset + Are you sure you want to do this? Change Access Code Access code will be changed on this card only Reset to Factory Settings Security Mode + Selected application protection method Card Settings Tangem Bot Support + Rate agent + Send logs + Please select an action + Please, rate the work of the agent Accept Add Apply @@ -54,6 +66,7 @@ You have not given access to your camera, please adjust your privacy settings Cancel Close + Continue Copy Copy address Create @@ -63,13 +76,18 @@ Done Enable Enabled + Error Exchange Explore transaction history Explorer + Generate addresses + Import Learn & Earn Like + Locked Main network No + No address No data OK Primary Card @@ -78,7 +96,9 @@ Reload Save changes Search + Search tokens Seed phrase + Select action Sell Send The server is not available, please try again later @@ -98,6 +118,7 @@ Yes Contract address copied! Available networks + Add token Contract address Contract address is invalid Derivation path is invalid @@ -137,7 +158,6 @@ Check your internet connection or switch to a different network Terms of Service Oops, the current version of the application is not ready to work with this card, please check for updates. - This application is not designed to work with this card or needs to be updated You have used a card from another wallet. Tap the card associated with this wallet You Receive You Send @@ -152,10 +172,13 @@ Tangem feedback Can\'t send a transaction Order + Scan card To change the access code tap the card 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 + To reset to factory settings tap the card as shown above and do not remove until the end of the operation Tap to scan + To sign tap the card as shown above and do not remove until the end of the operation Tap to sign Tap the card Internal error: wallet manager not found @@ -172,10 +195,14 @@ Total balance The amount does not include some of your funds 1INCH tokens will be credited to your %s wallet address within 48 hours - There was no purchase of a wallet using your promo code, which means you cannot receive a bonus. Buy Tangem wallet, scan it in the app, and get the bonus. To access all the networks you need to scan the card Scan your card Tokens + + You need to generate address for %d new network using your card + You need to generate addresses for %d new networks using your card + + Some addresses are missing You have to set up a single access code to protect all your wallets Protect You can set up an individual access code on each card later @@ -235,7 +262,7 @@ To start the backup process add up to two backup cards. You can add one more card or finalize the backup process Prepare the backup card with number %s - Prepare the primary card + Scan the primary card to start the backup process. Prepare the primary card with number %s Congratulations! Your first payment crypto card has been activated! Your wallet card is configured and ready for use. @@ -253,7 +280,7 @@ To get started, simply top up the wallet with more than %1$s %2$s Buy crypto Show the wallet\'s address - Top up your wallet + Activate a wallet The twinning process is partly complete. You can\'t exit it now. If the process of creating the wallet gets interrupted in any way, you\'ll have to start over You can backup your keys up to two other blank Tangem Wallet cards. @@ -274,12 +301,21 @@ Participate Failed to load the information about the referral program. Please try again later. Failed to load the information about the referral program. Error code: %s. Please try again later. + Upcoming payments Your friends bought + Less + More + No upcoming payments + + for %d wallet + for %d wallets + + Will get ^^%1$s^^ for each wallet bought by your friend on your %2$s network address %3$s ^^30 days after^^ that Will get for each wallet bought by your friend on your %1$s network address%2$s You Will get a - when buying a card on tangem.com + when buying a wallet on tangem.com %s discount Your friend Personal code copied! @@ -313,7 +349,6 @@ Scan Card Scan the card to change its settings. The changes will impact only the card you\'ve scanned and will not affect other cards tied to your wallet. Get your card ready! - Search tokens Amount Address Address is the same as wallet address @@ -339,7 +374,7 @@ I have a promo code… Tangem Wallet Other payment methods - Due to the high volume of orders we are receiving shipping may be delayed up to 5 weeks depending on your location + Pre-order now Total Solana network charges a rent of %1$s every 2 days. Accounts that can\'t afford the rent are purged from the network. Deposit your account with more than %2$s to use it for free. Store your crypto assets secure while keeping private keys contained in your card @@ -409,10 +444,6 @@ The %1$s token is the main currency on the %2$s network and cannot be hidden as long as you have other tokens on this network in the list. Unable to hide %s No rate - - %d token - %d tokens - contract: %s You don\'t have any transactions yet Failed to load transaction history.\nClick on reload button to update the information. @@ -430,6 +461,7 @@ Preparing card Tangem Twin This action is irreversible. You will not have access to the old wallet. + Tap the twin card with number %s and do not remove until the end of the operation Add new wallet Are you sure you want to delete this wallet? %d selected @@ -449,6 +481,7 @@ Transaction is in progress… Verified Balance Actions + Choose wallet option Do you want to buy or sell crypto? Requesting to sign a message.\n\n%s Dapp %1$s, requesting to\nsign BNB transaction.\n\n%2$s @@ -470,7 +503,10 @@ We\'ve encountered unknown error. Error code: %d. If the problem persists — feel free to contact our support The message has been successfully signed and sent to the Dapp %s network not found. Please, add it first and try again. + No opened WalletConnect sessions + Ooops. No Sessions. Paste from clipboard + Message for %1$s:\n%2$s Request to start a session for\n%1$s\n\nNETWORK: %2$s\n\nURL: %3$s The operation couldn\'t be completed.\n\nYou have already established a WalletConnect session with this parameters. Scan new code @@ -478,6 +514,8 @@ This network is not supported. Please select another network. Select network Dapp didn\'t provide essential data to establish WalletConnect session + Failed to find session for request + WalletConnect Sessions Connect to Dapps WalletConnect The transaction has been successfully signed and sent to the Dapp diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt index 3c855863ac..58c4ac2cd1 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/ui/Learn2earnDialogs.kt @@ -16,7 +16,8 @@ import com.tangem.feature.learn2earn.presentation.ui.state.MainScreenState internal fun Learn2earnDialogs(dialog: MainScreenState.Dialog?) { when (dialog) { is MainScreenState.Dialog.Claimed -> ClaimedDialog(dialog) - is MainScreenState.Dialog.PromoCodeNotRegistered -> PromoCodeNotRegisteredDialog(dialog) + // TODO: https://tangem.slack.com/archives/C01HARKDLQ0/p1691421861756069 + // is MainScreenState.Dialog.PromoCodeNotRegistered -> PromoCodeNotRegisteredDialog(dialog) is MainScreenState.Dialog.Error -> ErrorDialog(dialog) else -> Unit } @@ -41,30 +42,30 @@ private fun ClaimedDialog(dialog: MainScreenState.Dialog.Claimed) { ) } -@Composable -private fun PromoCodeNotRegisteredDialog(dialog: MainScreenState.Dialog.PromoCodeNotRegistered) { - AlertDialog( - title = { - Text(text = stringResource(id = R.string.common_error)) - }, - text = { - Text(text = stringResource(id = R.string.main_promotion_no_purchase)) - }, - dismissButton = { - TextButton( - text = stringResource(id = R.string.common_cancel), - onClick = dialog.onCancel, - ) - }, - confirmButton = { - TextButton( - text = stringResource(id = R.string.common_buy), - onClick = dialog.onOk, - ) - }, - onDismissRequest = dialog.onDismissRequest, - ) -} +// @Composable +// private fun PromoCodeNotRegisteredDialog(dialog: MainScreenState.Dialog.PromoCodeNotRegistered) { +// AlertDialog( +// title = { +// Text(text = stringResource(id = R.string.common_error)) +// }, +// text = { +// Text(text = stringResource(id = R.string.main_promotion_no_purchase)) +// }, +// dismissButton = { +// TextButton( +// text = stringResource(id = R.string.common_cancel), +// onClick = dialog.onCancel, +// ) +// }, +// confirmButton = { +// TextButton( +// text = stringResource(id = R.string.common_buy), +// onClick = dialog.onOk, +// ) +// }, +// onDismissRequest = dialog.onDismissRequest, +// ) +// } @Composable private fun ErrorDialog(dialog: MainScreenState.Dialog.Error) { diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt index b10aac1300..ad9b5d8d2c 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/SwapSelectTokenScreen.kt @@ -5,15 +5,7 @@ import androidx.annotation.StringRes import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.systemBarsPadding +import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.shape.CircleShape @@ -62,7 +54,7 @@ fun SwapSelectTokenScreen( ExpandableSearchView( title = stringResource(R.string.swapping_token_list_title), onBackClick = onBack, - placeholderSearchText = stringResource(id = R.string.search_tokens_title), + placeholderSearchText = stringResource(id = R.string.common_search_tokens), onSearchChange = state.onSearchEntered, onSearchDisplayClose = { state.onSearchEntered("") }, onFocusChange = onSearchFocusChange,