Updated on 2026-08-14
This commit is contained in:
commit
41870da899
20 changed files with 533 additions and 185 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
294
app/src/main/res/values-fr/strings.xml
Normal file
294
app/src/main/res/values-fr/strings.xml
Normal file
|
|
@ -0,0 +1,294 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<string name="general_cancel">Annuler</string>
|
||||
<string name="general_yes">Oui</string>
|
||||
<string name="general_no">Non</string>
|
||||
<string name="general_error">Erreur!</string>
|
||||
<string name="general_error_no_connection">Pas de connexion avec les nœuds de la chaîne de blocage</string>
|
||||
<string name="general_continue">Continuer</string>
|
||||
<string name="error_empty_pin">Le code PIN est vide</string>
|
||||
<string name="general_blockchain">Blockchain</string>
|
||||
<string name="general_notification_scan_again">Réessayez de numériser</string>
|
||||
<string name="general_error_cannot_erase_wallet_with_non_zero_balance">Impossible d\'effacer le porte-monnaie avec un solde différent de zéro</string>
|
||||
<string name="general_send_transaction">Envoyer le paiement</string>
|
||||
<string name="general_from_banknote">Depuis la carte</string>
|
||||
<string name="general_on_banknote">sur la carte</string>
|
||||
<string name="general_balance">avec solde</string>
|
||||
<string name="general_send_to_wallet">Envoyer au porte-monnaie</string>
|
||||
<string name="general_amount">Montant</string>
|
||||
<string name="general_btc">BTC</string>
|
||||
<string name="general_tangem" translatable="false">Tangem AG</string>
|
||||
<string name="general_notification_scan_again_to_verify">Scanner à nouveau pour vérifier la carte</string>
|
||||
<string name="general_status_reading">READING…</string>
|
||||
<string name="general_wallet_empty">Le porte-monnaie est vide</string>
|
||||
|
||||
<!-- Paramètres -->
|
||||
<string name="settings_title">Paramètres</string>
|
||||
<string name="settings_category_сommon">Commun</string>
|
||||
<string name="settings_option_manual_editing_fee">Frais de modification manuelle</string>
|
||||
<string name="settings_option_encryption_modes">Modes de cryptage</string>
|
||||
<string-array name="settings_encryption_modes_entries">
|
||||
<item>Aucun</item>
|
||||
<item>Rapide</item>
|
||||
<item>Fort</item>
|
||||
</string-array>
|
||||
<string-array name="settings_encryption_mode_values">
|
||||
<item>0</item>
|
||||
<item>1</item>
|
||||
<item>2</item>
|
||||
</string-array>
|
||||
<string name="settings_option_select_nodes">Sélectionner des nœuds</string>
|
||||
|
||||
<!-- dialogues -->
|
||||
<string name="dialog_device_is_rooted">Votre appareil Android est rooté. La sécurité en danger!</string>
|
||||
<string name="dialog_btn_got_it">Je l\'ai</string>
|
||||
<string name="dialog_warning">Avertissement</string>
|
||||
<string name="dialog_security_delay">Délai de sécurité</string>
|
||||
<string name="dialog_the_nfc_adapter_length_apdu">Oups .. Il semble que votre smartphone ne supporte pas de tels paquets NFC.</string>
|
||||
<string name="dialog_the_nfc_adapter_length_apdu_advice">Essayez d\'envoyer une quantité inférieure ou utilisez un smartphone avec prise en charge complète de NFC.</string>
|
||||
<string name="dialog_title_money_is_at_risk">Votre argent est en jeu!</string>
|
||||
<string name="dialog_this_banknote_has_enforced_security_delay">Cette carte a imposé un délai de sécurité</string>
|
||||
<string name="dialog_hold_banknote">Veuillez tenir la carte fermement \ n jusqu\'à ce que l\'opération soit terminéev…</string>
|
||||
<string name="dialog_you_may_be_required_to_repeat">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.</string>
|
||||
|
||||
<!-- menu main -->
|
||||
<string name="main_menu_manage_pin_1">Gérer le code PIN de l\'utilisateur…</string>
|
||||
<string name="main_menu_manage_pin_2">Gérer le code PIN de l\'utilisateur…</string>
|
||||
<string name="main_menu_debug_send_logs">Envoyer les journaux…</string>
|
||||
<string name="main_menu_about">À propos de…</string>
|
||||
|
||||
<!-- porte-monnaie chargé par menu -->
|
||||
<string name="menu_loaded_wallet_set_pin_1">Définir PIN1</string>
|
||||
<string name="menu_loaded_wallet_set_pin_2">Définir le code PIN2</string>
|
||||
<string name="menu_loaded_wallet_reset_pin_1">>Réinitialiser PIN1 par défaut</string>
|
||||
<string name="menu_loaded_wallet_reset_pin_2">Réinitialiser le code PIN2 par défaut</string>
|
||||
<string name="menu_loaded_wallet_reset_pins">Réinitialiser les codes confidentiels par défaut</string>
|
||||
<string name="menu_loaded_wallet_erase_wallet">Effacer le porte-monnaie</string>
|
||||
|
||||
<!-- Écran de démarrage -->
|
||||
<string name="splash_version_name_debug">ALPHA v.%1$s \n dev \n génération %2$s</string>
|
||||
<string name="splash_version_name_release">v.%1$s</string>
|
||||
<string name="splash_cardano">Cardano</string>
|
||||
|
||||
<!-- Main -->
|
||||
<string name="main_screen_tap_card">Appuyez sur la carte Tangem avec votre smartphone</string>
|
||||
<string name="main_screen_scan_banknote">Scanner une carte avec votre \n %1$s \n comme indiqué ci-dessus</string>
|
||||
<string name="main_screen_phone">phone</string>
|
||||
<string name="main_screen_erased_wallet">Le porte-monnaie a été effacé</string>
|
||||
<string name="main_screen_not_personalized">Non personnalisé</string>
|
||||
<string name="main_screen_new_version_toast">Il existe une nouvelle version de l\'application: %1$s</string>
|
||||
<string name="main_screen_btn_update">Mettre à jour</string>
|
||||
|
||||
<!-- LoadedWallet -->
|
||||
<string name="loaded_wallet_no_compatible_wallet">Aucun porte-monnaie compatible installé</string>
|
||||
<string name="loaded_wallet_message_wait">Veuillez patienter pendant que la transaction précédente est confirmée dans la blockchain</string>
|
||||
<string name="loaded_wallet_message_refresh">Impossible d\'obtenir toutes les entrées. Balayez vers le bas pour actualiser.</string>
|
||||
<string name="loaded_wallet_warning_no_signature">La carte n\'a plus de signature!</string>
|
||||
<string name="loaded_wallet_warning_dont_forget_pin">Si vous oubliez votre nouveau code PIN, vous perdrez votre argent pour toujours!</string>
|
||||
<string name="loaded_wallet_warning_default_pin">Si vous utilisez un code PIN par défaut, une personne peut voler votre argent!</string>
|
||||
<string name="loaded_wallet_error_obtaining_blockchain_data">>Impossible d\'obtenir des données de la blockchain</string>
|
||||
<string name="loaded_wallet_error_blockchain_connection_refused">Impossible d\'obtenir des données de la blockchain (connexion refusée)</string>
|
||||
<string name="loaded_wallet_error_blockchain_empty_answer">Impossible d\'obtenir les données de la blockchain (réponse vide reçue)</string>
|
||||
<string name="loaded_wallet_error_blockchain_communication_error">Impossible d\'obtenir les données de la blockchain (erreur de communication)</string>
|
||||
<string name="loaded_wallet_chooser_share">Partager l\'adresse du porte-monnaie avec:</string>
|
||||
<string name="loaded_wallet_toast_copied">copié dans le presse-papiers</string>
|
||||
<string name="loaded_wallet_btn_extract">Retirer</string>
|
||||
<string name="loaded_wallet_btn_load">Charger</string>
|
||||
<string name="loaded_wallet_btn_explore">Explorer</string>
|
||||
<string name="loaded_wallet_btn_copy">Copier</string>
|
||||
<string name="loaded_wallet_btn_details">Détails</string>
|
||||
<string name="loaded_wallet_btn_new_scan">Scanner</string>
|
||||
<string name="loaded_wallet_verifying_in_blockchain">Vérification dans la blockchain…</string>
|
||||
<string name="loaded_wallet_warning_card_signed_transactions">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.</string>
|
||||
<string name="loaded_wallet_status_verifying">VERIFYING…</string>
|
||||
<string name="loaded_wallet_load_via_cryptonit">via CRYPTONIT</string>
|
||||
<string name="loaded_wallet_load_via_cryptonit2">via CRYPTONIT2</string>
|
||||
<string name="loaded_wallet_load_via_kraken">via KRAKEN</string>
|
||||
<string name="loaded_wallet_load_via_app">Une autre application de porte-monnaie</string>
|
||||
<string name="loaded_wallet_load_via_share_address">Adresse de partage</string>
|
||||
<string name="loaded_wallet_load_via_qr">Afficher le code QR</string>
|
||||
<string name="loaded_wallet_dialog_show_qr">LOAD</string>
|
||||
|
||||
<!-- LoadedWallet Blockchain Engines -->
|
||||
<string name="balance_validator_first_line_verified_balance">Solde vérifié</string>
|
||||
<string name="balance_validator_first_line_unknown_balance">Solde inconnu</string>
|
||||
<string name="balance_validator_first_line_transaction_in_progress">Transaction en cours</string>
|
||||
<string name="balance_validator_first_line_verified_offline">Solde hors ligne vérifié</string>
|
||||
<string name="balance_validator_first_line_empty_wallet">Portefeuille vide</string>
|
||||
<string name="balance_validator_first_line_verification_failed">La vérification a échoué</string>
|
||||
<string name="balance_validator_first_line_pending_transaction">Transaction en attente…</string>
|
||||
<string name="balance_validator_first_line_not_genuine">Billet non authentique</string>
|
||||
<string name="balance_validator_first_line_locked_pin2">Verrouillé avec code PIN2</string>
|
||||
<string name="balance_validator_first_line_verify_identity">Identité de note vérifiée.</string>
|
||||
<string name="balance_validator_first_line_no_account">Aucun compte ni erreur réseau</string>
|
||||
<string name="balance_validator_first_line_account_not_found">Compte introuvable</string>
|
||||
<string name="balance_validator_first_line_no_connection">Pas de connexion</string>
|
||||
<string name="balance_validator_first_line_verified_in_blockchain">Vérifié dans la blockchain</string>
|
||||
<string name="balance_validator_first_line_authenticity">L\'authenticité n\'a pas été vérifiée</string>
|
||||
|
||||
<string name="balance_validator_second_line_confirmed_in_blockchain">Solde confirmé dans la blockchain</string>
|
||||
<string name="balance_validator_second_line_unverified_balance">Solde ne peut pas être vérifié. Balayez vers le bas pour actualiser..</string>
|
||||
<string name="balance_validator_second_line_wait_for_confirmation">Attendez la confirmation dans la chaîne de blocs</string>
|
||||
<string name="balance_validator_second_line_internet_to_verify_online">Restaurez la connexion Internet pour obtenir un solde sécurisé de la chaîne de blocs</string>
|
||||
<string name="balance_validator_second_line_internet_to_get_balance">Impossible d\'obtenir le
|
||||
solde de la blockchain. Restaurez la connexion Internet pour être plus confiant.</string>
|
||||
<string name="balance_validator_second_line_swipe_to_refresh">Glissez vers le bas pour actualiser</string>
|
||||
<string name="balance_validator_second_line_verification_failed">La vérification du portefeuille a échoué. Touchez à nouveau.</string>
|
||||
<string name="balance_validator_second_line_failed_attestation">Le service d\'attestation Tangem indique que le billet n\'est pas authentique.</string>
|
||||
<string name="balance_validator_second_line_failed_binary_code_verification">La vérification du code binaire du micrologiciel a échoué</string>
|
||||
<string name="balance_validator_second_line_disable_pin_2">Demandez au titulaire de désactiver le code PIN2 avant d\'accepter</string>
|
||||
<string name="balance_validator_second_line_identity_not_verified">\'identité de la carte n\'a pas été vérifiée. Impossible d\'atteindre le service d\'attestation Tangem.</string>
|
||||
<string name="balance_validator_second_line_create_account">Pour créer un compte, envoyez des fonds à cette adresse</string>
|
||||
<string name="balance_validator_second_line_create_account_instruction">Pour créer un compte, envoyez 1+ XLM à cette adresse</string>
|
||||
<string name="balance_validator_second_line_create_account_xrp">Chargez plus de 20 XRP pour créer un compte</string>
|
||||
<string name="balance_validator_second_line_authenticity_not_verified">L\'authenticité ne peut pas être vérifiée. Balayez vers le bas pour actualiser.</string>
|
||||
|
||||
<!-- CreateNewWallet, Purge, SignTransaction -->
|
||||
<string name="now_touch_the_banknote_with_id"> Maintenant, touchez la carte avec l\'ID </string>
|
||||
<string name="to_create_the_wallet">pour créer le porte-monnaie </string>
|
||||
<string name="to_erase_the_wallet">pour effacer le porte-monnaie</string>
|
||||
<string name="to_sign_the_transaction">pour signer le paiement</string>
|
||||
<string name="to_change_pin_codes">pour changer les codes PIN / PIN2</string>
|
||||
<string name="nfc_purge_warning">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</string>
|
||||
<string name="nfc_error_cannot_erase_wallet">Impossible d\'effacer le porte-monnaie. Veillez à entrer le code PIN2 correct!</string>
|
||||
<string name="nfc_error_cannot_create_wallet">Impossible de créer un porte-monnaie. Veillez à entrer le code PIN2 correct!</string>
|
||||
|
||||
<!-- PinRequest -->
|
||||
<string name="pin_request_enter_new_pin_or_use_fingerprint_scanner">Entrez un nouveau code PIN ou utilisez un lecteur d\'empreintes digitales</string>
|
||||
<string name="pin_request_enter_new_pin">Entrez le nouveau code PIN</string>
|
||||
<string name="pin_request_enter_pin_or_use_fingerprint_scanner">Entrez un code PIN ou utilisez un lecteur d\'empreintes digitales</string>
|
||||
<string name="pin_request_enter_pin_2_or_use_fingerprint_scanner">Entrez le code PIN2 ou utilisez un lecteur d\'empreintes digitales</string>
|
||||
<string name="pin_request_confirm_new_pin">Confirmer le nouveau code confidentiel</string>
|
||||
<string name="pin_request_confirm_new_pin_2">Confirmer le nouveau code PIN2</string>
|
||||
<string name="pin_request_enter_pin">Entrez le code confidentiel</string>
|
||||
<string name="pin_request_prompt_enter_pin_2">Entrez le code PIN2</string>
|
||||
<string name="pin_request_prompt_new_pin_2_or_fingerprint">Entrez un nouveau code PIN2 ou utilisez un lecteur d\'empreintes digitales</string>
|
||||
<string name="pin_request_new_pin_2">Entrez le nouveau code PIN2</string>
|
||||
<string name="pin_request_error_pin_confirmation_failed">Veuillez saisir le code PIN pour confirmation!</string>
|
||||
|
||||
<!-- SendTransaction -->
|
||||
<string name="send_transaction_notification_wait">Veuillez patienter pendant l\'envoi du paiement…</string>
|
||||
<string name="send_transaction_success">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</string>
|
||||
<string name="send_transaction_error_failed_to_send">Réessayez. Échec d\'envoi de la transaction (%s)</string>
|
||||
<string name="send_transaction_error_cannot_sign">Impossible de signer la transaction. Veillez à entrer le code PIN2 correct!</string>
|
||||
<string name="send_transaction_error_wrong_amount">Le montant et les frais sont supérieurs au solde total du porte-monnaie!</string>
|
||||
|
||||
<!-- PrepareTransaction -->
|
||||
<string name="prepare_transaction_hint_enter_address">entrez l\'adresse du porte-monnaie</string>
|
||||
<string name="prepare_transaction_hint_enter_amount">entrer le montant</string>
|
||||
<string name="prepare_transaction_btn_verify">Vérifiez</string>
|
||||
<string name="prepare_transaction_error_not_enough_funds">Pas assez de fonds</string>
|
||||
<string name="prepare_transaction_error_unknown_amount_format">Format de montant inconnu</string>
|
||||
<string name="prepare_transaction_error_incorrect_destination">Adresse du porte-monnaie de destination incorrecte</string>
|
||||
<string name="prepare_transaction_error_same_address">L\'adresse du porte-monnaie de destination est identique à l\'adresse source</string>
|
||||
<string name="prepare_transaction_error_amount_empty">Le montant est vide</string>
|
||||
|
||||
<!-- ConfirmTransaction -->
|
||||
<string name="confirm_transaction_hint_target_address">adresse du porte-monnaie cible</string>
|
||||
<string name="confirm_transaction_hint_fee_amount">montant des frais</string>
|
||||
<string name="confirm_transaction_fee">Frais</string>
|
||||
<string name="confirm_transaction_btn_send">Envoyer</string>
|
||||
<string name="confirm_transaction_btn_fee_minimal">Minimal</string>
|
||||
<string name="confirm_transaction_btn_fee_normal">Normal</string>
|
||||
<string name="confirm_transaction_btn_fee_priority">Priorité</string>
|
||||
<string name="confirm_transaction_btn_including_fee">Frais inclus</string>
|
||||
<string name="confirm_transaction_btn_not_including_fee">Frais non compris</string>
|
||||
<string name="confirm_transaction_including_fee">(frais inclus)</string>
|
||||
<string name="confirm_transaction_not_including_fee">(sans frais)</string>
|
||||
<string name="confirm_transaction_error_data_is_outdated">Les données obtenues sont obsolètes! Réessayez</string>
|
||||
<string name="confirm_transaction_error_cannot_reach_node">Impossible d\'atteindre le nœud de la blockchain active en cours. Réessayez</string>
|
||||
<string name="confirm_transaction_error_cannot_check_balance">Impossible de vérifier le solde! Pas de connexion avec les noeuds de la blockchain</string>
|
||||
<string name="confirm_transaction_error_cannot_calculate_fee">Impossible de calculer les frais! Mauvaises données reçues du noeud</string>
|
||||
<string name="confirm_transaction_error_incoming_transaction_unconfirmed">Veuillez attendre la confirmation de la transaction entrante</string>
|
||||
<string name="confirm_transaction_error_not_enough_eth_for_fee">Pas assez de fonds ETH contre des taxes</string>
|
||||
<string name="confirm_transaction_error_not_enough_rbtc_for_fee">Pas assez de fonds RBTC pour les frais</string>
|
||||
<string name="confirm_transaction_error_pin_2_is_required">Un code PIN2 est requis pour signer le paiement</string>
|
||||
<string name="confirm_transaction_error_service_unavailable">Service indisponible</string>
|
||||
<string name="confirm_transaction_warning_risk_delaying">Vous courez un risque de retarder la transaction</string>
|
||||
|
||||
<!-- EmptyWallet -->
|
||||
<string name="empty_wallet_not_created">Le porte-monnaie n\'a pas encore été créé</string>
|
||||
<string name="empty_wallet_btn_create">Créer un porte-monnaie</string>
|
||||
|
||||
<!-- VerifyCard -->
|
||||
<string name="details_title_card_id">ID de la carte</string>
|
||||
<string name="details_signing_method">Méthode de signature</string>
|
||||
<string name="details_is_card_reusable">Cette carte est</string>
|
||||
<string name="details_signed_transactions">Transactions signées</string>
|
||||
<string name="details_remaining_signatures">Signatures restantes</string>
|
||||
<string name="details_time_of_last_signing">Heure de la dernière signature</string>
|
||||
<string name="details_features">Fonctionnalités</string>
|
||||
<string name="details_category_manufacturer">Fabricant</string>
|
||||
<string name="details_category_wallet">Porte-monnaie</string>
|
||||
<string name="details_card_identity">Identité de la carte</string>
|
||||
<string name="details_attested">Attested</string>
|
||||
<string name="details_not_confirmed">Non confirmé</string>
|
||||
<string name="details_reusable">Réutilisable</string>
|
||||
<string name="details_none">None</string>
|
||||
<string name="details_last_one">Le dernier!</string>
|
||||
<string name="details_unlimited">Unlimited</string>
|
||||
<string name="details_one_off_banknote">Carte ponctuelle</string>
|
||||
<string name="details_firmware">Micrologiciel</string>
|
||||
<string name="details_registration_date">Date d\'enregistrement</string>
|
||||
<string name="details_possession_proved">Possession prouvée</string>
|
||||
<string name="details_possession_not_proved">Possession NON prouvée</string>
|
||||
<string name="details_not_available">non disponible</string>
|
||||
<string name="details_category_issuer">Émetteur</string>
|
||||
<string name="details_private_key">Clé privée</string>
|
||||
<string name="details_validation_node">Noeud de validation</string>
|
||||
<string name="details_unspents">Unspents</string>
|
||||
<string name="details_protected_by_default_pin_1">Cette carte est protégé par le code PIN1 par défaut</string>
|
||||
<string name="details_protected_by_user_pin_1">Cette carte est protégé par le code PIN1 de l’utilisateur</string>
|
||||
<string name="details_protected_by_default_pin_2">Cette carte est protégé par le code PIN2 par défaut</string>
|
||||
<string name="details_protected_by_user_pin_2">Cette carte est protégé par le code PIN2 de l’utilisateur</string>
|
||||
<string name="details_unlocked_banknote">Carte débloqué, uniquement à des fins de développement</string>
|
||||
<string name="details_security_delay">Cette carte appliquera un délai de sécurité de %.0f secondes pour toutes lesopérations nécessitant un code PIN2</string>
|
||||
<string name="details_both_pins_can_be_changed">Permet de changer les codes PIN1 et PIN2\n</string>
|
||||
<string name="details_pin1_can_be_changed">Permet de changer PIN1\n</string>
|
||||
<string name="details_pin2_can_be_changed">Permet de changer le code PIN2\n</string>
|
||||
<string name="details_both_pins_fixed">PIN1 et PIN2 sont fixes\n</string>
|
||||
<string name="details_required_cvc">Requiert CVC\n</string>
|
||||
<string name="details_dynamic_ndef">NDEF dynamique pour iOS\n</string>
|
||||
<string name="details_ndef">NDEF\n</string>
|
||||
<string name="details_blockable">Bloquable\n</string>
|
||||
<string name="details_atomic_commmands">Mode de commande atomique</string>
|
||||
|
||||
<!-- PinSave -->
|
||||
<string name="pin_save_btn_save">Enregistrer</string>
|
||||
<string name="pin_save_btn_delete">Supprimer</string>
|
||||
<string name="pin_save_checkbox_protect_with_fingerprint">Protéger avec empreinte digitale</string>
|
||||
<string name="pin_save_dialog_touch_fingerprint_scanner">Appuyez sur le lecteur d\'empreintes digitales pour confirmer</string>
|
||||
<string name="pin_save_toast_lock_screen_not_enabled">L\'utilisateur n\'a pas activé l\'écran verrouillé</string>
|
||||
<string name="pin_save_toast_no_permission_to_use_fingerprint">L\'utilisateur n\'a pas obtenu l\'autorisation d\'utiliser une empreinte digitale</string>
|
||||
<string name="pin_save_toast_no_fingerprints_registered">L\'utilisateur n\'a enregistré aucune empreinte digitale</string>
|
||||
<string name="pin_save_notification_failed">Échec de l\'enregistrement du code confidentiel</string>
|
||||
<string name="pin_save_title_enter_pin_and_save">Entrez le code PIN et enregistrez-le</string>
|
||||
<string name="pin_save_title_enter_pin2_and_save">Entrez le code PIN2 et enregistrez-le</string>
|
||||
|
||||
<!-- PrepareCryptonitWithdrawal -->
|
||||
<string name="cryptonit_payment">Paiement CRYPTONIT</string>
|
||||
<string name="cryptonit_from_account">À partir du compte CRYPTONIT:</string>
|
||||
<string name="cryptonit_user_id">ID utilisateur:</string>
|
||||
<string name="cryptonit_key">clé:</string>
|
||||
<string name="cryptonit_secret">secret:</string>
|
||||
<string name="cryptonit_nonce">nonce:</string>
|
||||
<string name="cryptonit_username">nom d\'utilisateur:</string>
|
||||
<string name="cryptonit_password">mot_de_passe:</string>
|
||||
<string name="cryptonit_not_enough_account_data">Veuillez saisir les données du compte</string>
|
||||
<string name="cryptonit_request_balance">Obtenir le solde</string>
|
||||
<string name="cryptonit_request_withdrawal">Retrait</string>
|
||||
<string name="withdrawal_fee">frais d\'opération</string>
|
||||
<string name="withdrawal_successful">Retrait réussi!</string>
|
||||
|
||||
<!-- PrepareKrakenWithdrawal -->
|
||||
<string name="kraken_payment">Paiement KRAKEN</string>
|
||||
<string name="kraken_from_account">À partir du compte KRAKEN:</string>
|
||||
<string name="kraken_key">clé:</string>
|
||||
<string name="kraken_secret">secret:</string>
|
||||
<string name="kraken_not_enough_account_data">"Veuillez saisir les données du compte</string>
|
||||
<string name="kraken_request_balance">Obtenir le solde</string>
|
||||
<string name="kraken_request_withdrawal">Retrait</string>
|
||||
<string name="kraken_operation_canceled">Opération annulée!</string>
|
||||
<string name="kraken_please_confirm_withdraw">Veuillez confirmer retirer</string>
|
||||
</resources>
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<string name="general_balance">with balance</string>
|
||||
<string name="general_send_to_wallet">Send to wallet</string>
|
||||
<string name="general_amount">Amount</string>
|
||||
<string name="general_btc">BTC</string>
|
||||
<string name="general_btc" translatable="false">BTC</string>
|
||||
<string name="general_tangem" translatable="false">Tangem AG</string>
|
||||
<string name="general_notification_scan_again_to_verify">Scan again to verify the card</string>
|
||||
<string name="general_status_reading">READING…</string>
|
||||
|
|
@ -70,7 +70,6 @@
|
|||
<string name="splash_version_name_release">v.%1$s</string>
|
||||
<string name="splash_cardano">Cardano</string>
|
||||
|
||||
|
||||
<!-- Main -->
|
||||
<string name="main_screen_tap_card">Tap Tangem card with your smartphone</string>
|
||||
<string name="main_screen_scan_banknote">Scan a banknote with your \n %1$s \n as shown above</string>
|
||||
|
|
@ -111,6 +110,39 @@
|
|||
<string name="loaded_wallet_load_via_qr">Show QR-code</string>
|
||||
<string name="loaded_wallet_dialog_show_qr">LOAD</string>
|
||||
|
||||
<!-- LoadedWallet Blockchain Engines -->
|
||||
<string name="balance_validator_first_line_verified_balance">Verified balance</string>
|
||||
<string name="balance_validator_first_line_unknown_balance">Unknown balance</string>
|
||||
<string name="balance_validator_first_line_transaction_in_progress">Transaction in progress</string>
|
||||
<string name="balance_validator_first_line_verified_offline">Verified offline balance</string>
|
||||
<string name="balance_validator_first_line_empty_wallet">Empty wallet</string>
|
||||
<string name="balance_validator_first_line_verification_failed">Verification failed</string>
|
||||
<string name="balance_validator_first_line_pending_transaction">Pending transaction…</string>
|
||||
<string name="balance_validator_first_line_not_genuine">Not genuine banknote</string>
|
||||
<string name="balance_validator_first_line_locked_pin2">Locked with PIN2</string>
|
||||
<string name="balance_validator_first_line_verify_identity">Verified note identity.</string>
|
||||
<string name="balance_validator_first_line_no_account">No account or network error</string>
|
||||
<string name="balance_validator_first_line_account_not_found">Account not found</string>
|
||||
<string name="balance_validator_first_line_no_connection">No connection</string>
|
||||
<string name="balance_validator_first_line_verified_in_blockchain">Verified in blockchain</string>
|
||||
<string name="balance_validator_first_line_authenticity">Authenticity was not verified</string>
|
||||
|
||||
<string name="balance_validator_second_line_confirmed_in_blockchain">Balance confirmed in blockchain</string>
|
||||
<string name="balance_validator_second_line_unverified_balance">Balance cannot be verified. Swipe down to refresh.</string>
|
||||
<string name="balance_validator_second_line_wait_for_confirmation">Wait for confirmation in blockchain</string>
|
||||
<string name="balance_validator_second_line_internet_to_verify_online">Restore internet connection to obtain trusted balance from blockchain</string>
|
||||
<string name="balance_validator_second_line_internet_to_get_balance">Can\'t obtain balance from blockchain. Restore internet connection to be more confident.</string>
|
||||
<string name="balance_validator_second_line_swipe_to_refresh">Swipe down to refresh</string>
|
||||
<string name="balance_validator_second_line_verification_failed">Wallet verification failed. Tap again.</string>
|
||||
<string name="balance_validator_second_line_failed_attestation">Tangem Attestation service says the banknote is not genuine.</string>
|
||||
<string name="balance_validator_second_line_failed_binary_code_verification">Firmware binary code verification failed</string>
|
||||
<string name="balance_validator_second_line_disable_pin_2">Ask the holder to disable PIN2 before accepting</string>
|
||||
<string name="balance_validator_second_line_identity_not_verified">Card identity was not verified. Cannot reach Tangem attestation service.</string>
|
||||
<string name="balance_validator_second_line_create_account">To create account send funds to this address</string>
|
||||
<string name="balance_validator_second_line_create_account_instruction">To create account send 1+ XLM to this address</string>
|
||||
<string name="balance_validator_second_line_create_account_xrp">Load 20+ XRP to create account</string>
|
||||
<string name="balance_validator_second_line_authenticity_not_verified">Authenticity cannot be verified. Swipe down to refresh.</string>
|
||||
|
||||
<!-- CreateNewWallet, Purge, SignTransaction -->
|
||||
<string name="now_touch_the_banknote_with_id">Now touch the banknote with ID</string>
|
||||
<string name="to_create_the_wallet">to create the wallet</string>
|
||||
|
|
@ -134,7 +166,6 @@
|
|||
<string name="pin_request_new_pin_2">Enter new PIN2</string>
|
||||
<string name="pin_request_error_pin_confirmation_failed">Please enter the PIN for confirmation!</string>
|
||||
|
||||
|
||||
<!-- SendTransaction-->
|
||||
<string name="send_transaction_notification_wait">Please wait while the payment is sent…</string>
|
||||
<string name="send_transaction_success">Transaction has been successfully signed and sent to blockchain node. Wallet balance will be updated in a while</string>
|
||||
|
|
@ -212,6 +243,15 @@
|
|||
<string name="details_protected_by_user_pin_2">This banknote is protected by user\'s PIN2 code</string>
|
||||
<string name="details_unlocked_banknote">Unlocked banknote, only for development use</string>
|
||||
<string name="details_security_delay">This banknote will enforce %.0f seconds security delay for all operations requiring PIN2 code</string>
|
||||
<string name="details_both_pins_can_be_changed">Allows to change PIN1 and PIN2/n</string>
|
||||
<string name="details_pin1_can_be_changed">Allows to change PIN1/n</string>
|
||||
<string name="details_pin2_can_be_changed">Allows to change PIN2/n</string>
|
||||
<string name="details_both_pins_fixed">Fixed PIN1 and PIN2/n</string>
|
||||
<string name="details_required_cvc">Requires CVC/n</string>
|
||||
<string name="details_dynamic_ndef">Dynamic NDEF for iOS/n</string>
|
||||
<string name="details_ndef">NDEF/n</string>
|
||||
<string name="details_blockable">Blockable/n</string>
|
||||
<string name="details_atomic_commmands">Atomic command mode</string>
|
||||
|
||||
<!-- PinSave -->
|
||||
<string name="pin_save_btn_save">Save</string>
|
||||
|
|
|
|||
|
|
@ -1,31 +1,32 @@
|
|||
<resources>
|
||||
|
||||
<string name="in_msg_prefix"><-- </string>
|
||||
<string name="out_msg_prefix">--> </string>
|
||||
<string name="okay_msg_prefix">** </string>
|
||||
<string name="err_msg_prefix">!! </string>
|
||||
<string name="action_msg_prefix">-- </string>
|
||||
<string name="no_data_string">-- -- --</string>
|
||||
<string name="no_data_string_1">---- ---- ---- ----</string>
|
||||
<string name="pin_back"><</string>
|
||||
<string name="empty">--</string>
|
||||
<string name="_1">1</string>
|
||||
<string name="_2">2</string>
|
||||
<string name="_3">3</string>
|
||||
<string name="_4">4</string>
|
||||
<string name="_5">5</string>
|
||||
<string name="_6">6</string>
|
||||
<string name="_7">7</string>
|
||||
<string name="_8">8</string>
|
||||
<string name="_9">9</string>
|
||||
<string name="_0">0</string>
|
||||
<string name="in_msg_prefix" translatable="false"><-- </string>
|
||||
<string name="out_msg_prefix" translatable="false">--> </string>
|
||||
<string name="okay_msg_prefix" translatable="false">** </string>
|
||||
<string name="err_msg_prefix" translatable="false">!! </string>
|
||||
<string name="action_msg_prefix" translatable="false">-- </string>
|
||||
<string name="no_data_string" translatable="false">-- -- --</string>
|
||||
<string name="no_data_string_1" translatable="false">---- ---- ---- ----</string>
|
||||
<string name="pin_back" translatable="false"><</string>
|
||||
<string name="empty" translatable="false">--</string>
|
||||
<string name="empty_string" translatable="false"></string>
|
||||
<string name="_1" translatable="false">1</string>
|
||||
<string name="_2" translatable="false">2</string>
|
||||
<string name="_3" translatable="false">3</string>
|
||||
<string name="_4" translatable="false">4</string>
|
||||
<string name="_5" translatable="false">5</string>
|
||||
<string name="_6" translatable="false">6</string>
|
||||
<string name="_7" translatable="false">7</string>
|
||||
<string name="_8" translatable="false">8</string>
|
||||
<string name="_9" translatable="false">9</string>
|
||||
<string name="_0" translatable="false">0</string>
|
||||
|
||||
<string name="log_file_provider_authorities">com.tangem.data.LogFileProvider</string>
|
||||
<string name="ex_cant_create_coinEngine">Can\'t create CoinEngine!</string>
|
||||
<string name="log_file_provider_authorities" translatable="false">com.tangem.data.LogFileProvider</string>
|
||||
<string name="ex_cant_create_coinEngine" translatable="false">Can\'t create CoinEngine!</string>
|
||||
|
||||
<string name="pref_category_common">category_common</string>
|
||||
<string name="pref_manual_editing_fee">manual_editing_fee</string>
|
||||
<string name="pref_select_nodes">select_nodes</string>
|
||||
<string name="pref_encryption_modes">encryption_modes</string>
|
||||
<string name="pref_category_common" translatable="false">category_common</string>
|
||||
<string name="pref_manual_editing_fee" translatable="false">manual_editing_fee</string>
|
||||
<string name="pref_select_nodes" translatable="false">select_nodes</string>
|
||||
<string name="pref_encryption_modes" translatable="false">encryption_modes</string>
|
||||
|
||||
</resources>
|
||||
|
|
|
|||
8
tangem-sdk/src/main/res/values-fr/strings.xml
Normal file
8
tangem-sdk/src/main/res/values-fr/strings.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name"> tangemcard </string>
|
||||
<string name="general_ok"> OK </string>
|
||||
<string name="dialog_quit"> Quitter </string>
|
||||
<string name="dialog_nfc_enable_title"> Activer NFC? </string>
|
||||
<string name="dialog_nfc_enable_text"> 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. </string>
|
||||
</resources>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<resources>
|
||||
|
||||
<string name="app_name">tangemcard</string>
|
||||
<string name="app_name" translatable="false">tangemcard</string>
|
||||
<string name="general_ok">OK</string>
|
||||
<string name="dialog_quit">Quit</string>
|
||||
<string name="dialog_nfc_enable_title">Enable NFC?</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue