From d9fa49579eb185c4ec5b5d6d2c4e612df14cc70a Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 11 Sep 2019 16:00:59 +0300 Subject: [PATCH 1/3] Updated on 2026-08-14 --- app/src/main/res/values-fr/strings.xml | 4 ++++ app/src/main/res/values/strings.xml | 2 +- tangem-sdk/src/main/res/values-fr/strings.xml | 4 ++++ tangem-sdk/src/main/res/values/strings.xml | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/values-fr/strings.xml create mode 100644 tangem-sdk/src/main/res/values-fr/strings.xml diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000000..0d2c4cc409 --- /dev/null +++ b/app/src/main/res/values-fr/strings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 53129d77a4..a2a62c6dc2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -16,7 +16,7 @@ with balance Send to wallet Amount - BTC + BTC Tangem AG Scan again to verify the card READING… diff --git a/tangem-sdk/src/main/res/values-fr/strings.xml b/tangem-sdk/src/main/res/values-fr/strings.xml new file mode 100644 index 0000000000..0d2c4cc409 --- /dev/null +++ b/tangem-sdk/src/main/res/values-fr/strings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/tangem-sdk/src/main/res/values/strings.xml b/tangem-sdk/src/main/res/values/strings.xml index b92c6c14f9..067b995daf 100644 --- a/tangem-sdk/src/main/res/values/strings.xml +++ b/tangem-sdk/src/main/res/values/strings.xml @@ -1,6 +1,6 @@ - tangemcard + tangemcard OK Quit Enable NFC? From e22d7bd9d74b17f882b709ddb1e9698a4d928ffd Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 18 Sep 2019 11:17:40 +0300 Subject: [PATCH 2/3] Updated on 2026-08-14 --- .../tangem/ui/fragment/VerifyCardFragment.kt | 18 +++--- .../fragment/wallet/LoadedWalletFragment.kt | 6 +- .../com/tangem/wallet/BalanceValidator.java | 64 ++++++++++--------- .../com/tangem/wallet/bch/BtcCashEngine.java | 20 +++--- .../tangem/wallet/binance/BinanceEngine.java | 20 +++--- .../java/com/tangem/wallet/btc/BtcEngine.java | 20 +++--- .../tangem/wallet/cardano/CardanoEngine.java | 16 ++--- .../tangem/wallet/ducatus/DucatusEngine.java | 20 +++--- .../java/com/tangem/wallet/eos/EosEngine.java | 16 ++--- .../java/com/tangem/wallet/eth/EthEngine.java | 20 +++--- .../java/com/tangem/wallet/ltc/LtcEngine.java | 20 +++--- .../wallet/nftToken/NftTokenEngine.java | 13 ++-- .../com/tangem/wallet/token/TokenEngine.java | 20 +++--- .../java/com/tangem/wallet/xlm/XlmEngine.java | 20 +++--- .../java/com/tangem/wallet/xrp/XrpEngine.java | 24 +++---- app/src/main/res/values/strings.xml | 44 ++++++++++++- .../res/values/strings_untranslatable.xml | 51 +++++++-------- 17 files changed, 229 insertions(+), 183 deletions(-) diff --git a/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt b/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt index cf8e7642dc..7e483efbca 100644 --- a/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/VerifyCardFragment.kt @@ -333,30 +333,30 @@ class VerifyCardFragment : BaseFragment(), NavigationResultListener, NfcAdapter. var features = "" features += if (ctx.card!!.allowSwapPIN()!! && ctx.card!!.allowSwapPIN2()!!) { - "Allows change PIN1 and PIN2\n" + getString(R.string.details_both_pins_can_be_changed) } else if (ctx.card!!.allowSwapPIN()!!) { - "Allows change PIN1\n" + getString(R.string.details_pin1_can_be_changed) } else if (ctx.card!!.allowSwapPIN2()!!) { - "Allows change PIN2\n" + getString(R.string.details_pin2_can_be_changed) } else { - "Fixed PIN1 and PIN2\n" + getString(R.string.details_both_pins_fixed) } if (ctx.card!!.needCVC()!!) - features += "Requires CVC\n" + features += getString(R.string.details_required_cvc) if (ctx.card!!.supportDynamicNDEF()!!) { - features += "Dynamic NDEF for iOS\n" + features += getString(R.string.details_dynamic_ndef) } else if (ctx.card!!.supportNDEF()!!) - features += "NDEF\n" + features += getString(R.string.details_ndef) if (ctx.card!!.supportBlock()!!) - features += "Blockable\n" + features += getString(R.string.details_blockable) if (ctx.card!!.supportOnlyOneCommandAtTime()!!) - features += "Atomic command mode" + features += getString(R.string.details_atomic_commmands) if (features.endsWith("\n")) features = features.substring(0, features.length - 1) diff --git a/app/src/main/java/com/tangem/ui/fragment/wallet/LoadedWalletFragment.kt b/app/src/main/java/com/tangem/ui/fragment/wallet/LoadedWalletFragment.kt index 70fa44d1fd..b7de010cfa 100644 --- a/app/src/main/java/com/tangem/ui/fragment/wallet/LoadedWalletFragment.kt +++ b/app/src/main/java/com/tangem/ui/fragment/wallet/LoadedWalletFragment.kt @@ -627,9 +627,9 @@ class LoadedWalletFragment : BaseFragment(), NavigationResultListener, NfcAdapte val validator = BalanceValidator() // TODO why attest=false? validator.check(ctx, false) - context?.let { ContextCompat.getColor(it, validator.color) }?.let { tvBalanceLine1.setTextColor(it) } - tvBalanceLine1.text = validator.firstLine - tvBalanceLine2.text = validator.getSecondLine(false) + context?.let { ContextCompat.getColor(it, validator.color) }?.let { tvBalanceLine1?.setTextColor(it) } + tvBalanceLine1?.text = getString(validator.firstLine) + tvBalanceLine2?.text = getString(validator.getSecondLine(false)) } val engine = CoinEngineFactory.create(ctx) diff --git a/app/src/main/java/com/tangem/wallet/BalanceValidator.java b/app/src/main/java/com/tangem/wallet/BalanceValidator.java index 9e5bc56951..9457557164 100644 --- a/app/src/main/java/com/tangem/wallet/BalanceValidator.java +++ b/app/src/main/java/com/tangem/wallet/BalanceValidator.java @@ -1,36 +1,40 @@ package com.tangem.wallet; +import androidx.annotation.StringRes; + import com.tangem.App; import com.tangem.tangem_card.data.TangemCard; public class BalanceValidator { - private String firstLine; - private String secondLine; + private @StringRes int firstLine; + private @StringRes int secondLine; private int score; private boolean hasPending; - public String getFirstLine() { + public @StringRes int getFirstLine() { return firstLine; } - public void setFirstLine(String value) { + public void setFirstLine(@StringRes int value) { firstLine = value; } - public String getSecondLine(Boolean recommend) { - if (!recommend) return secondLine; - if (score > 89) { - return "Safe to accept. " + secondLine; - } else if (score > 74) { - return "Not fully safe to accept. " + secondLine; - } else if (score > 30) { - return "Not safe to accept. " + secondLine; - } else { - return "Do not accept! " + secondLine; - } + public @StringRes int getSecondLine(Boolean recommend) { +// if (!recommend) + return secondLine; + +// if (score > 89) { +// return "Safe to accept. " + secondLine; +// } else if (score > 74) { +// return "Not fully safe to accept. " + secondLine; +// } else if (score > 30) { +// return "Not safe to accept. " + secondLine; +// } else { +// return "Do not accept! " + secondLine; +// } } - public void setSecondLine(String value) { + public void setSecondLine(@StringRes int value) { secondLine = value; } @@ -55,8 +59,8 @@ public class BalanceValidator { } public void check(TangemContext ctx, Boolean attest) { - firstLine = "Verification failed"; - secondLine = ""; + firstLine = R.string.balance_validator_first_line_verification_failed; + secondLine = R.string.empty_string; TangemCard card = ctx.getCard(); CoinEngine engine = CoinEngineFactory.INSTANCE.create(ctx); @@ -66,8 +70,8 @@ public class BalanceValidator { if( hasPending ) { - firstLine = "Pending transaction..."; - secondLine = "Swipe down to refresh"; + firstLine = R.string.balance_validator_first_line_pending_transaction; + secondLine = R.string.balance_validator_second_line_swipe_to_refresh; return; } @@ -76,38 +80,38 @@ public class BalanceValidator { if (!card.isWalletPublicKeyValid()) { score = 0; - firstLine = "Verification failed"; - secondLine = "Wallet verification failed. Tap again."; + firstLine = R.string.balance_validator_first_line_verification_failed; + secondLine = R.string.balance_validator_second_line_verification_failed; return; } if (card.isOnlineVerified() != null && !card.isOnlineVerified()) { score = 0; - firstLine = "Not genuine banknote"; - secondLine = "Tangem Attestation service says the banknote is not genuine."; + firstLine = R.string.balance_validator_first_line_not_genuine; + secondLine = R.string.balance_validator_second_line_failed_attestation; return; } if (card.isCodeConfirmed() != null && !card.isCodeConfirmed()) { score = 0; - firstLine = "Not genuine banknote"; - secondLine = "Firmware binary code verification failed"; + firstLine = R.string.balance_validator_first_line_not_genuine; + secondLine = R.string.balance_validator_second_line_failed_binary_code_verification; return; } if (card.PIN2 == TangemCard.PIN2_Mode.CustomPIN2) { score = 0; - firstLine = "Locked with PIN2"; - secondLine = "Ask the holder to disable PIN2 before accepting"; + firstLine = R.string.balance_validator_first_line_locked_pin2; + secondLine = R.string.balance_validator_second_line_disable_pin_2; return; } // rule 2.b if (card.isOnlineVerified()) { - secondLine += "Verified note identity. "; + secondLine += R.string.balance_validator_first_line_verify_identity; } else { score = 80; - secondLine += "Card identity was not verified. Cannot reach Tangem attestation service. "; + secondLine += R.string.balance_validator_second_line_identity_not_verified; } } } diff --git a/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java b/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java index 25d5aa6cc2..953259ba17 100644 --- a/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java +++ b/app/src/main/java/com/tangem/wallet/bch/BtcCashEngine.java @@ -234,8 +234,8 @@ public class BtcCashEngine extends CoinEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } @@ -249,18 +249,18 @@ public class BtcCashEngine extends CoinEngine { if (coinData.getBalanceUnconfirmed() != 0) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived() && coinData.isBalanceEqual()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } @@ -275,8 +275,8 @@ public class BtcCashEngine extends CoinEngine { if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } // if(card.getFailedBalanceRequestCounter()!=0) { diff --git a/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java b/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java index e61cb7115f..ef2d8e087f 100644 --- a/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java +++ b/app/src/main/java/com/tangem/wallet/binance/BinanceEngine.java @@ -226,30 +226,30 @@ public class BinanceEngine extends CoinEngine { if(coinData.isError404()) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("No account or network error"); - balanceValidator.setSecondLine("To create account send funds to this address"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_no_account); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_create_account); } else { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } } if (coinData.isBalanceReceived()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalance().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalance().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } return true; diff --git a/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java b/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java index 818006bcca..1e2be665fa 100644 --- a/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java +++ b/app/src/main/java/com/tangem/wallet/btc/BtcEngine.java @@ -257,8 +257,8 @@ public class BtcEngine extends CoinEngine { try { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } @@ -272,18 +272,18 @@ public class BtcEngine extends CoinEngine { if (coinData.getBalanceUnconfirmed() != 0 || coinData.isHasUnconfirmed()) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived() && coinData.isBalanceEqual()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } @@ -298,8 +298,8 @@ public class BtcEngine extends CoinEngine { if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } // if(card.getFailedBalanceRequestCounter()!=0) { diff --git a/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java b/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java index 6cf578abe3..61978d425d 100644 --- a/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java +++ b/app/src/main/java/com/tangem/wallet/cardano/CardanoEngine.java @@ -236,25 +236,25 @@ public class CardanoEngine extends CoinEngine { try { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } if (coinData.isBalanceReceived()) {// && coinData.isBalanceEqual()) { TODO:check balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } return true; diff --git a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java index fa48a81bd5..a36cfd45fc 100644 --- a/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java +++ b/app/src/main/java/com/tangem/wallet/ducatus/DucatusEngine.java @@ -226,8 +226,8 @@ public class DucatusEngine extends BtcEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } @@ -241,18 +241,18 @@ public class DucatusEngine extends BtcEngine { if (coinData.getBalanceUnconfirmed() != 0) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived()) {// && coinData.isBalanceEqual()) { TODO:check balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } @@ -267,8 +267,8 @@ public class DucatusEngine extends BtcEngine { if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } // if(card.getFailedBalanceRequestCounter()!=0) { diff --git a/app/src/main/java/com/tangem/wallet/eos/EosEngine.java b/app/src/main/java/com/tangem/wallet/eos/EosEngine.java index 235923561e..51705e5d92 100644 --- a/app/src/main/java/com/tangem/wallet/eos/EosEngine.java +++ b/app/src/main/java/com/tangem/wallet/eos/EosEngine.java @@ -277,25 +277,25 @@ public class EosEngine extends CoinEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (getBalance() == null) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } if (coinData.isBalanceReceived()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (getBalance().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && getBalance().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Restore internet connection to obtain trusted balance from blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_verify_online); } return true; diff --git a/app/src/main/java/com/tangem/wallet/eth/EthEngine.java b/app/src/main/java/com/tangem/wallet/eth/EthEngine.java index d0d50fa172..97599cbfbe 100644 --- a/app/src/main/java/com/tangem/wallet/eth/EthEngine.java +++ b/app/src/main/java/com/tangem/wallet/eth/EthEngine.java @@ -311,32 +311,32 @@ public class EthEngine extends CoinEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (getBalance() == null) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } if (!coinData.getUnconfirmedTXCount().equals(coinData.getConfirmedTXCount())) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (getBalance().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && getBalance().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Restore internet connection to obtain trusted balance from blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_verify_online); } return true; diff --git a/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java b/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java index e57578e274..a8ebeff919 100644 --- a/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java +++ b/app/src/main/java/com/tangem/wallet/ltc/LtcEngine.java @@ -235,8 +235,8 @@ public class LtcEngine extends BtcEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } @@ -250,18 +250,18 @@ public class LtcEngine extends BtcEngine { if (coinData.getBalanceUnconfirmed() != 0) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived() && coinData.isBalanceEqual()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } @@ -276,8 +276,8 @@ public class LtcEngine extends BtcEngine { if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_verify_online); } // if(card.getFailedBalanceRequestCounter()!=0) { diff --git a/app/src/main/java/com/tangem/wallet/nftToken/NftTokenEngine.java b/app/src/main/java/com/tangem/wallet/nftToken/NftTokenEngine.java index c8a78b7650..70300bd177 100644 --- a/app/src/main/java/com/tangem/wallet/nftToken/NftTokenEngine.java +++ b/app/src/main/java/com/tangem/wallet/nftToken/NftTokenEngine.java @@ -15,6 +15,7 @@ import com.tangem.wallet.BalanceValidator; import com.tangem.wallet.CoinData; import com.tangem.wallet.CoinEngine; import com.tangem.wallet.Keccak256; +import com.tangem.wallet.R; import com.tangem.wallet.TangemContext; import com.tangem.wallet.eth.EthData; import com.tangem.wallet.token.TokenData; @@ -210,20 +211,20 @@ public class NftTokenEngine extends CoinEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (coinData.getBalanceInInternalUnits() == null) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("No connection"); - balanceValidator.setSecondLine("Authenticity cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_no_connection); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_authenticity_not_verified); return false; } if (coinData.isBalanceReceived()) { if (isBalanceNotZero()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified in blockchain"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_in_blockchain); + balanceValidator.setSecondLine(R.string.empty_string); } else { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Authenticity was not verified"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_authenticity); + balanceValidator.setSecondLine(R.string.empty_string); } } diff --git a/app/src/main/java/com/tangem/wallet/token/TokenEngine.java b/app/src/main/java/com/tangem/wallet/token/TokenEngine.java index 4021a462f3..c485e49ebe 100644 --- a/app/src/main/java/com/tangem/wallet/token/TokenEngine.java +++ b/app/src/main/java/com/tangem/wallet/token/TokenEngine.java @@ -382,32 +382,32 @@ public class TokenEngine extends CoinEngine { public boolean validateBalance(BalanceValidator balanceValidator) { if (getBalance() == null) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } if (!coinData.getUnconfirmedTXCount().equals(coinData.getConfirmedTXCount())) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (getBalance().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && getBalance().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Restore internet connection to obtain trusted balance from blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_verify_online); } return true; diff --git a/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java b/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java index e8ad0ce1d2..e2940ab4d6 100644 --- a/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java +++ b/app/src/main/java/com/tangem/wallet/xlm/XlmEngine.java @@ -200,12 +200,12 @@ public class XlmEngine extends CoinEngine { if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { if (coinData.isError404()) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("No account or network error"); - balanceValidator.setSecondLine("To create account send 1+ XLM to this address"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_no_account); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_create_account_instruction); } else { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } } @@ -227,11 +227,11 @@ public class XlmEngine extends CoinEngine { if (coinData.isBalanceReceived() && coinData.isBalanceEqual()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalance().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } @@ -246,8 +246,8 @@ public class XlmEngine extends CoinEngine { if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalance().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } // if(card.getFailedBalanceRequestCounter()!=0) { diff --git a/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java b/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java index 99a2474c86..4eadefa72c 100644 --- a/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java +++ b/app/src/main/java/com/tangem/wallet/xrp/XrpEngine.java @@ -198,39 +198,39 @@ public class XrpEngine extends CoinEngine { try { if (coinData.isAccountNotFound()) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Account not found"); - balanceValidator.setSecondLine("Load 20+ XRP to create account"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_account_not_found); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_create_account_xrp); return false; } if (((ctx.getCard().getOfflineBalance() == null) && !ctx.getCoinData().isBalanceReceived()) || (!ctx.getCoinData().isBalanceReceived() && (ctx.getCard().getRemainingSignatures() != ctx.getCard().getMaxSignatures()))) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Unknown balance"); - balanceValidator.setSecondLine("Balance cannot be verified. Swipe down to refresh."); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_unknown_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_unverified_balance); return false; } if (coinData.hasUnconfirmed()) { balanceValidator.setScore(0); - balanceValidator.setFirstLine("Transaction in progress"); - balanceValidator.setSecondLine("Wait for confirmation in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_transaction_in_progress); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_wait_for_confirmation); return false; } if (coinData.isBalanceReceived()) { balanceValidator.setScore(100); - balanceValidator.setFirstLine("Verified balance"); - balanceValidator.setSecondLine("Balance confirmed in blockchain"); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_balance); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_confirmed_in_blockchain); if (coinData.getBalanceInInternalUnits().isZero()) { - balanceValidator.setFirstLine("Empty wallet"); - balanceValidator.setSecondLine(""); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_empty_wallet); + balanceValidator.setSecondLine(R.string.empty_string); } } if ((ctx.getCard().getOfflineBalance() != null) && !coinData.isBalanceReceived() && (ctx.getCard().getRemainingSignatures() == ctx.getCard().getMaxSignatures()) && coinData.getBalanceInInternalUnits().notZero()) { balanceValidator.setScore(80); - balanceValidator.setFirstLine("Verified offline balance"); - balanceValidator.setSecondLine("Can't obtain balance from blockchain. Restore internet connection to be more confident. "); + balanceValidator.setFirstLine(R.string.balance_validator_first_line_verified_offline); + balanceValidator.setSecondLine(R.string.balance_validator_second_line_internet_to_get_balance); } return true; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a2a62c6dc2..65b9ca9a21 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -70,7 +70,6 @@ v.%1$s Cardano - Tap Tangem card with your smartphone Scan a banknote with your \n %1$s \n as shown above @@ -111,6 +110,39 @@ Show QR-code LOAD + + Verified balance + Unknown balance + Transaction in progress + Verified offline balance + Empty wallet + Verification failed + Pending transaction… + Not genuine banknote + Locked with PIN2 + Verified note identity. + No account or network error + Account not found + No connection + Verified in blockchain + Authenticity was not verified + + Balance confirmed in blockchain + Balance cannot be verified. Swipe down to refresh. + Wait for confirmation in blockchain + Restore internet connection to obtain trusted balance from blockchain + Can\'t obtain balance from blockchain. Restore internet connection to be more confident. + Swipe down to refresh + Wallet verification failed. Tap again. + Tangem Attestation service says the banknote is not genuine. + Firmware binary code verification failed + Ask the holder to disable PIN2 before accepting + Card identity was not verified. Cannot reach Tangem attestation service. + To create account send funds to this address + To create account send 1+ XLM to this address + Load 20+ XRP to create account + Authenticity cannot be verified. Swipe down to refresh. + Now touch the banknote with ID to create the wallet @@ -134,7 +166,6 @@ Enter new PIN2 Please enter the PIN for confirmation! - Please wait while the payment is sent… Transaction has been successfully signed and sent to blockchain node. Wallet balance will be updated in a while @@ -212,6 +243,15 @@ This banknote is protected by user\'s PIN2 code Unlocked banknote, only for development use This banknote will enforce %.0f seconds security delay for all operations requiring PIN2 code + Allows to change PIN1 and PIN2/n + Allows to change PIN1/n + Allows to change PIN2/n + Fixed PIN1 and PIN2/n + Requires CVC/n + Dynamic NDEF for iOS/n + NDEF/n + Blockable/n + Atomic command mode Save diff --git a/app/src/main/res/values/strings_untranslatable.xml b/app/src/main/res/values/strings_untranslatable.xml index 7783a7ef97..0b6a2bcf98 100644 --- a/app/src/main/res/values/strings_untranslatable.xml +++ b/app/src/main/res/values/strings_untranslatable.xml @@ -1,31 +1,32 @@ - <--  - -->  - **  - !!  - --  - -- -- -- - ---- ---- ---- ---- - < - -- - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 0 + <--  + -->  + **  + !!  + --  + -- -- -- + ---- ---- ---- ---- + < + -- + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 0 - com.tangem.data.LogFileProvider - Can\'t create CoinEngine! + com.tangem.data.LogFileProvider + Can\'t create CoinEngine! - category_common - manual_editing_fee - select_nodes - encryption_modes + category_common + manual_editing_fee + select_nodes + encryption_modes From 0e51394547516a63664330387e2d3f1168f42e2c Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 18 Sep 2019 11:19:35 +0300 Subject: [PATCH 3/3] Updated on 2026-08-14 --- app/src/main/res/values-fr/strings.xml | 290 ++++++++++++++++++ tangem-sdk/src/main/res/values-fr/strings.xml | 6 +- 2 files changed, 295 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 0d2c4cc409..baafb172fc 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,4 +1,294 @@ + Annuler + Oui + Non + Erreur! + Pas de connexion avec les nœuds de la chaîne de blocage + Continuer + Le code PIN est vide + Blockchain + Réessayez de numériser + Impossible d\'effacer le porte-monnaie avec un solde différent de zéro + Envoyer le paiement + Depuis la carte + sur la carte + avec solde + Envoyer au porte-monnaie + Montant + BTC + Tangem AG + Scanner à nouveau pour vérifier la carte + READING… + Le porte-monnaie est vide + + + Paramètres + Commun + Frais de modification manuelle + Modes de cryptage + + Aucun + Rapide + Fort + + + 0 + 1 + 2 + + Sélectionner des nœuds + + + Votre appareil Android est rooté. La sécurité en danger! + Je l\'ai + Avertissement + Délai de sécurité + Oups .. Il semble que votre smartphone ne supporte pas de tels paquets NFC. + Essayez d\'envoyer une quantité inférieure ou utilisez un smartphone avec prise en charge complète de NFC. + Votre argent est en jeu! + Cette carte a imposé un délai de sécurité + Veuillez tenir la carte fermement \ n jusqu\'à ce que l\'opération soit terminéev… + Vous devrez peut-être répéter cette opération plusieurs fois en fonction des performances NFC de votre smartphone. \ n Ceci est fait pour la sécurité de vos fonds. + + + Gérer le code PIN de l\'utilisateur… + Gérer le code PIN de l\'utilisateur… + Envoyer les journaux… + À propos de… + + + Définir PIN1 + Définir le code PIN2 + >Réinitialiser PIN1 par défaut + Réinitialiser le code PIN2 par défaut + Réinitialiser les codes confidentiels par défaut + Effacer le porte-monnaie + + + ALPHA v.%1$s \n dev \n génération %2$s + v.%1$s + Cardano + + + Appuyez sur la carte Tangem avec votre smartphone + Scanner une carte avec votre \n %1$s \n comme indiqué ci-dessus + phone + Le porte-monnaie a été effacé + Non personnalisé + Il existe une nouvelle version de l\'application: %1$s + Mettre à jour + + + Aucun porte-monnaie compatible installé + Veuillez patienter pendant que la transaction précédente est confirmée dans la blockchain + Impossible d\'obtenir toutes les entrées. Balayez vers le bas pour actualiser. + La carte n\'a plus de signature! + Si vous oubliez votre nouveau code PIN, vous perdrez votre argent pour toujours! + Si vous utilisez un code PIN par défaut, une personne peut voler votre argent! + >Impossible d\'obtenir des données de la blockchain + Impossible d\'obtenir des données de la blockchain (connexion refusée) + Impossible d\'obtenir les données de la blockchain (réponse vide reçue) + Impossible d\'obtenir les données de la blockchain (erreur de communication) + Partager l\'adresse du porte-monnaie avec: + copié dans le presse-papiers + Retirer + Charger + Explorer + Copier + Détails + Scanner + Vérification dans la blockchain… + Avertissement: cette carte a déjà été complétée et des transactions signées dans le passé.Envisagez le retrait immédiat de tous les fonds si vous avez reçu cette carte d’une source non fiable. + VERIFYING… + via CRYPTONIT + via CRYPTONIT2 + via KRAKEN + Une autre application de porte-monnaie + Adresse de partage + Afficher le code QR + LOAD + + + Solde vérifié + Solde inconnu + Transaction en cours + Solde hors ligne vérifié + Portefeuille vide + La vérification a échoué + Transaction en attente… + Billet non authentique + Verrouillé avec code PIN2 + Identité de note vérifiée. + Aucun compte ni erreur réseau + Compte introuvable + Pas de connexion + Vérifié dans la blockchain + L\'authenticité n\'a pas été vérifiée + + Solde confirmé dans la blockchain + Solde ne peut pas être vérifié. Balayez vers le bas pour actualiser.. + Attendez la confirmation dans la chaîne de blocs + Restaurez la connexion Internet pour obtenir un solde sécurisé de la chaîne de blocs + Impossible d\'obtenir le + solde de la blockchain. Restaurez la connexion Internet pour être plus confiant. + Glissez vers le bas pour actualiser + La vérification du portefeuille a échoué. Touchez à nouveau. + Le service d\'attestation Tangem indique que le billet n\'est pas authentique. + La vérification du code binaire du micrologiciel a échoué + Demandez au titulaire de désactiver le code PIN2 avant d\'accepter + \'identité de la carte n\'a pas été vérifiée. Impossible d\'atteindre le service d\'attestation Tangem. + Pour créer un compte, envoyez des fonds à cette adresse + Pour créer un compte, envoyez 1+ XLM à cette adresse + Chargez plus de 20 XRP pour créer un compte + L\'authenticité ne peut pas être vérifiée. Balayez vers le bas pour actualiser. +      + + Maintenant, touchez la carte avec l\'ID + pour créer le porte-monnaie + pour effacer le porte-monnaie + pour signer le paiement + pour changer les codes PIN / PIN2 + En tapotant sur la carte, vous retirerez définitivement le porte-monnaie de la blockchain. Assurez-vous qu\'il n\'y aura pas d\autres transactions entrantes + Impossible d\'effacer le porte-monnaie. Veillez à entrer le code PIN2 correct! + Impossible de créer un porte-monnaie. Veillez à entrer le code PIN2 correct! + + + Entrez un nouveau code PIN ou utilisez un lecteur d\'empreintes digitales + Entrez le nouveau code PIN + Entrez un code PIN ou utilisez un lecteur d\'empreintes digitales + Entrez le code PIN2 ou utilisez un lecteur d\'empreintes digitales + Confirmer le nouveau code confidentiel + Confirmer le nouveau code PIN2 + Entrez le code confidentiel + Entrez le code PIN2 + Entrez un nouveau code PIN2 ou utilisez un lecteur d\'empreintes digitales + Entrez le nouveau code PIN2 + Veuillez saisir le code PIN pour confirmation! + + + Veuillez patienter pendant l\'envoi du paiement… + La transaction a été signée et envoyée avec succès au noeud de la blockchain. La balance de porte-monnaie sera mise à jour dans un moment + Réessayez. Échec d\'envoi de la transaction (%s) + Impossible de signer la transaction. Veillez à entrer le code PIN2 correct! + Le montant et les frais sont supérieurs au solde total du porte-monnaie! + + + entrez l\'adresse du porte-monnaie + entrer le montant + Vérifiez + Pas assez de fonds + Format de montant inconnu + Adresse du porte-monnaie de destination incorrecte + L\'adresse du porte-monnaie de destination est identique à l\'adresse source + Le montant est vide + + + adresse du porte-monnaie cible + montant des frais + Frais + Envoyer + Minimal + Normal + Priorité + Frais inclus + Frais non compris + (frais inclus) + (sans frais) + Les données obtenues sont obsolètes! Réessayez + Impossible d\'atteindre le nœud de la blockchain active en cours. Réessayez + Impossible de vérifier le solde! Pas de connexion avec les noeuds de la blockchain + Impossible de calculer les frais! Mauvaises données reçues du noeud + Veuillez attendre la confirmation de la transaction entrante + Pas assez de fonds ETH contre des taxes + Pas assez de fonds RBTC pour les frais + Un code PIN2 est requis pour signer le paiement + Service indisponible + Vous courez un risque de retarder la transaction + + + Le porte-monnaie n\'a pas encore été créé + Créer un porte-monnaie + + + ID de la carte + Méthode de signature + Cette carte est + Transactions signées + Signatures restantes + Heure de la dernière signature + Fonctionnalités + Fabricant + Porte-monnaie + Identité de la carte + Attested + Non confirmé + Réutilisable + None + Le dernier! + Unlimited + Carte ponctuelle + Micrologiciel + Date d\'enregistrement + Possession prouvée + Possession NON prouvée + non disponible + Émetteur + Clé privée + Noeud de validation + Unspents + Cette carte est protégé par le code PIN1 par défaut + Cette carte est protégé par le code PIN1 de l’utilisateur + Cette carte est protégé par le code PIN2 par défaut + Cette carte est protégé par le code PIN2 de l’utilisateur + Carte débloqué, uniquement à des fins de développement + Cette carte appliquera un délai de sécurité de %.0f secondes pour toutes lesopérations nécessitant un code PIN2 + Permet de changer les codes PIN1 et PIN2\n + Permet de changer PIN1\n + Permet de changer le code PIN2\n + PIN1 et PIN2 sont fixes\n + Requiert CVC\n + NDEF dynamique pour iOS\n + NDEF\n + Bloquable\n + Mode de commande atomique + + + Enregistrer + Supprimer + Protéger avec empreinte digitale + Appuyez sur le lecteur d\'empreintes digitales pour confirmer + L\'utilisateur n\'a pas activé l\'écran verrouillé + L\'utilisateur n\'a pas obtenu l\'autorisation d\'utiliser une empreinte digitale + L\'utilisateur n\'a enregistré aucune empreinte digitale + Échec de l\'enregistrement du code confidentiel + Entrez le code PIN et enregistrez-le + Entrez le code PIN2 et enregistrez-le + + + Paiement CRYPTONIT + À partir du compte CRYPTONIT: + ID utilisateur: + clé: + secret: + nonce: + nom d\'utilisateur: + mot_de_passe: + Veuillez saisir les données du compte + Obtenir le solde + Retrait + frais d\'opération + Retrait réussi! + + + Paiement KRAKEN + À partir du compte KRAKEN: + clé: + secret: + "Veuillez saisir les données du compte + Obtenir le solde + Retrait + Opération annulée! + Veuillez confirmer retirer \ No newline at end of file diff --git a/tangem-sdk/src/main/res/values-fr/strings.xml b/tangem-sdk/src/main/res/values-fr/strings.xml index 0d2c4cc409..e546894281 100644 --- a/tangem-sdk/src/main/res/values-fr/strings.xml +++ b/tangem-sdk/src/main/res/values-fr/strings.xml @@ -1,4 +1,8 @@ - + tangemcard + OK + Quitter + Activer NFC? + Cette application est inutile lorsque NFC est désactivé. Le mode lecteur en dépend. Appuyez sur OK pour accéder aux paramètres, où vous pouvez activer NFC. \ No newline at end of file