Merge branch 'easyLocalization'
This commit is contained in:
commit
f02cd7d192
Binary file not shown.
After Width: | Height: | Size: 238 KiB |
Before Width: | Height: | Size: 211 KiB After Width: | Height: | Size: 211 KiB |
Before Width: | Height: | Size: 166 KiB After Width: | Height: | Size: 166 KiB |
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
"searchWallet": "Search\nwallet",
|
||||
"manageWallets": "Manage\nwallets",
|
||||
"scanQRCode": "Scan a\nQR code",
|
||||
"wellConnectedToNode": "You are well connected to node\n{}",
|
||||
"networkLost": "Network has been lost...",
|
||||
"noDuniterEndointAvailable": "No server available...",
|
||||
"connectionPending": "Connection pending...",
|
||||
"noLizard": "no lounge lizard ;-)",
|
||||
"loading": "Loading...",
|
||||
"forgot_password.png": "forgot_password_en.png",
|
||||
"warningForgotPassword": "In a blockchain, there is no email recovery procedure. Only your recovery phrase can allow you to recover your Ğ1 at any time.",
|
||||
"fastAppDescription": "The {} app payment\nfaster than a reptile of Vietnam",
|
||||
"createWallet": "Create a wallet",
|
||||
"restoreWallet": "Restore my wallets",
|
||||
"parameters": "Parameters",
|
||||
"chooseAnotherMnemonic": "Choose an other\nmnemonic sentence",
|
||||
"iNotedMyMnemonic": "I wrote down my sentence",
|
||||
"printMyMnemonic": "Print my mnemonic sentence",
|
||||
"manageChest": "Configure this chest",
|
||||
"changeChest": "Change chest",
|
||||
"geckoChest": "Ğecko chest",
|
||||
"toUnlockEnterPassword": "To unlock your safe, enter your secret code, away from prying lizards:",
|
||||
"rememberPassword": "Keep this code in memory for 15 minutes",
|
||||
"myRootWallet": "My root wallet",
|
||||
"currentWallet": "My current chest",
|
||||
"wallet": "Wallet",
|
||||
"displayMnemonic": "Display my mnemonic sentence",
|
||||
"changePassword": "Change my password",
|
||||
"createDerivation": "Create a new derivation",
|
||||
"createCustomDerivation": "Create a new custom derivation",
|
||||
"deleteChest": "Delete this chest",
|
||||
"openThisChest": "Open this chest",
|
||||
"createChest": "Create a new chest",
|
||||
"importChest": "Import a chest",
|
||||
"selectMyChest": "Select my chest",
|
||||
"accessMyChest": "Access my chest",
|
||||
"manageMembership": "Manage my membership",
|
||||
"chooseThisWallet": "Choose this wallet",
|
||||
"thisWalletIsDefault": "This wallet is the default one",
|
||||
"defineWalletAsDefault": "Define this as the default one",
|
||||
"displayActivity": "Display activity",
|
||||
"displayNActivity": "Display\nactivity",
|
||||
"memberValidated": "Validated member!",
|
||||
"copyAddress": "Copy\naddress",
|
||||
"copy": "Copy",
|
||||
"thisAddressHasBeenCopiedToClipboard": "This address has been copied to clipboard",
|
||||
"chooseWalletName": "Choose a new name\nfor your wallet:",
|
||||
"choosePassword": "Choose a random password:",
|
||||
"chooseDerivation": "Choose a derivation:",
|
||||
"validate": "Validate",
|
||||
"confirm": "Confirm",
|
||||
"confirmPayment": "Confirm payment",
|
||||
"clickHereToConfirmIdentity": "Click here to confirm\nyour new identity",
|
||||
"geckoGenerateYourWalletFromMnemonic": "Ğecko builds your wallet from a **restoration sentence**. It is a bit like the blueprint that builds your wallet.",
|
||||
"keepThisMnemonicSecure": "Keep this sentence carefully, because without it Ğecko will not be able to rebuild your wallets the day you change your phone.",
|
||||
"geckoGeneratedYourMnemonicKeepItSecret": "Ğecko generated your mnemonic successfully! Keep it secret, because anyone who knows it can access all your wallets.",
|
||||
"newWallet": "New Wallet",
|
||||
"itsTimeToUseAPenAndPaper": "It's time to take a **pen and paper** in order to write down your mnemonic.",
|
||||
"yourMnemonic": "Your mnemonic",
|
||||
"gecko_also_can_forget.png": "gecko_also_can_forget_en.png",
|
||||
"didYouNoteMnemonicToBeSureTypeWord": "Did you write down your menmonic?\n\n To be sure, please type the **{}th word** of your restoration phrase in the field below:",
|
||||
"geckoWillGenerateAPassword": "Gecko will now generate for you a short password that will allow you to quickly access your wallets, without having to type your recovery sentence every time.",
|
||||
"myPassword": "My password",
|
||||
"thisPasswordProtectsYourWalletsInASecureChest": "This secret code protects your wallets in a safe **which only you have the code for**, so that your wallets cannot be used by others.",
|
||||
"hereIsThePasswordKeepIt": "And here is your password!\n\nMemorize it or write it down, because you will be asked **every time** you want to make a payment on this device.",
|
||||
"chooseAnotherPassword": "Choose an other password",
|
||||
"iNotedMyPassword": "I noted my password",
|
||||
"geckoWillCheckPassword": "Gecko will check with you if you have remembered your secret code.\n\n Type your secret code in the field below to check that you have written it down correctly.",
|
||||
"yourChestAndWalletWereCreatedSuccessfully": "Super!\n\nYour chest and your first portfolio have been created with great success.\n\nCongratulations!",
|
||||
"allGood": "That's all good!",
|
||||
"areYouSureToDeleteWallet": "Are you sure you want to delete the chest \"{}\"?",
|
||||
"areYouSureForgetAllChests": "Are you sure you want to forget all your chests?",
|
||||
"areYouSureToForgetWallet": "Are you sure you wan to forget the wallet \"{}\"?",
|
||||
"areYouSureYouWantToCertify": "Are you sure you want to certify the address:\n\n{}",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"keepYourMnemonicSecret": "Try to keep this phrase a secret, as it allows anyone who knows it to access all your wallets.",
|
||||
"iGeneratedYourMnemonicKeepItSecret": "I've generated your restoration phrase!\n Try to keep it a secret, as it allows anyone who knows it to access all your portfolios.",
|
||||
"myMnemonic": "My mnemonic",
|
||||
"close": "Close",
|
||||
"toRestoreEnterMnemonic": "To restore your Gecko wallets, enter in the fields below the 12 words that constitute your restoration phrase:",
|
||||
"pasteFromClipboard": "Paste from\nclipboard",
|
||||
"restoreAChest": "Restore a chest",
|
||||
"restoreThisChest": "Restore this chest",
|
||||
"continue": "Continue",
|
||||
"itsTheGoodWord": "It's the good word!",
|
||||
"nthMnemonicWord": "word of your mnemonic",
|
||||
"1th": "First",
|
||||
"2th": "Second",
|
||||
"3th": "Third",
|
||||
"4th": "Fourth",
|
||||
"5th": "Fifth",
|
||||
"6th": "Sixth",
|
||||
"7th": "Seventh",
|
||||
"8th": "Eighth",
|
||||
"9th": "Ninth",
|
||||
"10th": "Tenth",
|
||||
"11th": "Eleventh",
|
||||
"12th": "Twelfth",
|
||||
"yourPasswordLengthIsX": "Your password length is {}",
|
||||
"noIdentity": "No identity",
|
||||
"identityCreated": "Identity created",
|
||||
"identityConfirmed": "Identity confirmed",
|
||||
"identityExpired": "Identity expired",
|
||||
"confirmYourIdentity": "Confirm your identity",
|
||||
"noDuniterNodeAvailableTryLater": "No Duniter node available, please try again later",
|
||||
"youAreConnectedToNode": "You are connected to node",
|
||||
"accountActivity": "Account activity",
|
||||
"noNetworkNoHistory": "Network state does not allow\nto display account history",
|
||||
"noDataToDisplay": "No data to be displayed.",
|
||||
"noTranscationToDisplay": "No transaction to display",
|
||||
"month1": "January",
|
||||
"month2": "February",
|
||||
"month3": "March",
|
||||
"month4": "April",
|
||||
"month5": "May",
|
||||
"month6": "June",
|
||||
"month7": "July",
|
||||
"month8": "August",
|
||||
"month9": "September",
|
||||
"month10": "October",
|
||||
"month11": "November",
|
||||
"month12": "December",
|
||||
"today": "Today",
|
||||
"yesterday": "Yesterday",
|
||||
"thisWeek": "This week",
|
||||
"chestNotCompatibleMustReinstallGecko": "The version of your safes is no longer compatible with this version of Ğecko.\nAll your safes will be forgotten, you must import them again.",
|
||||
"notConnectedToInternet": "You are note connected to internet",
|
||||
"researchResults": "Results of your research",
|
||||
"resultsFor": "Results for ",
|
||||
"forgetAllMyChests": "Forget all my chests",
|
||||
"transaction": "Transaction",
|
||||
"certification": "Certification",
|
||||
"identityConfirm": "Identity confirmation",
|
||||
"revokeAdhesion": "Adhesion revocation",
|
||||
"strangeTransaction": "Strange transaction",
|
||||
"sending": "Sending...",
|
||||
"propagating": "Propagating...",
|
||||
"validating": "Validating...",
|
||||
"anErrorOccured": "An error occured",
|
||||
"24hbetweenCerts": "You have to wait 24h between certs",
|
||||
"canNotCertifySelf": "You can not certify yourself",
|
||||
"nameAlreadyExist": "This name is already taken",
|
||||
"2GDtoKeepAlive": "You have to keep at least 2ĞD to keep your account alive",
|
||||
"youHaveToFeedThisAccountBeforeUsing": "You have to feed this account\nbefore using it.",
|
||||
"execTimeoutOver": "Execution timeout is over",
|
||||
"seeAWallet": "See a wallet",
|
||||
"mustWaitXBeforeCertify": "You have to wait\n{} before\ncertifying again",
|
||||
"canRenewCertInX": "You can renew\nthis certification\nin {}",
|
||||
"executeATransfer": "Execute a transfer",
|
||||
"executeTheTransfer": "Execute the transfer",
|
||||
"doATransfer" : "Execute a\ntransfer",
|
||||
"seconds": "{} seconds",
|
||||
"minutes": "{} minutes",
|
||||
"hours": "{} hours {}",
|
||||
"days": "{} days",
|
||||
"months": "{} months",
|
||||
"certify": "Certify",
|
||||
"from": "From:",
|
||||
"amount": "Amount:",
|
||||
"choiceOfSourceWallet": "Choose a source wallet",
|
||||
"extrinsicInProgress": "{} in progress",
|
||||
"extrinsicValidated": "{} validated !",
|
||||
"fromMinus": "from",
|
||||
"toMinus": "to",
|
||||
"deleteThisWallet": "Delete this wallet",
|
||||
"cancel": "Cancel",
|
||||
"inBlockchainResult": "In {} blockchain",
|
||||
"search": "Search",
|
||||
"currencyNode": "{} node :"
|
||||
}
|
|
@ -0,0 +1,172 @@
|
|||
{
|
||||
"searchWallet": "Search\nwallet",
|
||||
"manageWallets": "Manage\nwallets",
|
||||
"scanQRCode": "Escanear un\ncódigo QR",
|
||||
"wellConnectedToNode": "Estas bien conectada al nodo\n{}",
|
||||
"networkLost": "Se ha perdido la red...",
|
||||
"noDuniterEndointAvailable": "No hay servidor disponible...",
|
||||
"connectionPending": "Conexión pendiente...",
|
||||
"noLizard": "no hay lagarto ;-)",
|
||||
"loading": "Cargando...",
|
||||
"forgot_password.png": "forgot_password_en.png",
|
||||
"warningForgotPassword": "In a blockchain, there is no email recovery procedure. Only your recovery phrase can allow you to recover your Ğ1 at any time.",
|
||||
"fastAppDescription": "La aplicación de pago {}\nmás rápida que un reptil de Vietnam",
|
||||
"createWallet": "Crear una billetera",
|
||||
"restoreWallet": "Restaurar mis billeteras",
|
||||
"parameters": "Parameters",
|
||||
"chooseAnotherMnemonic": "Choose an other\nmnemonic sentence",
|
||||
"iNotedMyMnemonic": "I wrote down my sentence",
|
||||
"printMyMnemonic": "Print my mnemonic sentence",
|
||||
"manageChest": "Configure this chest",
|
||||
"changeChest": "Change chest",
|
||||
"geckoChest": "Ğecko chest",
|
||||
"toUnlockEnterPassword": "To unlock your safe, enter your secret code, away from prying lizards:",
|
||||
"rememberPassword": "Keep this code in memory for 15 minutes",
|
||||
"myRootWallet": "My root wallet",
|
||||
"currentWallet": "My current chest",
|
||||
"wallet": "Wallet",
|
||||
"displayMnemonic": "Display my mnemonic sentence",
|
||||
"changePassword": "Change my password",
|
||||
"createDerivation": "Create a new derivation",
|
||||
"createCustomDerivation": "Create a new custom derivation",
|
||||
"deleteChest": "Delete this chest",
|
||||
"openThisChest": "Open this chest",
|
||||
"createChest": "Create a new chest",
|
||||
"importChest": "Import a chest",
|
||||
"selectMyChest": "Select my chest",
|
||||
"accessMyChest": "Access my chest",
|
||||
"manageMembership": "Manage my membership",
|
||||
"chooseThisWallet": "Choose this wallet",
|
||||
"thisWalletIsDefault": "This wallet is the default one",
|
||||
"defineWalletAsDefault": "Define this as the default one",
|
||||
"displayActivity": "Display activity",
|
||||
"displayNActivity": "Display\nactivity",
|
||||
"memberValidated": "Validated member!",
|
||||
"copyAddress": "Copy\naddress",
|
||||
"copy": "Copy",
|
||||
"thisAddressHasBeenCopiedToClipboard": "This address has been copied to clipboard",
|
||||
"chooseWalletName": "Choose a new name\nfor your wallet:",
|
||||
"choosePassword": "Choose a random password:",
|
||||
"chooseDerivation": "Choose a derivation:",
|
||||
"validate": "Validate",
|
||||
"confirm": "Confirm",
|
||||
"confirmPayment": "Confirm payment",
|
||||
"clickHereToConfirmIdentity": "Click here to confirm\nyour new identity",
|
||||
"geckoGenerateYourWalletFromMnemonic": "Ğecko builds your wallet from a **restoration sentence**. It is a bit like the blueprint that builds your wallet.",
|
||||
"keepThisMnemonicSecure": "Keep this sentence carefully, because without it Ğecko will not be able to rebuild your wallets the day you change your phone.",
|
||||
"geckoGeneratedYourMnemonicKeepItSecret": "Ğecko generated your mnemonic successfully! Keep it secret, because anyone who knows it can access all your wallets.",
|
||||
"newWallet": "New Wallet",
|
||||
"itsTimeToUseAPenAndPaper": "It's time to take a **pen and paper** in order to write down your mnemonic.",
|
||||
"yourMnemonic": "Your mnemonic",
|
||||
"gecko_also_can_forget.png": "gecko_also_can_forget_en.png",
|
||||
"didYouNoteMnemonicToBeSureTypeWord": "Did you write down your menmonic?\n\n To be sure, please type the **{}th word** of your restoration phrase in the field below:",
|
||||
"geckoWillGenerateAPassword": "Gecko will now generate for you a short password that will allow you to quickly access your wallets, without having to type your recovery sentence every time.",
|
||||
"myPassword": "My password",
|
||||
"thisPasswordProtectsYourWalletsInASecureChest": "This secret code protects your wallets in a safe **which only you have the code for**, so that your wallets cannot be used by others.",
|
||||
"hereIsThePasswordKeepIt": "And here is your password!\n\nMemorize it or write it down, because you will be asked **every time** you want to make a payment on this device.",
|
||||
"chooseAnotherPassword": "Choose an other password",
|
||||
"iNotedMyPassword": "I noted my password",
|
||||
"geckoWillCheckPassword": "Gecko will check with you if you have remembered your secret code.\n\n Type your secret code in the field below to check that you have written it down correctly.",
|
||||
"yourChestAndWalletWereCreatedSuccessfully": "Super!\n\nYour chest and your first portfolio have been created with great success.\n\nCongratulations!",
|
||||
"allGood": "That's all good!",
|
||||
"areYouSureToDeleteWallet": "Are you sure you want to delete the chest \"{}\"?",
|
||||
"areYouSureForgetAllChests": "Are you sure you want to forget all your chests?",
|
||||
"areYouSureToForgetWallet": "Are you sure you wan to forget the wallet \"{}\"?",
|
||||
"areYouSureYouWantToCertify": "Are you sure you want to certify the address:\n\n{}",
|
||||
"yes": "Yes",
|
||||
"no": "No",
|
||||
"keepYourMnemonicSecret": "Try to keep this phrase a secret, as it allows anyone who knows it to access all your wallets.",
|
||||
"iGeneratedYourMnemonicKeepItSecret": "I've generated your restoration phrase!\n Try to keep it a secret, as it allows anyone who knows it to access all your portfolios.",
|
||||
"myMnemonic": "My mnemonic",
|
||||
"close": "Close",
|
||||
"toRestoreEnterMnemonic": "To restore your Gecko wallets, enter in the fields below the 12 words that constitute your restoration phrase:",
|
||||
"pasteFromClipboard": "Paste from\nclipboard",
|
||||
"restoreAChest": "Restore a chest",
|
||||
"restoreThisChest": "Restore this chest",
|
||||
"continue": "Continue",
|
||||
"itsTheGoodWord": "It's the good word!",
|
||||
"nthMnemonicWord": "word of your mnemonic",
|
||||
"1th": "First",
|
||||
"2th": "Second",
|
||||
"3th": "Third",
|
||||
"4th": "Fourth",
|
||||
"5th": "Fifth",
|
||||
"6th": "Sixth",
|
||||
"7th": "Seventh",
|
||||
"8th": "Eighth",
|
||||
"9th": "Ninth",
|
||||
"10th": "Tenth",
|
||||
"11th": "Eleventh",
|
||||
"12th": "Twelfth",
|
||||
"yourPasswordLengthIsX": "Your password length is {}",
|
||||
"noIdentity": "No identity",
|
||||
"identityCreated": "Identity created",
|
||||
"identityConfirmed": "Identity confirmed",
|
||||
"identityExpired": "Identity expired",
|
||||
"confirmYourIdentity": "Confirm your identity",
|
||||
"noDuniterNodeAvailableTryLater": "No Duniter node available, please try again later",
|
||||
"youAreConnectedToNode": "You are connected to node",
|
||||
"accountActivity": "Account activity",
|
||||
"noNetworkNoHistory": "Network state does not allow\nto display account history",
|
||||
"noDataToDisplay": "No data to be displayed.",
|
||||
"noTranscationToDisplay": "No transaction to display",
|
||||
"month1": "January",
|
||||
"month2": "February",
|
||||
"month3": "March",
|
||||
"month4": "April",
|
||||
"month5": "May",
|
||||
"month6": "June",
|
||||
"month7": "July",
|
||||
"month8": "August",
|
||||
"month9": "September",
|
||||
"month10": "October",
|
||||
"month11": "November",
|
||||
"month12": "December",
|
||||
"today": "Today",
|
||||
"yesterday": "Yesterday",
|
||||
"thisWeek": "This week",
|
||||
"chestNotCompatibleMustReinstallGecko": "The version of your safes is no longer compatible with this version of Ğecko.\nAll your safes will be forgotten, you must import them again.",
|
||||
"notConnectedToInternet": "You are note connected to internet",
|
||||
"researchResults": "Results of your research",
|
||||
"resultsFor": "Results for ",
|
||||
"forgetAllMyChests": "Forget all my chests",
|
||||
"transaction": "Transaction",
|
||||
"certification": "Certification",
|
||||
"identityConfirm": "Identity confirmation",
|
||||
"revokeAdhesion": "Adhesion revocation",
|
||||
"strangeTransaction": "Strange transaction",
|
||||
"sending": "Sending...",
|
||||
"propagating": "Propagating...",
|
||||
"validating": "Validating...",
|
||||
"anErrorOccured": "An error occured",
|
||||
"24hbetweenCerts": "You have to wait 24h between certs",
|
||||
"canNotCertifySelf": "You can not certify yourself",
|
||||
"nameAlreadyExist": "This name is already taken",
|
||||
"2GDtoKeepAlive": "You have to keep at least 2ĞD to keep your account alive",
|
||||
"youHaveToFeedThisAccountBeforeUsing": "You have to feed this account\nbefore using it.",
|
||||
"execTimeoutOver": "Execution timeout is over",
|
||||
"seeAWallet": "See a wallet",
|
||||
"mustWaitXBeforeCertify": "You have to wait\n{} before\ncertifying again",
|
||||
"canRenewCertInX": "You can renew\nthis certification\nin {}",
|
||||
"executeATransfer": "Execute a transfer",
|
||||
"executeTheTransfer": "Execute the transfer",
|
||||
"doATransfer" : "Execute a\ntransfer",
|
||||
"seconds": "{} seconds",
|
||||
"minutes": "{} minutes",
|
||||
"hours": "{} hours {}",
|
||||
"days": "{} days",
|
||||
"months": "{} months",
|
||||
"certify": "Certify",
|
||||
"from": "From:",
|
||||
"amount": "Amount:",
|
||||
"choiceOfSourceWallet": "Choose a source wallet",
|
||||
"extrinsicInProgress": "{} in progress",
|
||||
"extrinsicValidated": "{} validated !",
|
||||
"fromMinus": "from",
|
||||
"toMinus": "to",
|
||||
"deleteThisWallet": "Delete this wallet",
|
||||
"cancel": "Cancel",
|
||||
"inBlockchainResult": "In {} blockchain",
|
||||
"search": "Search",
|
||||
"currencyNode": "{} node :"
|
||||
}
|
|
@ -0,0 +1,173 @@
|
|||
{
|
||||
"searchWallet": "Rechercher un\nportefeuille",
|
||||
"manageWallets": "Gérer mes\nportefeuilles",
|
||||
"scanQRCode": "Scanner un\nQR code",
|
||||
"wellConnectedToNode": "Vous êtes bien connecté aux noeud\n{}",
|
||||
"networkLost": "Le réseau a été perdu...",
|
||||
"noDuniterEndointAvailable": "Aucun serveur disponible...",
|
||||
"connectionPending": "Connexion en cours...",
|
||||
"noLizard": "y'a pas de lézard ;-)",
|
||||
"loading": "Chargement en cours...",
|
||||
"forgot_password.png": "forgot_password_fr.png",
|
||||
"warningForgotPassword": "Dans une blockchain, pas de procédure de récupération par mail. Seule votre phrase de restauration peut vous permettre de récupérer vos Ğ1 à tout moment.",
|
||||
"fastAppDescription": "L’application de paiement {}\nplus rapide qu’un reptile du Vietnam",
|
||||
"createWallet": "Créer un portefeuille",
|
||||
"restoreWallet": "Restaurer mes portefeuilles",
|
||||
"parameters": "Paramètres",
|
||||
"chooseAnotherMnemonic": "Choisir une autre phrase",
|
||||
"iNotedMyMnemonic": "J'ai noté ma phrase",
|
||||
"printMyMnemonic": "Imprimer ma phrase de restauration",
|
||||
"manageChest": "Paramétrer ce coffre",
|
||||
"changeChest": "Changer de coffre",
|
||||
"geckoChest": "Coffre à Ğecko",
|
||||
"toUnlockEnterPassword": "Pour déverrouiller votre coffre, composez votre code secret à l’abri des lézards indiscrets :",
|
||||
"rememberPassword": "Garder ce code en mémoire 15 minutes",
|
||||
"myRootWallet": "Mon portefeuille racine",
|
||||
"currentWallet": "Mon portefeuille courant",
|
||||
"wallet": "Portefeuille",
|
||||
"displayMnemonic": "Afficher ma phrase de restauration",
|
||||
"changePassword": "Changer mon code secret",
|
||||
"createDerivation": "Créer une autre dérivation",
|
||||
"createCustomDerivation": "Créer une dérivation personnalisé",
|
||||
"deleteChest": "Supprimer ce coffre",
|
||||
"openThisChest": "Ouvrir ce coffre",
|
||||
"createChest": "Créer un nouveau coffre",
|
||||
"importChest": "Importer un coffre",
|
||||
"selectMyChest": "Sélectionner mon coffre",
|
||||
"accessMyChest": "Accéder à mon coffre",
|
||||
"manageMembership": "Gérer mon adhésion",
|
||||
"chooseThisWallet": "Choisir ce portefeuille",
|
||||
"thisWalletIsDefault": "Ce portefeuille est celui par defaut",
|
||||
"defineWalletAsDefault": "Définir comme portefeuille par défaut",
|
||||
"displayActivity": "Voir l'activité",
|
||||
"displayNActivity": "Voir\nl'activité",
|
||||
"memberValidated": "Membre validé !",
|
||||
"copyAddress": "Copier\nl'adresse",
|
||||
"copy": "Copier",
|
||||
"thisAddressHasBeenCopiedToClipboard": "Cette adresse a été copié dans votre presse-papier.",
|
||||
"chooseWalletName": "Choisissez un nouveau nom\npour votre portefeuille :",
|
||||
"choosePassword": "Choisissez un code secret autogénéré :",
|
||||
"chooseDerivation": "Choisissez une dérivation:",
|
||||
"validate": "Valider",
|
||||
"confirm": "Confirmer",
|
||||
"confirmPayment": "Confirmer le paiement",
|
||||
"clickHereToConfirmIdentity": "Cliquez ici pour confirmer\nvotre nouvelle identité",
|
||||
"geckoGenerateYourWalletFromMnemonic": "Ğecko fabrique votre portefeuille à partir d’une **phrase de restauration**. Elle est un peu comme le plan qui permet de construire votre portefeuille.",
|
||||
"keepThisMnemonicSecure": "Conservez cette phrase précieusement, car sans elle Ğecko ne pourra pas reconstruire vos portefeuilles le jour où vous changez de téléphone.",
|
||||
"geckoGeneratedYourMnemonicKeepItSecret": "Gecko a généré votre phrase de restauration ! Tâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.",
|
||||
"newWallet": "Nouveau portefeuille",
|
||||
"itsTimeToUseAPenAndPaper": "Il est temps de vous munir d’**un papier et d’un crayon** afin de pouvoir noter votre phrase de restauration.",
|
||||
"yourMnemonic": "Votre phrase de restauration",
|
||||
"gecko_also_can_forget.png": "gecko_also_can_forget_fr.png",
|
||||
"didYouNoteMnemonicToBeSureTypeWord": "Avez-vous bien noté votre phrase de restauration ?\n\nPour en être sûr, veuillez taper dans le champ ci-dessous le **{}ème mot** de votre phrase de restauration :",
|
||||
"geckoWillGenerateAPassword": "Gecko va maintenant générer pour vous un code secret court qui vous permettra d’accéder rapidement à vos portefeuilles, sans avoir à taper votre phrase de restauration à chaque fois.",
|
||||
"myPassword": "Mon code secret",
|
||||
"thisPasswordProtectsYourWalletsInASecureChest": "Ce code secret protège vos portefeuilles dans un coffre-fort **dont vous seul possédez le code**, de sorte que vos portefeuilles seront inutilisables par d’autres.",
|
||||
"hereIsThePasswordKeepIt": "Et voilà votre code secret !\n\nMémorisez-le ou notez-le, car il vous sera demandé **à chaque fois** que vous voudrez effectuer un paiement sur cet appareil.",
|
||||
"chooseAnotherPassword": "Choisir un autre code secret",
|
||||
"iNotedMyPassword": "J'ai noté mon code secret",
|
||||
"geckoWillCheckPassword": "Gecko va vérifier avec vous si vous avez bien mémorisé votre code secret.\n\nTapez votre code secret dans le champ ci-dessous pour vérifier que vous l’avez bien noté.",
|
||||
"yourChestAndWalletWereCreatedSuccessfully": "Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !",
|
||||
"allGood": "C’est tout bon !",
|
||||
"areYouSureToDeleteWallet": "Êtes-vous sûr de vouloir supprimer le coffre \"{}\" ?",
|
||||
"areYouSureForgetAllChests": "Êtes-vous sûr de vouloir oublier tous vos coffres ?",
|
||||
"areYouSureToForgetWallet": "Êtes-vous sûr de vouloir oublier le portefeuille \"{}\" ?",
|
||||
"areYouSureYouWantToCertify": "Êtes-vous certain de vouloir certifier l'adresse:\n\n{}",
|
||||
"yes": "Oui",
|
||||
"no": "Non",
|
||||
"keepYourMnemonicSecret": "Tâchez de garder cette phrase bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.",
|
||||
"iGeneratedYourMnemonicKeepItSecret": "J’ai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.",
|
||||
"myMnemonic": "Ma phrase de restauration",
|
||||
"close": "Fermer",
|
||||
"toRestoreEnterMnemonic": "Pour restaurer vos portefeuilles Gecko, rentrez dans les champs ci-dessous les 12 mots qui constituent votre phrase de restauration :",
|
||||
"pasteFromClipboard": "Coller depuis le\npresse-papier",
|
||||
"restoreAChest": "Restaurer un coffre",
|
||||
"restoreThisChest": "Restaurer ce coffre",
|
||||
"continue": "Continuer",
|
||||
"itsTheGoodWord": "C'est le bon mot !",
|
||||
"nthMnemonicWord": "mot de votre phrase de restauration",
|
||||
"1th": "Premier",
|
||||
"2th": "Deuxième",
|
||||
"3th": "Troisième",
|
||||
"4th": "Quatrième",
|
||||
"5th": "Cinquième",
|
||||
"6th": "Sixième",
|
||||
"7th": "Septième",
|
||||
"8th": "Huitième",
|
||||
"9th": "Neuvième",
|
||||
"10th": "Dixième",
|
||||
"11th": "Onzième",
|
||||
"12th": "Douzième",
|
||||
"yourPasswordLengthIsX": "Votre code PIN fait {} caractères",
|
||||
"noIdentity": "Aucune identité",
|
||||
"identityCreated": "Identité créée",
|
||||
"identityConfirmed": "Identité confirmée",
|
||||
"identityExpired": "Identité expirée",
|
||||
"confirmYourIdentity": "Confirmez votre identité",
|
||||
"noResult": "Aucun résultat",
|
||||
"noDuniterNodeAvailableTryLater": "Aucun noeud Duniter disponible, veuillez réessayer ultérieurement",
|
||||
"youAreConnectedToNode": "Vous êtes connecté au noeud",
|
||||
"accountActivity": "Activité du compte",
|
||||
"noNetworkNoHistory": "L'état du réseau ne permet pas\nd'afficher l'historique du compte",
|
||||
"noDataToDisplay": "Aucune donnée à afficher.",
|
||||
"noTranscationToDisplay": "Aucune transaction à afficher",
|
||||
"month1": "Janvier",
|
||||
"month2": "Février",
|
||||
"month3": "Mars",
|
||||
"month4": "Avril",
|
||||
"month5": "Mai",
|
||||
"month6": "Juin",
|
||||
"month7": "Juillet",
|
||||
"month8": "Aout",
|
||||
"month9": "Septembre",
|
||||
"month10": "Octobre",
|
||||
"month11": "Novembre",
|
||||
"month12": "Décembre",
|
||||
"today": "Aujourd'hui",
|
||||
"yesterday": "Hier",
|
||||
"thisWeek": "Cette semaine",
|
||||
"chestNotCompatibleMustReinstallGecko": "La version de vos coffres n'est plus comptabile avec cette version de Ğecko.\nTous vos coffres vont être oubliés, vous devez les importer de nouveau.",
|
||||
"notConnectedToInternet": "Vous n'êtes pas connecté à internet",
|
||||
"researchResults": "Résultats de votre recherche",
|
||||
"resultsFor": "Résultats pour ",
|
||||
"forgetAllMyChests": "Oublier tous mes coffres",
|
||||
"transaction": "Transaction",
|
||||
"certification": "Certification",
|
||||
"identityConfirm": "Confirmation d'identité",
|
||||
"revokeAdhesion": "Révocation d'adhésion",
|
||||
"strangeTransaction": "Transaction étrange",
|
||||
"sending": "Envoi en cours...",
|
||||
"propagating": "En cours de propagation...",
|
||||
"validating": "En cours de validation...",
|
||||
"anErrorOccured": "Une erreur s'est produite",
|
||||
"24hbetweenCerts": "Vous devez attendre 24h entre chaque certification",
|
||||
"canNotCertifySelf": "Vous ne pouvez pas vous certifier\nvous même ...",
|
||||
"nameAlreadyExist": "Ce nom est déjà pris",
|
||||
"2GDtoKeepAlive": "Vous devez garder au moins 2ĞD sur votre compte pour le garder actif",
|
||||
"youHaveToFeedThisAccountBeforeUsing": "Vous devez alimenter ce compte avant\nde pouvoir l'utiliser",
|
||||
"execTimeoutOver": "Le délais d'éxecution est dépassé",
|
||||
"seeAWallet": "Voir un portefeuille",
|
||||
"mustWaitXBeforeCertify": "Vous devez attendre\n{} avant\nde pouvoir certifier",
|
||||
"canRenewCertInX": "Vous pourrez renouveller\ncette certification\ndans {}",
|
||||
"executeATransfer": "Effectuer un virement",
|
||||
"executeTheTransfer": "Effectuer le virement",
|
||||
"doATransfer": "Faire un\nvirement",
|
||||
"seconds": "{} secondes",
|
||||
"minutes": "{} minutes",
|
||||
"hours": "{} heures {}",
|
||||
"days": "{} jours",
|
||||
"months": "{} mois",
|
||||
"certify": "Certifier",
|
||||
"from": "Depuis:",
|
||||
"amount": "Montant:",
|
||||
"choiceOfSourceWallet": "Choix du portefeuille source",
|
||||
"extrinsicInProgress": "{} en cours",
|
||||
"extrinsicValidated": "{} validé !",
|
||||
"fromMinus": "de",
|
||||
"toMinus": "vers",
|
||||
"deleteThisWallet": "Supprimer ce portefeuille",
|
||||
"cancel": "Annuler",
|
||||
"inBlockchainResult": "Dans la blockchain {}",
|
||||
"search": "Rechercher",
|
||||
"currencyNode": "Noeud {} :"
|
||||
}
|
|
@ -45,11 +45,13 @@ import 'package:shared_preferences/shared_preferences.dart';
|
|||
import 'package:sentry_flutter/sentry_flutter.dart';
|
||||
import 'package:window_size/window_size.dart';
|
||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
|
||||
const bool enableSentry = true;
|
||||
|
||||
Future<void> main() async {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
await EasyLocalization.ensureInitialized();
|
||||
if (!kIsWeb && (Platform.isWindows || Platform.isLinux || Platform.isMacOS)) {
|
||||
setWindowTitle('Ğecko');
|
||||
setWindowMinSize(const Size(400, 700));
|
||||
|
@ -97,27 +99,31 @@ Future<void> main() async {
|
|||
// // ]);
|
||||
// Catcher(rootWidget: Gecko(endPointGVA, _store), debugConfig: debugOptions);
|
||||
|
||||
await SentryFlutter.init((options) {
|
||||
await SentryFlutter.init(
|
||||
(options) {
|
||||
options.dsn =
|
||||
'https://c09587b46eaa42e8b9fda28d838ed180@o496840.ingest.sentry.io/5572110';
|
||||
}, appRunner: () => runApp(Gecko(indexerEndpoint)));
|
||||
|
||||
// runZoned<Future<void>>(
|
||||
// () async {
|
||||
// runApp(Gecko(endPointGVA, _store));
|
||||
// },
|
||||
// onError: (dynamic error, StackTrace stackTrace) {
|
||||
// print("=================== CAUGHT DART ERROR");
|
||||
// // Sentry.captureException(
|
||||
// // error,
|
||||
// // stackTrace: stackTrace,
|
||||
// // );
|
||||
// },
|
||||
// ));
|
||||
},
|
||||
appRunner: () => runApp(
|
||||
EasyLocalization(
|
||||
supportedLocales: const [Locale('en'), Locale('fr')],
|
||||
path: 'assets/translations',
|
||||
fallbackLocale: const Locale('en'),
|
||||
child: Gecko(indexerEndpoint),
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
print('Debug mode enabled: No sentry alerte');
|
||||
|
||||
runApp(Gecko(indexerEndpoint));
|
||||
runApp(
|
||||
EasyLocalization(
|
||||
supportedLocales: const [Locale('en'), Locale('fr'), Locale('es')],
|
||||
path: 'assets/translations',
|
||||
fallbackLocale: const Locale('fr'),
|
||||
child: Gecko(indexerEndpoint),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -145,6 +151,9 @@ class Gecko extends StatelessWidget {
|
|||
ChangeNotifierProvider(create: (_) => DuniterIndexer())
|
||||
],
|
||||
child: MaterialApp(
|
||||
localizationsDelegates: context.localizationDelegates,
|
||||
supportedLocales: context.supportedLocales,
|
||||
locale: context.locale,
|
||||
builder: (context, widget) => ResponsiveWrapper.builder(
|
||||
BouncingScrollWrapper.builder(context, widget!),
|
||||
maxWidth: 1200,
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
|
@ -55,17 +56,16 @@ class ChestProvider with ChangeNotifier {
|
|||
barrierDismissible: true, // user must tap button!
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: Text(
|
||||
'Êtes-vous sûr de vouloir supprimer le coffre "$_walletName" ?'),
|
||||
title: Text('areYouSureToDeleteWallet'.tr(args: [_walletName!])),
|
||||
actions: <Widget>[
|
||||
TextButton(
|
||||
child: const Text("Non", key: Key('cancelDeleting')),
|
||||
child: Text("no".tr(), key: const Key('cancelDeleting')),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, false);
|
||||
},
|
||||
),
|
||||
TextButton(
|
||||
child: const Text("Oui", key: Key('confirmDeleting')),
|
||||
child: Text("yes".tr(), key: const Key('confirmDeleting')),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, true);
|
||||
},
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:async';
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -229,13 +230,13 @@ class DuniterIndexer with ChangeNotifier {
|
|||
}
|
||||
|
||||
if (result.isLoading) {
|
||||
return const Text('Loading');
|
||||
return Text('loading'.tr());
|
||||
}
|
||||
|
||||
final List identities = result.data?['search_identity'] ?? [];
|
||||
|
||||
if (identities.isEmpty) {
|
||||
return const Text('Aucun résultat');
|
||||
return Text('noResult'.tr());
|
||||
}
|
||||
|
||||
int keyID = 0;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import 'dart:math';
|
||||
import 'dart:typed_data';
|
||||
import 'package:durt/durt.dart' as durt;
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -62,9 +63,9 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
|
||||
String chestName;
|
||||
if (chestNumber == 0) {
|
||||
chestName = 'Coffre à Ğecko';
|
||||
chestName = 'geckoChest'.tr();
|
||||
} else {
|
||||
chestName = 'Coffre à Ğecko ${chestNumber + 1}';
|
||||
chestName = 'geckoChest'.tr() + '${chestNumber + 1}';
|
||||
}
|
||||
await configBox.put('currentChest', chestNumber);
|
||||
|
||||
|
@ -119,18 +120,18 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
|
||||
String? intToString(int _nbr) {
|
||||
Map nbrToString = {};
|
||||
nbrToString[1] = 'Premier';
|
||||
nbrToString[2] = 'Deuxième';
|
||||
nbrToString[3] = 'Troisième';
|
||||
nbrToString[4] = 'Quatrième';
|
||||
nbrToString[5] = 'Cinquième';
|
||||
nbrToString[6] = 'Sixième';
|
||||
nbrToString[7] = 'Septième';
|
||||
nbrToString[8] = 'Huitième';
|
||||
nbrToString[9] = 'Neuvième';
|
||||
nbrToString[10] = 'Dixième';
|
||||
nbrToString[11] = 'Onzième';
|
||||
nbrToString[12] = 'Douzième';
|
||||
nbrToString[1] = '1th'.tr();
|
||||
nbrToString[2] = '2th'.tr();
|
||||
nbrToString[3] = '3th'.tr();
|
||||
nbrToString[4] = '4th'.tr();
|
||||
nbrToString[5] = '5th'.tr();
|
||||
nbrToString[6] = '6th'.tr();
|
||||
nbrToString[7] = '7th'.tr();
|
||||
nbrToString[8] = '8th'.tr();
|
||||
nbrToString[9] = '9th'.tr();
|
||||
nbrToString[10] = '10th'.tr();
|
||||
nbrToString[11] = '11th'.tr();
|
||||
nbrToString[12] = '12th'.tr();
|
||||
|
||||
nbrWordAlpha = nbrToString[_nbr];
|
||||
|
||||
|
@ -400,8 +401,8 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
if (balance != 0) {
|
||||
isAlive = true;
|
||||
String walletName = scanedWalletNumber == 0
|
||||
? 'Mon portefeuille courant'
|
||||
: 'Portefeuille ${scanedWalletNumber + 1}';
|
||||
? 'currentWallet'.tr()
|
||||
: 'wallet'.tr() + ' ${scanedWalletNumber + 1}';
|
||||
await _sub.importAccount(
|
||||
mnemonic: '',
|
||||
fromMnemonic: true,
|
||||
|
@ -437,7 +438,7 @@ class GenerateWalletsProvider with ChangeNotifier {
|
|||
|
||||
log.d(balance);
|
||||
if (balance != 0) {
|
||||
String walletName = 'Mon portefeuille racine';
|
||||
String walletName = 'myRootWallet'.tr();
|
||||
await _sub.importAccount(
|
||||
mnemonic: '', fromMnemonic: true, password: pin.text);
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@ import 'dart:io';
|
|||
import 'dart:math';
|
||||
// import 'package:audioplayers/audio_cache.dart';
|
||||
// import 'package:audioplayers/audioplayers.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'dart:async';
|
||||
|
@ -25,10 +26,8 @@ class HomeProvider with ChangeNotifier {
|
|||
Icon searchIcon = const Icon(Icons.search);
|
||||
final TextEditingController searchQuery = TextEditingController();
|
||||
Widget appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850]));
|
||||
Widget appBarExplorer =
|
||||
Text('Explorateur', style: TextStyle(color: Colors.grey[850]));
|
||||
String homeMessage = "Chargement en cours ...";
|
||||
String defaultMessage = "y'a pas de lézard ;-)";
|
||||
String homeMessage = "loading".tr();
|
||||
String defaultMessage = "noLizard".tr();
|
||||
|
||||
Future<void> initHive() async {
|
||||
late Directory hivePath;
|
||||
|
@ -211,20 +210,6 @@ class HomeProvider with ChangeNotifier {
|
|||
);
|
||||
}
|
||||
|
||||
void handleSearchEnd() {
|
||||
searchIcon = Icon(
|
||||
Icons.search,
|
||||
color: Colors.grey[850],
|
||||
);
|
||||
appBarTitle = Text('Ğecko', style: TextStyle(color: Colors.grey[850]));
|
||||
appBarExplorer =
|
||||
Text('Explorateur', style: TextStyle(color: Colors.grey[850]));
|
||||
isSearching = false;
|
||||
searchQuery.clear();
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void rebuildWidget() {
|
||||
notifyListeners();
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:async';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -90,7 +91,7 @@ class MyWalletsProvider with ChangeNotifier {
|
|||
log.w('DELETE ALL WALLETS ?');
|
||||
|
||||
final bool? _answer = await (confirmPopup(
|
||||
context, 'Êtes-vous sûr de vouloir oublier tous vos coffres ?'));
|
||||
context, 'areYouSureForgetAllChests'.tr()));
|
||||
if (_answer!) {
|
||||
await walletBox.clear();
|
||||
await chestBox.clear();
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: avoid_print
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -56,7 +57,7 @@ class SubstrateSdk with ChangeNotifier {
|
|||
// _homeProvider.changeMessage("Vous n'êtes pas connecté à internet", 0);
|
||||
// return;
|
||||
// }
|
||||
_homeProvider.changeMessage("Connexion en cours...", 0);
|
||||
_homeProvider.changeMessage("connectionPending".tr(), 0);
|
||||
|
||||
for (String _endpoint in configBox.get('endpoint')) {
|
||||
final n = NetworkParams();
|
||||
|
@ -109,7 +110,7 @@ class SubstrateSdk with ChangeNotifier {
|
|||
// log.d(sdk.api.connectedNode?.endpoint);
|
||||
if (sdk.api.connectedNode?.endpoint == null) {
|
||||
nodeConnected = false;
|
||||
_homeProvider.changeMessage("Le réseau a été perdu...", 0);
|
||||
_homeProvider.changeMessage("networkLost".tr(), 0);
|
||||
} else {
|
||||
nodeConnected = true;
|
||||
}
|
||||
|
@ -119,14 +120,15 @@ class SubstrateSdk with ChangeNotifier {
|
|||
// currencyName = await getCurencyName();
|
||||
notifyListeners();
|
||||
_homeProvider.changeMessage(
|
||||
'Vous êtes bien connecté aux noeud\n${getConnectedEndpoint()!.split('/')[2]}',
|
||||
"wellConnectedToNode"
|
||||
.tr(args: [getConnectedEndpoint()!.split('/')[2]]),
|
||||
5);
|
||||
// snackNode(ctx, true);
|
||||
} else {
|
||||
nodeConnected = false;
|
||||
debugConnection = res.toString();
|
||||
notifyListeners();
|
||||
_homeProvider.changeMessage("Aucun server disponible...", 0);
|
||||
_homeProvider.changeMessage("noDuniterEndointAvailable".tr(), 0);
|
||||
// snackNode(ctx, false);
|
||||
}
|
||||
|
||||
|
@ -756,13 +758,13 @@ class AddressInfo {
|
|||
void snackNode(BuildContext context, bool isConnected) {
|
||||
String _message;
|
||||
if (!isConnected) {
|
||||
_message =
|
||||
"Aucun noeud Duniter disponible, veuillez réessayer ultérieurement:\n${configBox.get('endpoint').first}";
|
||||
_message = "noDuniterNodeAvailableTryLater".tr() +
|
||||
":\n${configBox.get('endpoint').first}";
|
||||
} else {
|
||||
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
|
||||
|
||||
_message =
|
||||
"Vous êtes connecté au noeud\n${_sub.getConnectedEndpoint()!.split('//')[1]}";
|
||||
_message = "youAreConnectedToNode".tr() +
|
||||
"\n${_sub.getConnectedEndpoint()!.split('//')[1]}";
|
||||
}
|
||||
final snackBar = SnackBar(
|
||||
padding: const EdgeInsets.all(20),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:io';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'dart:async';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -46,8 +47,8 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
|
||||
Future<int> deleteWallet(context, WalletData wallet) async {
|
||||
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
|
||||
final bool? _answer = await (confirmPopup(context,
|
||||
'Êtes-vous sûr de vouloir oublier le portefeuille "${wallet.name}" ?'));
|
||||
final bool? _answer = await (confirmPopup(
|
||||
context, 'areYouSureToForgetWallet'.tr(args: [wallet.name!])));
|
||||
|
||||
if (_answer ?? false) {
|
||||
//Check if balance is null
|
||||
|
@ -156,26 +157,24 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
switch (snapshot.data.toString()) {
|
||||
case 'noid':
|
||||
{
|
||||
return _showText('Aucune identité');
|
||||
return _showText('noIdentity'.tr());
|
||||
}
|
||||
case 'Created':
|
||||
{
|
||||
return isOwner
|
||||
? InkWell(
|
||||
child: _showText(
|
||||
'Cliquez ici pour confirmer\nvotre nouvelle identité',
|
||||
18,
|
||||
true),
|
||||
'clickHereToConfirmIdentity'.tr(), 18, true),
|
||||
onTap: () async {
|
||||
await validateIdentity(context);
|
||||
},
|
||||
)
|
||||
: _showText('Identité créé');
|
||||
: _showText('identityCreated'.tr());
|
||||
}
|
||||
case 'ConfirmedByOwner':
|
||||
{
|
||||
return isOwner
|
||||
? _showText('Identité confirmé')
|
||||
? _showText('identityConfirmed'.tr())
|
||||
: _duniterIndexer.getNameByAddress(
|
||||
context,
|
||||
address,
|
||||
|
@ -190,7 +189,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
case 'Validated':
|
||||
{
|
||||
return isOwner
|
||||
? _showText('Membre validé !', 18, true)
|
||||
? _showText('memberValidated'.tr(), 18, true)
|
||||
: _duniterIndexer.getNameByAddress(
|
||||
context,
|
||||
address,
|
||||
|
@ -204,7 +203,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
|
||||
case 'expired':
|
||||
{
|
||||
return _showText('Identité expiré');
|
||||
return _showText('identityExpired'.tr());
|
||||
}
|
||||
}
|
||||
return SizedBox(
|
||||
|
@ -232,10 +231,10 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
barrierDismissible: true, // user must tap button!
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: const Text(
|
||||
'Confirmez votre identité',
|
||||
title: Text(
|
||||
'confirmYourIdentity'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
|
||||
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
|
||||
),
|
||||
content: SizedBox(
|
||||
height: 100,
|
||||
|
@ -263,7 +262,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
return TextButton(
|
||||
key: const Key('infoPopup'),
|
||||
child: Text(
|
||||
"Valider",
|
||||
"validate".tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 21,
|
||||
color: idtyName.text.length >= 2
|
||||
|
@ -325,10 +324,10 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
barrierDismissible: true,
|
||||
builder: (BuildContext context) {
|
||||
return AlertDialog(
|
||||
title: const Text(
|
||||
'Choisissez un nouveau nom\n pour votre portefeuille :',
|
||||
title: Text(
|
||||
'chooseWalletName'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
|
||||
style: const TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
|
||||
),
|
||||
content: SizedBox(
|
||||
height: 100,
|
||||
|
@ -352,7 +351,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
return TextButton(
|
||||
key: const Key('infoPopup'),
|
||||
child: Text(
|
||||
"Valider",
|
||||
"validate".tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 21,
|
||||
color: canValidateNameBool
|
||||
|
@ -379,7 +378,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
|||
TextButton(
|
||||
key: const Key('cancel'),
|
||||
child: Text(
|
||||
"Annuler",
|
||||
"cancel".tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
color: Colors.grey[800],
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:io';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -126,8 +127,7 @@ class WalletsProfilesProvider with ChangeNotifier {
|
|||
return _balance;
|
||||
}
|
||||
|
||||
|
||||
Widget headerProfileView(
|
||||
Widget headerProfileView(
|
||||
BuildContext context, String _address, String? username) {
|
||||
const double _avatarSize = 140;
|
||||
|
||||
|
@ -181,13 +181,11 @@ Widget headerProfileView(
|
|||
),
|
||||
]),
|
||||
const SizedBox(height: 25),
|
||||
|
||||
balance(context, _address, 22),
|
||||
const SizedBox(height: 10),
|
||||
_walletOptions.idtyStatus(context, _address,
|
||||
isOwner: false, color: Colors.black),
|
||||
getCerts(context, _address, 14),
|
||||
|
||||
if (username == null &&
|
||||
g1WalletsBox.get(_address)?.username != null)
|
||||
SizedBox(
|
||||
|
@ -218,7 +216,6 @@ Widget headerProfileView(
|
|||
ClipOval(
|
||||
child: _cesiumPlusProvider.defaultAvatar(_avatarSize),
|
||||
),
|
||||
|
||||
const SizedBox(height: 25),
|
||||
]),
|
||||
]),
|
||||
|
@ -227,18 +224,16 @@ Widget headerProfileView(
|
|||
]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void reload() {
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
||||
snackCopyKey(context) {
|
||||
const snackBar = SnackBar(
|
||||
padding: EdgeInsets.all(20),
|
||||
content: Text("Cette adresse a été copié dans votre presse-papier.",
|
||||
style: TextStyle(fontSize: 16)),
|
||||
duration: Duration(seconds: 2));
|
||||
final snackBar = SnackBar(
|
||||
padding: const EdgeInsets.all(20),
|
||||
content: Text("thisAddressHasBeenCopiedToClipboard".tr(),
|
||||
style: const TextStyle(fontSize: 16)),
|
||||
duration: const Duration(seconds: 2));
|
||||
ScaffoldMessenger.of(context).showSnackBar(snackBar);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/queries_indexer.dart';
|
||||
|
@ -9,7 +10,6 @@ import 'package:gecko/providers/wallets_profiles.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/screens/wallet_view.dart';
|
||||
import 'package:graphql_flutter/graphql_flutter.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
// ignore: must_be_immutable
|
||||
|
@ -40,9 +40,9 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
appBar: AppBar(
|
||||
elevation: 0,
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Activité du compte'),
|
||||
child: Text('accountActivity'.tr()),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: _homeProvider.bottomAppBar(context),
|
||||
|
@ -57,12 +57,12 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
Provider.of<DuniterIndexer>(context, listen: false);
|
||||
|
||||
if (indexerEndpoint == '') {
|
||||
Column(children: const <Widget>[
|
||||
SizedBox(height: 50),
|
||||
Column(children: <Widget>[
|
||||
const SizedBox(height: 50),
|
||||
Text(
|
||||
"L'état du réseau ne permet pas\nd'afficher l'historique du compte",
|
||||
"noNetworkNoHistory".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
)
|
||||
]);
|
||||
}
|
||||
|
@ -103,20 +103,20 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
|
||||
if (result.hasException) {
|
||||
log.e('Error Indexer: ' + result.exception.toString());
|
||||
return Column(children: const <Widget>[
|
||||
SizedBox(height: 50),
|
||||
return Column(children: <Widget>[
|
||||
const SizedBox(height: 50),
|
||||
Text(
|
||||
"L'état du réseau ne permet pas\nd'afficher l'historique du compte",
|
||||
"noNetworkNoHistory".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
)
|
||||
]);
|
||||
} else if (result.data == null) {
|
||||
return Column(children: const <Widget>[
|
||||
SizedBox(height: 50),
|
||||
return Column(children: <Widget>[
|
||||
const SizedBox(height: 50),
|
||||
Text(
|
||||
"Aucune donnée à afficher.",
|
||||
style: TextStyle(fontSize: 18),
|
||||
"noDataToDisplay".tr(),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
)
|
||||
]);
|
||||
}
|
||||
|
@ -159,11 +159,11 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
Provider.of<DuniterIndexer>(context, listen: false);
|
||||
|
||||
return _duniterIndexer.transBC == null
|
||||
? Column(children: const <Widget>[
|
||||
SizedBox(height: 50),
|
||||
? Column(children: <Widget>[
|
||||
const SizedBox(height: 50),
|
||||
Text(
|
||||
"Aucune transaction à afficher.",
|
||||
style: TextStyle(fontSize: 18),
|
||||
"noTransactionToDisplay".tr(),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
)
|
||||
])
|
||||
: Column(children: <Widget>[
|
||||
|
@ -202,19 +202,19 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
bool isYesterday = false;
|
||||
bool isThisWeek = false;
|
||||
|
||||
const Map<int, String> monthsInYear = {
|
||||
1: "Janvier",
|
||||
2: "Février",
|
||||
3: "Mars",
|
||||
4: "Avril",
|
||||
5: "Mai",
|
||||
6: "Juin",
|
||||
7: "Juillet",
|
||||
8: "Aout",
|
||||
9: "Septembre",
|
||||
10: "Octobre",
|
||||
11: "Novembre",
|
||||
12: "Décembre"
|
||||
final Map<int, String> monthsInYear = {
|
||||
1: "month1".tr(),
|
||||
2: "month2".tr(),
|
||||
3: "month3".tr(),
|
||||
4: "month4".tr(),
|
||||
5: "month5".tr(),
|
||||
6: "month6".tr(),
|
||||
7: "month7".tr(),
|
||||
8: "month8".tr(),
|
||||
9: "month9".tr(),
|
||||
10: "month10".tr(),
|
||||
11: "month11".tr(),
|
||||
12: "month12".tr()
|
||||
};
|
||||
|
||||
return Column(
|
||||
|
@ -243,18 +243,18 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
|
|||
final yesterdayDate = DateTime(now.year, now.month, now.day - 1);
|
||||
|
||||
if (transactionDate == todayDate && !isTody) {
|
||||
dateDelimiter = lastDateDelimiter = "Aujourd'hui";
|
||||
dateDelimiter = lastDateDelimiter = "today".tr();
|
||||
isTody = true;
|
||||
} else if (transactionDate == yesterdayDate && !isYesterday) {
|
||||
dateDelimiter = lastDateDelimiter = "Hier";
|
||||
dateDelimiter = lastDateDelimiter = "yesterday".tr();
|
||||
isYesterday = true;
|
||||
} else if (weekNumber(date) == weekNumber(now) &&
|
||||
date.year == now.year &&
|
||||
lastDateDelimiter != "Cette semaine" &&
|
||||
lastDateDelimiter != "thisWeek".tr() &&
|
||||
transactionDate != yesterdayDate &&
|
||||
transactionDate != todayDate &&
|
||||
!isThisWeek) {
|
||||
dateDelimiter = lastDateDelimiter = "Cette semaine";
|
||||
dateDelimiter = lastDateDelimiter = "thisWeek".tr();
|
||||
isThisWeek = true;
|
||||
} else if (lastDateDelimiter != monthsInYear[date.month] &&
|
||||
lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" &&
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import 'package:dots_indicator/dots_indicator.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
@ -29,22 +31,28 @@ class CommonElements {
|
|||
child: Image.asset('assets/onBoarding/$assetName', width: imageWidth));
|
||||
}
|
||||
|
||||
Widget buildText(List<TextSpan> text, [double size = 20]) {
|
||||
Widget buildText(String text, [double size = 20, bool isMd = false]) {
|
||||
final mdStyle = MarkdownStyleSheet(
|
||||
p: TextStyle(
|
||||
fontSize: isTall ? size : size * 0.9,
|
||||
color: Colors.black,
|
||||
letterSpacing: 0.3),
|
||||
textAlign: WrapAlignment.spaceBetween,
|
||||
);
|
||||
|
||||
return Container(
|
||||
padding: const EdgeInsets.all(12),
|
||||
width: 440,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white, border: Border.all(color: Colors.grey[900]!)),
|
||||
child: RichText(
|
||||
child: isMd
|
||||
? MarkdownBody(data: text, styleSheet: mdStyle)
|
||||
: Text(text,
|
||||
textAlign: TextAlign.justify,
|
||||
text: TextSpan(
|
||||
style: TextStyle(
|
||||
fontSize: isTall ? size : size * 0.9,
|
||||
color: Colors.black,
|
||||
letterSpacing: 0.3),
|
||||
children: text,
|
||||
),
|
||||
),
|
||||
letterSpacing: 0.3)),
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -85,11 +93,12 @@ class CommonElements {
|
|||
|
||||
Widget infoIntro(
|
||||
BuildContext context,
|
||||
List<TextSpan> text,
|
||||
String text,
|
||||
String assetName,
|
||||
String buttonText,
|
||||
nextScreen,
|
||||
double pagePosition, {
|
||||
bool isMd = false,
|
||||
bool isFast = false,
|
||||
double boxHeight = 440,
|
||||
double imageWidth = 350,
|
||||
|
@ -100,7 +109,8 @@ class CommonElements {
|
|||
buildProgressBar(pagePosition),
|
||||
SizedBox(height: isTall ? 40 : 20),
|
||||
|
||||
buildText(text, textSize),
|
||||
buildText(text, textSize, isMd),
|
||||
|
||||
buildImage(assetName, boxHeight, imageWidth),
|
||||
Expanded(
|
||||
child: Align(
|
||||
|
@ -239,9 +249,9 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
|
|||
children: [
|
||||
TextButton(
|
||||
key: const Key('confirmPopop'),
|
||||
child: const Text(
|
||||
"Oui",
|
||||
style: TextStyle(
|
||||
child: Text(
|
||||
"yes".tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 21,
|
||||
color: Color(0xffD80000),
|
||||
),
|
||||
|
@ -252,9 +262,9 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
|
|||
),
|
||||
const SizedBox(width: 20),
|
||||
TextButton(
|
||||
child: const Text(
|
||||
"Non",
|
||||
style: TextStyle(fontSize: 21),
|
||||
child: Text(
|
||||
"no".tr(),
|
||||
style: const TextStyle(fontSize: 21),
|
||||
),
|
||||
onPressed: () {
|
||||
Navigator.pop(context, false);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'package:bubble/bubble.dart';
|
||||
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/stateful_wrapper.dart';
|
||||
import 'package:gecko/providers/chest_provider.dart';
|
||||
|
@ -62,7 +63,7 @@ class HomeScreen extends StatelessWidget {
|
|||
),
|
||||
ListTile(
|
||||
key: const Key('parameters'),
|
||||
title: const Text('Paramètres'),
|
||||
title: Text('parameters'.tr()),
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
Navigator.push(
|
||||
|
@ -111,8 +112,8 @@ class HomeScreen extends StatelessWidget {
|
|||
// Check if versionData non compatible, drop everything
|
||||
if (walletBox.isNotEmpty &&
|
||||
walletBox.getAt(0)!.version! < dataVersion) {
|
||||
await infoPopup(context,
|
||||
"La version de vos coffres n'est plus comptabile avec cette version de Ğecko.\nTous vos coffres vont être oubliés, vous devez les importer de nouveau.");
|
||||
await infoPopup(
|
||||
context, "chestNotCompatibleMustReinstallGecko".tr());
|
||||
await walletBox.clear();
|
||||
await chestBox.clear();
|
||||
await configBox.delete('defaultWallet');
|
||||
|
@ -127,7 +128,7 @@ class HomeScreen extends StatelessWidget {
|
|||
if (connectivityResult != ConnectivityResult.mobile &&
|
||||
connectivityResult != ConnectivityResult.wifi) {
|
||||
_homeProvider.changeMessage(
|
||||
"Vous n'êtes pas connecté à internet", 0);
|
||||
"notConnectedToInternet".tr(), 0);
|
||||
_sub.nodeConnected = false;
|
||||
}
|
||||
|
||||
|
@ -139,7 +140,7 @@ class HomeScreen extends StatelessWidget {
|
|||
_sub.nodeConnected = false;
|
||||
await _sub.sdk.api.setting.unsubscribeBestNumber();
|
||||
_homeProvider.changeMessage(
|
||||
"Vous n'êtes pas connecté à internet", 0);
|
||||
"notConnectedToInternet".tr(), 0);
|
||||
_sub.reload();
|
||||
} else {
|
||||
await _sub.connectNode(ctx);
|
||||
|
@ -302,7 +303,7 @@ Widget geckHome(context) {
|
|||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Rechercher un\nportefeuille",
|
||||
"searchWallet".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
|
@ -368,7 +369,7 @@ Widget geckHome(context) {
|
|||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Gérer mes\nportefeuilles",
|
||||
"manageWallets".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
|
@ -412,7 +413,7 @@ Widget geckHome(context) {
|
|||
),
|
||||
const SizedBox(height: 12),
|
||||
Text(
|
||||
"Scanner un\nQR code",
|
||||
"scanQRCode".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: Colors.white,
|
||||
|
@ -468,7 +469,7 @@ Widget welcomeHome(context) {
|
|||
child:
|
||||
Row(mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[
|
||||
Text(
|
||||
"L’application de paiement $currencyName\nplus rapide qu’un reptile du Vietnam",
|
||||
"fastAppDescription".tr(args: [currencyName]),
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(
|
||||
color: Colors.white,
|
||||
|
@ -520,7 +521,7 @@ Widget welcomeHome(context) {
|
|||
),
|
||||
Positioned(
|
||||
left: 180,
|
||||
child: bubbleSpeak("y'a pas de lézard !"),
|
||||
child: bubbleSpeak("noLizard".tr()),
|
||||
),
|
||||
const Positioned(
|
||||
left: 200,
|
||||
|
@ -551,10 +552,10 @@ Widget welcomeHome(context) {
|
|||
),
|
||||
);
|
||||
},
|
||||
child: const Text(
|
||||
'Créer un portefeuille',
|
||||
style:
|
||||
TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||
child: Text(
|
||||
'createWallet'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 24, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -576,7 +577,7 @@ Widget welcomeHome(context) {
|
|||
);
|
||||
},
|
||||
child: Text(
|
||||
"Restaurer mes portefeuilles",
|
||||
"restoreWallet".tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 24,
|
||||
color: orangeC,
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:durt/durt.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
@ -63,7 +64,7 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
|
|||
),
|
||||
const SizedBox(height: 80),
|
||||
Text(
|
||||
'Choisissez un code secret autogénéré :',
|
||||
'choosePassword'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 17.0,
|
||||
|
@ -126,9 +127,9 @@ class ChangePinScreen extends StatelessWidget with ChangeNotifier {
|
|||
Navigator.pop(context);
|
||||
}
|
||||
},
|
||||
child: const Text(
|
||||
'Confirmer',
|
||||
style: TextStyle(fontSize: 28),
|
||||
child: Text(
|
||||
'confirm'.tr(),
|
||||
style: const TextStyle(fontSize: 28),
|
||||
),
|
||||
),
|
||||
)
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
|
@ -93,7 +94,7 @@ class ChestOptions extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 15),
|
||||
Text(
|
||||
'Afficher ma phrase de restauration',
|
||||
'displayMnemonic'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
color: orangeC,
|
||||
|
@ -136,7 +137,7 @@ class ChestOptions extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 18),
|
||||
Text(
|
||||
'Changer mon code secret',
|
||||
'changePassword'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
color: _sub.nodeConnected
|
||||
|
@ -172,7 +173,7 @@ class ChestOptions extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 25),
|
||||
Text(
|
||||
'Créer une autre dérivation',
|
||||
'createDerivation'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
color: _sub.nodeConnected
|
||||
|
@ -198,9 +199,9 @@ class ChestOptions extends StatelessWidget {
|
|||
height: 45,
|
||||
),
|
||||
const SizedBox(width: 20),
|
||||
const Text(
|
||||
'Supprimer ce coffre',
|
||||
style: TextStyle(
|
||||
Text(
|
||||
'deleteChest'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 20,
|
||||
color: Color(0xffD80000),
|
||||
),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/providers/my_wallets.dart';
|
||||
|
@ -35,9 +36,9 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Sélectionner mon coffre'),
|
||||
child: Text('selectMyChest'.tr()),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
|
@ -140,7 +141,7 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
}
|
||||
},
|
||||
child: Text(
|
||||
'Ouvrir ce coffre',
|
||||
'openThisChest'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color: backgroundColor,
|
||||
|
@ -166,7 +167,7 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
width: 400,
|
||||
height: 50,
|
||||
child: Center(
|
||||
child: Text('Créer un nouveau coffre',
|
||||
child: Text('createChest'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color: orangeC,
|
||||
|
@ -189,7 +190,7 @@ class _ChooseChestState extends State<ChooseChest> {
|
|||
width: 400,
|
||||
height: 50,
|
||||
child: Center(
|
||||
child: Text('Importer un coffre',
|
||||
child: Text('importChest'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color: orangeC,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -28,9 +29,9 @@ class ChooseWalletScreen extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Choix du portefeuille source'),
|
||||
child: Text('choiceOfSourceWallet'.tr()),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Stack(children: [
|
||||
|
@ -58,10 +59,10 @@ class ChooseWalletScreen extends StatelessWidget {
|
|||
Navigator.pop(context);
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: const Text(
|
||||
'Choisir ce portefeuille',
|
||||
style:
|
||||
TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||
child: Text(
|
||||
'chooseThisWallet'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 24, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -50,16 +51,16 @@ class _CustomDerivationState extends State<CustomDerivation> {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Créer une dérivation personnalisé'),
|
||||
child: Text('createCustomDerivation'.tr()),
|
||||
)),
|
||||
body: Center(
|
||||
child: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
const Spacer(),
|
||||
const Text(
|
||||
'Choisissez une dérivation:',
|
||||
Text(
|
||||
'chooseDerivation'.tr(),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(
|
||||
|
@ -124,8 +125,8 @@ class _CustomDerivationState extends State<CustomDerivation> {
|
|||
}
|
||||
|
||||
if (_pin != null || _myWalletProvider.pinCode != '') {
|
||||
String _newDerivationName =
|
||||
'Portefeuille ${_myWalletProvider.listWallets.last.number! + 2}';
|
||||
String _newDerivationName = 'wallet'.tr() +
|
||||
' ${_myWalletProvider.listWallets.last.number! + 2}';
|
||||
if (dropdownValue == 'root') {
|
||||
await _myWalletProvider.generateRootWallet(
|
||||
context, 'Portefeuille racine');
|
||||
|
@ -146,9 +147,10 @@ class _CustomDerivationState extends State<CustomDerivation> {
|
|||
// );
|
||||
}
|
||||
},
|
||||
child: const Text(
|
||||
'Valider',
|
||||
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||
child: Text(
|
||||
'validate'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 24, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -24,7 +24,7 @@ class ManageMembership extends StatelessWidget {
|
|||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
height: 22,
|
||||
child: Text('Gérer mon adhésion'),
|
||||
child: Text('manageMembership'),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'package:bubble/bubble.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -43,15 +44,14 @@ class RestoreChest extends StatelessWidget {
|
|||
genW.resetImportView();
|
||||
Navigator.of(context).pop();
|
||||
}),
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Restaurer un coffre'),
|
||||
child: Text('restoreAChest'.tr()),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
SizedBox(height: isTall ? 30 : 15),
|
||||
bubbleSpeak(
|
||||
'Pour restaurer vos portefeuilles Gecko, rentrez dans les champs ci-dessous les 12 mots qui constituent votre phrase de restauration :'),
|
||||
bubbleSpeak('toRestoreEnterMnemonic'.tr()),
|
||||
SizedBox(height: isTall ? 30 : 15),
|
||||
Column(children: <Widget>[
|
||||
Row(
|
||||
|
@ -112,10 +112,10 @@ class RestoreChest extends StatelessWidget {
|
|||
await badMnemonicPopup(context);
|
||||
}
|
||||
},
|
||||
child: const Text(
|
||||
'Restaurer ce coffre',
|
||||
style:
|
||||
TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||
child: Text(
|
||||
'restoreThisChest'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 24, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -137,16 +137,16 @@ class RestoreChest extends StatelessWidget {
|
|||
genW.pasteMnemonic(context);
|
||||
},
|
||||
child: Row(
|
||||
children: const [
|
||||
Icon(
|
||||
children: [
|
||||
const Icon(
|
||||
Icons.content_paste_go,
|
||||
size: 25,
|
||||
),
|
||||
SizedBox(width: 10),
|
||||
const SizedBox(width: 10),
|
||||
Text(
|
||||
'Coller depuis le\npresse-papier',
|
||||
'pasteFromClipboard'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
style: const TextStyle(
|
||||
fontSize: 17, fontWeight: FontWeight.w400),
|
||||
),
|
||||
],
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:typed_data';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -35,9 +36,9 @@ class ShowSeed extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Ma phrase de restauration'),
|
||||
child: Text('myMnemonic'.tr()),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
|
@ -64,13 +65,7 @@ class ShowSeed extends StatelessWidget {
|
|||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Column(children: [
|
||||
common.buildText(
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Tâchez de garder cette phrase bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.'),
|
||||
],
|
||||
),
|
||||
common.buildText('keepYourMnemonicSecret'.tr()),
|
||||
SizedBox(height: 35 * ratio),
|
||||
sentanceArray(context, _seed.data!.split(' ')),
|
||||
const SizedBox(height: 20),
|
||||
|
@ -97,7 +92,7 @@ class ShowSeed extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 7),
|
||||
Text(
|
||||
'Copier',
|
||||
'copy'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 15, color: Colors.grey[50]),
|
||||
)
|
||||
|
@ -136,7 +131,7 @@ class ShowSeed extends StatelessWidget {
|
|||
Navigator.pop(context);
|
||||
},
|
||||
child: Text(
|
||||
'Fermer',
|
||||
'close'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 23 * ratio, fontWeight: FontWeight.w600),
|
||||
),
|
||||
|
@ -237,11 +232,11 @@ class PrintWallet extends StatelessWidget {
|
|||
backgroundColor: yellowC,
|
||||
foregroundColor: Colors.black,
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Imprimer ma phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'printMyMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -17,9 +18,9 @@ class TransactionCommentScreen extends StatelessWidget {
|
|||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Confirmer le paiement'),
|
||||
child: Text('confirmPayment'.tr()),
|
||||
),
|
||||
),
|
||||
body: SafeArea(
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// ignore_for_file: avoid_print
|
||||
|
||||
import 'dart:async';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
import 'package:gecko/providers/substrate_sdk.dart';
|
||||
|
@ -90,11 +91,11 @@ class UnlockingWallet extends StatelessWidget {
|
|||
)),
|
||||
]),
|
||||
SizedBox(height: 30 * ratio),
|
||||
const SizedBox(
|
||||
SizedBox(
|
||||
width: 400,
|
||||
child: Text(
|
||||
'Pour déverrouiller votre coffre, composez votre code secret à l’abri des lézards indiscrets :',
|
||||
style: TextStyle(
|
||||
'toUnlockEnterPassword'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 19,
|
||||
color: Colors.black,
|
||||
fontWeight: FontWeight.w400),
|
||||
|
@ -118,7 +119,7 @@ class UnlockingWallet extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'Garder ce code en mémoire 15 minutes',
|
||||
'rememberPassword'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 16, color: Colors.grey[700]),
|
||||
),
|
||||
|
@ -142,7 +143,7 @@ class UnlockingWallet extends StatelessWidget {
|
|||
height: 50,
|
||||
child: Center(
|
||||
child: Text(
|
||||
'Changer de coffre',
|
||||
'changeChest'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color: orangeC,
|
||||
|
@ -200,7 +201,8 @@ class UnlockingWallet extends StatelessWidget {
|
|||
animationType: AnimationType.fade,
|
||||
validator: (v) {
|
||||
if (v!.length < _pinLenght) {
|
||||
return "Votre code PIN fait $_pinLenght caractères";
|
||||
return "yourPasswordLengthIsX"
|
||||
.tr(args: [_pinLenght.toString()]);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/providers/duniter_indexer.dart';
|
||||
|
@ -306,7 +307,7 @@ class WalletOptions extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 7),
|
||||
Text(
|
||||
'Copier',
|
||||
'copy'.tr(),
|
||||
style: TextStyle(fontSize: 15, color: Colors.grey[50]),
|
||||
)
|
||||
]),
|
||||
|
@ -351,8 +352,9 @@ class WalletOptions extends StatelessWidget {
|
|||
height: 45,
|
||||
),
|
||||
const SizedBox(width: 22),
|
||||
const Text('Activité',
|
||||
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500)),
|
||||
Text("displayActivity".tr(),
|
||||
style:
|
||||
const TextStyle(fontSize: 20, fontWeight: FontWeight.w500)),
|
||||
]),
|
||||
),
|
||||
);
|
||||
|
@ -382,7 +384,7 @@ class WalletOptions extends StatelessWidget {
|
|||
height: 45,
|
||||
),
|
||||
const SizedBox(width: 22),
|
||||
const Text('Gérer mon adhésion', style: TextStyle(fontSize: 20)),
|
||||
Text('manageMembership'.tr(), style: const TextStyle(fontSize: 20)),
|
||||
]),
|
||||
),
|
||||
);
|
||||
|
@ -420,8 +422,8 @@ class WalletOptions extends StatelessWidget {
|
|||
const SizedBox(width: 22),
|
||||
Text(
|
||||
walletProvider.isDefaultWallet
|
||||
? 'Ce portefeuille est celui par defaut'
|
||||
: 'Définir comme portefeuille par défaut',
|
||||
? 'thisWalletIsDefault'.tr()
|
||||
: 'defineWalletAsDefault'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
color: walletProvider.isDefaultWallet
|
||||
|
@ -488,9 +490,9 @@ class WalletOptions extends StatelessWidget {
|
|||
height: 45,
|
||||
),
|
||||
const SizedBox(width: 19),
|
||||
const Text('Supprimer ce portefeuille',
|
||||
style:
|
||||
TextStyle(fontSize: 20, color: Color(0xffD80000))),
|
||||
Text('deleteThisWallet'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 20, color: Color(0xffD80000))),
|
||||
])
|
||||
: const SizedBox(width: 30),
|
||||
);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:io';
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:gecko/models/chest_data.dart';
|
||||
|
@ -97,9 +98,9 @@ class WalletsHome extends StatelessWidget {
|
|||
return ChestOptions(walletProvider: _myWalletProvider);
|
||||
}),
|
||||
),
|
||||
label: const Text(
|
||||
" Paramétrer ce coffre",
|
||||
style: TextStyle(
|
||||
label: Text(
|
||||
" " + "manageChest".tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 22,
|
||||
fontWeight: FontWeight.w700,
|
||||
color: Color(0xff8a3c0f),
|
||||
|
@ -108,7 +109,7 @@ class WalletsHome extends StatelessWidget {
|
|||
)),
|
||||
const SizedBox(height: 30),
|
||||
InkWell(
|
||||
key: const Key('createNewChest'),
|
||||
key: const Key('changeChest'),
|
||||
onTap: () {
|
||||
Navigator.push(
|
||||
context,
|
||||
|
@ -121,7 +122,7 @@ class WalletsHome extends StatelessWidget {
|
|||
width: 400,
|
||||
height: 50,
|
||||
child: Center(
|
||||
child: Text('Changer de coffre',
|
||||
child: Text('changeChest'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22,
|
||||
color: orangeC,
|
||||
|
@ -360,7 +361,7 @@ class WalletsHome extends StatelessWidget {
|
|||
Provider.of<MyWalletsProvider>(context);
|
||||
|
||||
String _newDerivationName =
|
||||
'Portefeuille ${_myWalletProvider.listWallets.last.number! + 2}';
|
||||
'wallet'.tr() + ' ${_myWalletProvider.listWallets.last.number! + 2}';
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: ClipRRect(
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// ignore_for_file: file_names
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -16,11 +17,11 @@ class OnboardingStepOne extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Nouveau portefeuille',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'newWallet'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -28,20 +29,13 @@ class OnboardingStepOne extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text: 'Gecko fabrique votre portefeuille à partir d’une '),
|
||||
const TextSpan(
|
||||
text: 'phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
const TextSpan(
|
||||
text:
|
||||
'. Elle est un peu comme le plan qui permet de construire votre portefeuille.'),
|
||||
],
|
||||
'geckoGenerateYourWalletFromMnemonic'.tr(),
|
||||
'fabrication-de-portefeuille.png',
|
||||
'>',
|
||||
const OnboardingStepTwo(),
|
||||
0),
|
||||
0,
|
||||
isMd: true,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'dart:async';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -38,11 +39,11 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Mon code secret',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'myPassword'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -52,12 +53,7 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildProgressBar(9),
|
||||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildText(<TextSpan>[
|
||||
TextSpan(
|
||||
text:
|
||||
"Gecko va vérifier avec vous si vous avez bien mémorisé votre code secret.\n\nTapez votre code secret dans le champ ci-dessous pour vérifier que vous l’avez bien noté.",
|
||||
style: TextStyle(fontSize: 16 * ratio))
|
||||
]),
|
||||
common.buildText("geckoWillCheckPassword".tr()),
|
||||
SizedBox(height: isTall ? 80 : 20),
|
||||
Visibility(
|
||||
visible: _generateWalletProvider.scanedWalletNumber != -1,
|
||||
|
@ -107,7 +103,7 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(width: 8),
|
||||
Text(
|
||||
'Garder ce code en mémoire 15 minutes',
|
||||
'rememberPassword'.tr(),
|
||||
style:
|
||||
TextStyle(fontSize: 16, color: Colors.grey[700]),
|
||||
),
|
||||
|
@ -153,7 +149,7 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
animationType: AnimationType.fade,
|
||||
validator: (v) {
|
||||
if (v!.length < _pinLenght) {
|
||||
return "Votre code PIN fait $_pinLenght caractères";
|
||||
return "yourPasswordLengthIsX".tr(args: [_pinLenght.toString()]);
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
|
@ -206,7 +202,7 @@ class OnboardingStepTen extends StatelessWidget {
|
|||
chest: configBox.get('currentChest'),
|
||||
address: address,
|
||||
number: 0,
|
||||
name: 'Mon portefeuille courant',
|
||||
name: 'currentWallet'.tr(),
|
||||
derivation: 2,
|
||||
imageDefaultPath: '0.png');
|
||||
await walletBox.add(myWallet);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -19,11 +20,11 @@ class OnboardingStepEleven extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'C’est tout bon !',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'allGood'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -31,12 +32,7 @@ class OnboardingStepEleven extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: Column(children: <Widget>[
|
||||
const SizedBox(height: 40),
|
||||
common.buildText(<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
"Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !",
|
||||
)
|
||||
]),
|
||||
common.buildText("yourChestAndWalletWereCreatedSuccessfully".tr()),
|
||||
SizedBox(height: isTall ? 20 : 10),
|
||||
Image.asset(
|
||||
'assets/onBoarding/gecko-clin.gif',
|
||||
|
@ -73,7 +69,7 @@ Widget finishButton(BuildContext context) {
|
|||
ModalRoute.withName('/'),
|
||||
);
|
||||
},
|
||||
child: Text("Accéder à mon coffre",
|
||||
child: Text("accessMyChest".tr(),
|
||||
style:
|
||||
TextStyle(fontSize: 22 * ratio, fontWeight: FontWeight.w600))),
|
||||
);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -18,11 +19,11 @@ class OnboardingStepTwo extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Votre phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'yourMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -30,11 +31,7 @@ class OnboardingStepTwo extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Conservez cette phrase précieusement, car sans elle Gecko ne pourra pas reconstruire vos portefeuilles le jour où vous changez de téléphone.'),
|
||||
],
|
||||
'keepThisMnemonicSecure'.tr(),
|
||||
'fabrication-de-portefeuille-impossible-sans-phrase.png',
|
||||
'>',
|
||||
const OnboardingStepThree(),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -18,27 +19,18 @@ class OnboardingStepThree extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Votre phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'yourMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
extendBodyBehindAppBar: true,
|
||||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Dans une blockchain, pas de procédure de récupération par mail. Seule votre phrase de restauration peut vous permettre de récupérer vos Ğ1 à tout moment.'),
|
||||
],
|
||||
'mot-de-passe-oublie.png',
|
||||
'>',
|
||||
const OnboardingStepFor(),
|
||||
2),
|
||||
child: common.infoIntro(context, 'warningForgotPassword'.tr(),
|
||||
'forgot_password.png'.tr(), '>', const OnboardingStepFor(), 2),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -18,11 +19,11 @@ class OnboardingStepFor extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Votre phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'yourMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -30,18 +31,12 @@ class OnboardingStepFor extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(text: 'Il est temps de vous munir d’'),
|
||||
const TextSpan(
|
||||
text: 'un d’un papier et d’un crayon',
|
||||
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
const TextSpan(
|
||||
text: ' afin de pouvoir noter votre phrase de restauration.'),
|
||||
],
|
||||
'gecko-oublie-aussi.png',
|
||||
'itsTimeToUseAPenAndPaper'.tr(),
|
||||
'gecko_also_can_forget.png'.tr(),
|
||||
'>',
|
||||
const OnboardingStepFive(),
|
||||
3),
|
||||
3,
|
||||
isMd: true),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -37,11 +38,11 @@ class _ChooseChestState extends State<OnboardingStepFive> {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Votre phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'yourMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -51,13 +52,7 @@ class _ChooseChestState extends State<OnboardingStepFive> {
|
|||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildProgressBar(4),
|
||||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildText(
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Gecko a généré votre phrase de restauration ! Tâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.'),
|
||||
],
|
||||
),
|
||||
common.buildText('geckoGeneratedYourMnemonicKeepItSecret'.tr()),
|
||||
SizedBox(height: 35 * ratio),
|
||||
sentanceArray(context),
|
||||
SizedBox(height: 17 * ratio),
|
||||
|
@ -93,7 +88,8 @@ class _ChooseChestState extends State<OnboardingStepFive> {
|
|||
// _generateWalletProvider.reloadBuild();
|
||||
setState(() {});
|
||||
},
|
||||
child: Text("Choisir une autre phrase",
|
||||
child: Text("chooseAnotherMnemonic".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: 22 * ratio,
|
||||
fontWeight: FontWeight.w600))),
|
||||
|
@ -101,7 +97,7 @@ class _ChooseChestState extends State<OnboardingStepFive> {
|
|||
),
|
||||
),
|
||||
SizedBox(height: 22 * ratio),
|
||||
nextButton(context, "J'ai noté ma phrase", false, widget.skipIntro),
|
||||
nextButton(context, "iNotedMyMnemonic".tr(), false, widget.skipIntro),
|
||||
SizedBox(height: 35 * ratio),
|
||||
]),
|
||||
),
|
||||
|
@ -204,7 +200,7 @@ class PrintWallet extends StatelessWidget {
|
|||
title: const SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Imprimer ma phrase de restauration',
|
||||
'printMyMnemonic',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
// ignore_for_file: file_names
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -41,11 +42,11 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
extendBodyBehindAppBar: true,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Votre phrase de restauration',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'yourMnemonic'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -57,20 +58,10 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
common.buildProgressBar(5),
|
||||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildText(
|
||||
<TextSpan>[
|
||||
TextSpan(
|
||||
text:
|
||||
"Avez-vous bien noté votre phrase de restauration ?\n\nPour en être sûr, veuillez taper dans le champ ci-dessous le ",
|
||||
style: TextStyle(fontSize: 16 * ratio)),
|
||||
TextSpan(
|
||||
text: '${_generateWalletProvider.nbrWord + 1}ème mot',
|
||||
style: TextStyle(
|
||||
fontWeight: FontWeight.bold, fontSize: 16 * ratio)),
|
||||
TextSpan(
|
||||
text: " de votre phrase de restauration :",
|
||||
style: TextStyle(fontSize: 16 * ratio)),
|
||||
],
|
||||
),
|
||||
"didYouNoteMnemonicToBeSureTypeWord".tr(
|
||||
args: [(_generateWalletProvider.nbrWord + 1).toString()]),
|
||||
20,
|
||||
true),
|
||||
SizedBox(height: isTall ? 70 : 20),
|
||||
Text('${_generateWalletProvider.nbrWord + 1}',
|
||||
key: const Key('askedWord'),
|
||||
|
@ -105,8 +96,9 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
color: Colors.grey[500],
|
||||
fontWeight: FontWeight.w500),
|
||||
labelText: _generateWalletProvider.isAskedWordValid
|
||||
? "C'est le bon mot !"
|
||||
: "${_generateWalletProvider.nbrWordAlpha} mot de votre phrase de restauration",
|
||||
? "itsTheGoodWord".tr()
|
||||
: "${_generateWalletProvider.nbrWordAlpha} " +
|
||||
"nthMnemonicWord".tr(),
|
||||
fillColor: const Color(0xffeeeedd),
|
||||
filled: true,
|
||||
contentPadding: const EdgeInsets.all(12),
|
||||
|
@ -122,7 +114,7 @@ class OnboardingStepSix extends StatelessWidget {
|
|||
alignment: Alignment.bottomCenter,
|
||||
child: nextButton(
|
||||
context,
|
||||
'Continuer',
|
||||
'continue'.tr(),
|
||||
skipIntro
|
||||
? const OnboardingStepNine()
|
||||
: const OnboardingStepSeven(),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// ignore_for_file: file_names
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -18,11 +19,11 @@ class OnboardingStepSeven extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Mon code secret',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'myPassword'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -30,11 +31,7 @@ class OnboardingStepSeven extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Gecko va maintenant générer pour vous un code secret court qui vous permettra d’accéder rapidement à vos portefeuilles, sans avoir à taper votre phrase de restauration à chaque fois.'),
|
||||
],
|
||||
'geckoWillGenerateAPassword'.tr(),
|
||||
'coffre-fort-code-secret-dans-telephone.png',
|
||||
'>',
|
||||
OnboardingStepEight(scanDerivation: scanDerivation),
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// ignore_for_file: file_names
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -18,11 +19,11 @@ class OnboardingStepEight extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Mon code secret',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'myPassword'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -30,21 +31,12 @@ class OnboardingStepEight extends StatelessWidget {
|
|||
body: SafeArea(
|
||||
child: common.infoIntro(
|
||||
context,
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
'Ce code secret protège vos portefeuilles dans un coffre-fort '),
|
||||
const TextSpan(
|
||||
text: 'dont vous seul possédez le code',
|
||||
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
const TextSpan(
|
||||
text:
|
||||
', de sorte que vos portefeuilles seront inutilisables par d’autres.'),
|
||||
],
|
||||
'thisPasswordProtectsYourWalletsInASecureChest'.tr(),
|
||||
'coffre-fort-protege-les-portefeuilles.png',
|
||||
'>',
|
||||
OnboardingStepNine(scanDerivation: scanDerivation),
|
||||
7),
|
||||
7,
|
||||
isMd: true),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
// ignore_for_file: file_names
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
|
@ -30,11 +31,11 @@ class OnboardingStepNine extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text(
|
||||
'Mon code secret',
|
||||
style: TextStyle(fontWeight: FontWeight.w600),
|
||||
'myPassword'.tr(),
|
||||
style: const TextStyle(fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -45,18 +46,9 @@ class OnboardingStepNine extends StatelessWidget {
|
|||
common.buildProgressBar(8),
|
||||
SizedBox(height: isTall ? 40 : 20),
|
||||
common.buildText(
|
||||
<TextSpan>[
|
||||
const TextSpan(
|
||||
text:
|
||||
"Et voilà votre code secret !\n\nMémorisez-le ou notez-le, car il vous sera demandé "),
|
||||
const TextSpan(
|
||||
text: 'à chaque fois',
|
||||
style: TextStyle(fontWeight: FontWeight.bold)),
|
||||
const TextSpan(
|
||||
text:
|
||||
" que vous voudrez effectuer un paiement sur cet appareil."),
|
||||
],
|
||||
),
|
||||
"hereIsThePasswordKeepIt".tr(),
|
||||
20,
|
||||
true),
|
||||
const SizedBox(height: 100),
|
||||
Stack(
|
||||
alignment: Alignment.centerRight,
|
||||
|
@ -98,13 +90,13 @@ class OnboardingStepNine extends StatelessWidget {
|
|||
onPressed: () {
|
||||
_generateWalletProvider.changePinCode(reload: true);
|
||||
},
|
||||
child: Text("Choisir un autre code secret",
|
||||
child: Text("chooseAnotherPassword".tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 22 * ratio,
|
||||
fontWeight: FontWeight.w600))),
|
||||
))),
|
||||
SizedBox(height: 22 * ratio),
|
||||
common.nextButton(context, "J'ai noté mon code secret",
|
||||
common.nextButton(context, "iNotedMyPassword".tr(),
|
||||
OnboardingStepTen(scanDerivation: scanDerivation), false),
|
||||
SizedBox(height: 35 * ratio),
|
||||
]),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -31,9 +32,9 @@ class SearchScreen extends StatelessWidget {
|
|||
appBar: AppBar(
|
||||
elevation: 1,
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Rechercher'),
|
||||
child: Text('search'.tr()),
|
||||
),
|
||||
leading: IconButton(
|
||||
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||
|
@ -105,9 +106,10 @@ class SearchScreen extends StatelessWidget {
|
|||
);
|
||||
}
|
||||
: null,
|
||||
child: const Text(
|
||||
'Rechercher',
|
||||
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
||||
child: Text(
|
||||
'search'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 24, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -38,9 +39,9 @@ class SearchResultScreen extends StatelessWidget {
|
|||
appBar: AppBar(
|
||||
elevation: 1,
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Résultats de votre recherche'),
|
||||
child: Text('researchResults'.tr()),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: _homeProvider.bottomAppBar(context),
|
||||
|
@ -59,8 +60,8 @@ class SearchResultScreen extends StatelessWidget {
|
|||
color: Colors.grey[700],
|
||||
),
|
||||
children: <TextSpan>[
|
||||
const TextSpan(
|
||||
text: "Résultats pour ",
|
||||
TextSpan(
|
||||
text: "resultsFor".tr(),
|
||||
),
|
||||
TextSpan(
|
||||
text: '"${_searchProvider.searchController.text}"',
|
||||
|
@ -71,7 +72,7 @@ class SearchResultScreen extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 40),
|
||||
Text(
|
||||
'Dans la blockchain $currencyName',
|
||||
'inBlockchainResult'.tr(args: [currencyName]),
|
||||
style: const TextStyle(fontSize: 20),
|
||||
),
|
||||
const SizedBox(height: 20),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:durt/durt.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
@ -39,9 +40,9 @@ class SettingsScreen extends StatelessWidget {
|
|||
backgroundColor: backgroundColor,
|
||||
appBar: AppBar(
|
||||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Paramètres'),
|
||||
child: Text('parameters'.tr()),
|
||||
)),
|
||||
body: Column(
|
||||
// crossAxisAlignment: CrossAxisAlignment.start,
|
||||
|
@ -52,7 +53,8 @@ class SettingsScreen extends StatelessWidget {
|
|||
log.d(_sub.sdk.api.connectedNode?.endpoint);
|
||||
return Expanded(
|
||||
child: Row(children: [
|
||||
Text(' Noeud $currencyName :'),
|
||||
const SizedBox(width: 10),
|
||||
Text('currencyNode'.tr(args: [currencyName])),
|
||||
const Spacer(),
|
||||
Icon(_sub.nodeConnected && !_sub.isLoadingEndpoint
|
||||
? Icons.check
|
||||
|
@ -97,9 +99,9 @@ class SettingsScreen extends StatelessWidget {
|
|||
log.i('Oublier tous mes coffres');
|
||||
await _myWallets.deleteAllWallet(context);
|
||||
},
|
||||
child: const Text(
|
||||
'Oublier tous mes coffres',
|
||||
style: TextStyle(
|
||||
child: Text(
|
||||
'forgetAllMyChests'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: fontSize + 4,
|
||||
color: Color(0xffD80000),
|
||||
fontWeight: FontWeight.w600,
|
||||
|
|
|
@ -21,7 +21,7 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
toolbarHeight: 60 * ratio,
|
||||
title: const SizedBox(
|
||||
height: 22,
|
||||
child: Text('Substrate Sandbox'),
|
||||
child: Text('⏳ Substrate Sandbox'),
|
||||
),
|
||||
),
|
||||
body: SafeArea(
|
||||
|
@ -36,12 +36,12 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
await _sub.connectNode(context);
|
||||
},
|
||||
child: Text(
|
||||
'Noeud connecté ?: ${_sub.nodeConnected} (${_sub.sdk.api.connectedNode?.endpoint})')),
|
||||
'🌐 Noeud connecté ?: ${_sub.nodeConnected} (${_sub.sdk.api.connectedNode?.endpoint})')),
|
||||
if (_sub.nodeConnected)
|
||||
Text('Noeud "$currencyName", bloc N°${_sub.blocNumber}'),
|
||||
Text('🏆 Noeud "$currencyName", bloc N°${_sub.blocNumber}'),
|
||||
const SizedBox(height: 20),
|
||||
Row(children: [
|
||||
const Text('Liste des coffres:'),
|
||||
const Text('💳 Liste des coffres:'),
|
||||
const Spacer(),
|
||||
InkWell(
|
||||
child: Image.asset(
|
||||
|
@ -93,13 +93,13 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
addressInfo.address!,
|
||||
2,
|
||||
_sub.keystorePassword.text),
|
||||
child: const Text("Dériver"),
|
||||
child: const Text("🏂 Dériver"),
|
||||
)
|
||||
])
|
||||
]);
|
||||
}),
|
||||
const SizedBox(height: 20),
|
||||
const Text('Mot de passe du coffre:'),
|
||||
const Text('🔒 Mot de passe du coffre:'),
|
||||
TextField(
|
||||
controller: _sub.keystorePassword,
|
||||
obscureText: true,
|
||||
|
@ -130,7 +130,7 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
}
|
||||
: null,
|
||||
child: const Text(
|
||||
'Importer depuis le presse-papier',
|
||||
'📎 Importer depuis le presse-papier',
|
||||
style: TextStyle(fontSize: 20),
|
||||
),
|
||||
),
|
||||
|
@ -149,7 +149,7 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
snack(context, 'Le mnemonic a été copié');
|
||||
},
|
||||
child: const Text(
|
||||
"Générer un mnemonic et le copier",
|
||||
"🏦 Générer un mnemonic et le copier",
|
||||
style: TextStyle(fontSize: 20),
|
||||
),
|
||||
),
|
||||
|
@ -161,7 +161,7 @@ class SubstrateSandBox extends StatelessWidget {
|
|||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
const Text('--------'),
|
||||
const Text('-〰️---〰️---〰️-'),
|
||||
const SizedBox(height: 10),
|
||||
Text(_sub.debugConnection)
|
||||
])
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -39,44 +40,44 @@ class TransactionInProgress extends StatelessWidget {
|
|||
switch (transType) {
|
||||
case 'pay':
|
||||
{
|
||||
_actionName = 'Transaction';
|
||||
_actionName = 'transaction'.tr();
|
||||
}
|
||||
break;
|
||||
case 'cert':
|
||||
{
|
||||
_actionName = 'Certification';
|
||||
_actionName = 'certification'.tr();
|
||||
}
|
||||
break;
|
||||
case 'comfirmIdty':
|
||||
{
|
||||
_actionName = "Confirmation d'identité";
|
||||
_actionName = "identityConfirm".tr();
|
||||
}
|
||||
break;
|
||||
case 'revokeIdty':
|
||||
{
|
||||
_actionName = "Révocation d'adhésion";
|
||||
_actionName = "revokeAdhesion".tr();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
_actionName = 'Transaction étrange';
|
||||
_actionName = 'strangeTransaction'.tr();
|
||||
}
|
||||
}
|
||||
|
||||
switch (_result) {
|
||||
case '':
|
||||
{
|
||||
_resultText = 'Envoi en cours ...';
|
||||
_resultText = 'sending'.tr();
|
||||
}
|
||||
break;
|
||||
case 'Ready':
|
||||
{
|
||||
_resultText = 'En cours de propagation...';
|
||||
_resultText = 'propagating'.tr();
|
||||
}
|
||||
break;
|
||||
case 'Broadcast':
|
||||
{
|
||||
_resultText = 'En cours de validation ...';
|
||||
_resultText = 'validating'.tr();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -86,10 +87,10 @@ class TransactionInProgress extends StatelessWidget {
|
|||
log.d(_result);
|
||||
if (_result.contains('blockHash: ')) {
|
||||
isValid = true;
|
||||
_resultText = '$_actionName validé !';
|
||||
_resultText = 'extrinsicValidated'.tr(args: [_actionName]);
|
||||
} else {
|
||||
isValid = false;
|
||||
_resultText = "Une erreur s'est produite:\n";
|
||||
_resultText = "anErrorOccured".tr() + ":\n";
|
||||
final List _exceptionSplit = _result.split('Exception: ');
|
||||
String _exception;
|
||||
if (_exceptionSplit.length > 1) {
|
||||
|
@ -102,37 +103,33 @@ class TransactionInProgress extends StatelessWidget {
|
|||
case 'cert.NotRespectCertPeriod':
|
||||
case 'identity.CreatorNotAllowedToCreateIdty':
|
||||
{
|
||||
_resultText =
|
||||
"Vous devez attendre 24h entre chaque certification";
|
||||
_resultText = "24hbetweenCerts".tr();
|
||||
}
|
||||
break;
|
||||
case 'cert.CannotCertifySelf':
|
||||
{
|
||||
_resultText =
|
||||
"Vous ne pouvez pas vous certifier\nvous même ...";
|
||||
_resultText = "canNotCertifySelf".tr();
|
||||
}
|
||||
break;
|
||||
case 'identity.IdtyNameAlreadyExist':
|
||||
{
|
||||
_resultText = "Ce nom est déjà pris";
|
||||
_resultText = "nameAlreadyExist".tr();
|
||||
}
|
||||
break;
|
||||
case 'balances.KeepAlive':
|
||||
{
|
||||
_resultText =
|
||||
"Vous devez garder au moins 2ĞD sur votre compte pour le garder actif";
|
||||
_resultText = "2GDtoKeepAlive".tr();
|
||||
}
|
||||
break;
|
||||
case '1010: Invalid Transaction: Inability to pay some fees , e.g. account balance too low':
|
||||
{
|
||||
_resultText =
|
||||
"Vous devez alimenter ce compte avant\nde pouvoir l'utiliser";
|
||||
_resultText = "youHaveToFeedThisAccountBeforeUsing".tr();
|
||||
}
|
||||
break;
|
||||
|
||||
case 'timeout':
|
||||
{
|
||||
_resultText += "Le délais d'éxecution est dépassé";
|
||||
_resultText += "execTimeoutOver".tr();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
@ -162,7 +159,9 @@ class TransactionInProgress extends StatelessWidget {
|
|||
height: 22,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: <Widget>[Text('$_actionName en cours')]),
|
||||
children: <Widget>[
|
||||
Text('extrinsicInProgress'.tr(args: [_actionName]))
|
||||
]),
|
||||
)),
|
||||
body: SafeArea(
|
||||
child: Align(
|
||||
|
@ -189,10 +188,10 @@ class TransactionInProgress extends StatelessWidget {
|
|||
fontSize: 18, fontWeight: FontWeight.w600),
|
||||
),
|
||||
if (transType == 'pay') const SizedBox(height: 10),
|
||||
const Text(
|
||||
'de',
|
||||
Text(
|
||||
'fromMinus'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
),
|
||||
Text(
|
||||
from,
|
||||
|
@ -201,10 +200,10 @@ class TransactionInProgress extends StatelessWidget {
|
|||
fontSize: 18, fontWeight: FontWeight.w600),
|
||||
),
|
||||
const SizedBox(height: 10),
|
||||
const Text(
|
||||
'vers',
|
||||
Text(
|
||||
'toMinus'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(fontSize: 18),
|
||||
style: const TextStyle(fontSize: 18),
|
||||
),
|
||||
Text(
|
||||
to,
|
||||
|
@ -263,7 +262,7 @@ class TransactionInProgress extends StatelessWidget {
|
|||
if (transType == 'pay') Navigator.pop(context);
|
||||
},
|
||||
child: Text(
|
||||
'Fermer',
|
||||
'close'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 23 * ratio,
|
||||
fontWeight: FontWeight.w600),
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:gecko/globals.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -69,9 +70,9 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
],
|
||||
title: const SizedBox(
|
||||
title: SizedBox(
|
||||
height: 22,
|
||||
child: Text('Voir un portefeuille'),
|
||||
child: Text('seeAWallet'.tr()),
|
||||
),
|
||||
),
|
||||
bottomNavigationBar: _homeProvider.bottomAppBar(context),
|
||||
|
@ -112,7 +113,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 9),
|
||||
Text(
|
||||
"Voir\nl'activité",
|
||||
"displayNActivity".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
||||
|
@ -136,33 +137,36 @@ class WalletViewScreen extends StatelessWidget {
|
|||
final int _seconds = _durationSeconds.inSeconds;
|
||||
final int _minutes = _durationSeconds.inMinutes;
|
||||
|
||||
// TODO translate timing
|
||||
if (_seconds <= 0) {
|
||||
_duration = '0 secondes';
|
||||
_duration = 'seconds'.tr(args: ['0']);
|
||||
} else if (_seconds <= 60) {
|
||||
_duration = '$_seconds secondes';
|
||||
_duration = 'seconds'.tr(args: [_seconds.toString()]);
|
||||
} else if (_seconds <= 3600) {
|
||||
_duration = '$_minutes minutes';
|
||||
_duration = 'minutes'.tr(args: [_minutes.toString()]);
|
||||
} else if (_seconds <= 86400) {
|
||||
final int _hours = _durationSeconds.inHours;
|
||||
final int _minutesLeft = _minutes - _hours * 60;
|
||||
String _showMinutes = '';
|
||||
if (_minutesLeft < 60) {}
|
||||
_showMinutes = ' $_minutesLeft minutes';
|
||||
_duration = '$_hours heures$_showMinutes';
|
||||
_showMinutes =
|
||||
'minutes'.tr(args: [_minutesLeft.toString()]);
|
||||
_duration =
|
||||
'hours'.tr(args: [_hours.toString(), _showMinutes]);
|
||||
} else if (_seconds <= 2592000) {
|
||||
final int _days = _durationSeconds.inDays;
|
||||
_duration = '$_days jours';
|
||||
_duration = 'days'.tr(args: [_days.toString()]);
|
||||
} else {
|
||||
final int _months =
|
||||
(_durationSeconds.inDays / 30).round();
|
||||
_duration = '$_months mois';
|
||||
_duration = 'months'.tr(args: [_months.toString()]);
|
||||
}
|
||||
}
|
||||
return Visibility(
|
||||
visible: (snapshot.data != {}),
|
||||
child: Column(children: <Widget>[
|
||||
if (snapshot.data!['canCert'] != null ||
|
||||
_duration == '0 secondes')
|
||||
_duration == 'seconds'.tr(args: ['0']))
|
||||
Column(children: <Widget>[
|
||||
SizedBox(
|
||||
height: buttonSize,
|
||||
|
@ -180,9 +184,13 @@ class WalletViewScreen extends StatelessWidget {
|
|||
'assets/gecko_certify.png')),
|
||||
),
|
||||
onTap: () async {
|
||||
final bool? _result = await confirmPopup(
|
||||
final bool? _result =
|
||||
await confirmPopup(
|
||||
context,
|
||||
"Êtes-vous certain de vouloir certifier l'adresse:\n\n${getShortPubkey(pubkey!)}");
|
||||
"areYouSureYouWantToCertify".tr(
|
||||
args: [
|
||||
getShortPubkey(pubkey!)
|
||||
]));
|
||||
|
||||
if (_result ?? false) {
|
||||
String? _pin;
|
||||
|
@ -227,7 +235,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 9),
|
||||
Text(
|
||||
"Certifier",
|
||||
"certify".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: buttonFontSize,
|
||||
|
@ -255,7 +263,8 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
Text(
|
||||
"Vous devez attendre\n$_duration avant\nde pouvoir certifier",
|
||||
"mustWaitXBeforeCertify"
|
||||
.tr(args: [_duration.toString()]),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: buttonFontSize - 4,
|
||||
|
@ -264,7 +273,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
]),
|
||||
if (snapshot.data!['certRenewable'] != null &&
|
||||
_duration != '0 secondes')
|
||||
_duration != 'seconds'.tr(args: ['0']))
|
||||
Column(children: <Widget>[
|
||||
SizedBox(
|
||||
height: buttonSize,
|
||||
|
@ -285,7 +294,8 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
),
|
||||
Text(
|
||||
"Vous pourrez renouveller\ncette certification\ndans $_duration",
|
||||
"canRenewCertInX"
|
||||
.tr(args: [_duration.toString()]),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: buttonFontSize - 4,
|
||||
|
@ -321,36 +331,13 @@ class WalletViewScreen extends StatelessWidget {
|
|||
),
|
||||
const SizedBox(height: 9),
|
||||
Text(
|
||||
"Copier\nla clef",
|
||||
"copyAddress".tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
||||
),
|
||||
]),
|
||||
]),
|
||||
// FutureBuilder(
|
||||
// future: _walletOptions.generateQRcode(_historyProvider.pubkey),
|
||||
// builder: (context, snapshot) {
|
||||
// return snapshot.data != null
|
||||
// ? GestureDetector(
|
||||
// key: const Key('openQrcode'),
|
||||
// onTap: () {
|
||||
// Navigator.push(
|
||||
// context,
|
||||
// MaterialPageRoute(builder: (context) {
|
||||
// return AvatarFullscreen(
|
||||
// Image.memory(snapshot.data),
|
||||
// title: 'QrCode du profil',
|
||||
// color: Colors.white,
|
||||
// );
|
||||
// }),
|
||||
// );
|
||||
// },
|
||||
// child: Image.memory(snapshot.data, height: 60 * ratio),
|
||||
// )
|
||||
// : const Text('-', style: TextStyle(fontSize: 20));
|
||||
// },
|
||||
// ),
|
||||
const Spacer(),
|
||||
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
||||
return Opacity(
|
||||
|
@ -389,7 +376,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
const SizedBox(height: 9),
|
||||
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
||||
return Text(
|
||||
"Faire un\nvirement",
|
||||
'doATransfer'.tr(),
|
||||
textAlign: TextAlign.center,
|
||||
style: TextStyle(
|
||||
color: _sub.nodeConnected ? Colors.black : Colors.grey[500],
|
||||
|
@ -466,9 +453,9 @@ class WalletViewScreen extends StatelessWidget {
|
|||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
const Text(
|
||||
'Effectuer un virement',
|
||||
style: TextStyle(
|
||||
Text(
|
||||
'executeATransfer'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 26, fontWeight: FontWeight.w700),
|
||||
),
|
||||
IconButton(
|
||||
|
@ -481,7 +468,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
]),
|
||||
const SizedBox(height: 20),
|
||||
Text(
|
||||
'Depuis:',
|
||||
'from'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
fontWeight: FontWeight.w500,
|
||||
|
@ -571,7 +558,7 @@ class WalletViewScreen extends StatelessWidget {
|
|||
|
||||
// const SizedBox(height: 10),
|
||||
Text(
|
||||
'Montant:',
|
||||
'amount'.tr(),
|
||||
style: TextStyle(
|
||||
fontSize: 19,
|
||||
fontWeight: FontWeight.w500,
|
||||
|
@ -676,9 +663,9 @@ class WalletViewScreen extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
: null,
|
||||
child: const Text(
|
||||
'Effectuer le virement',
|
||||
style: TextStyle(
|
||||
child: Text(
|
||||
'executeTheTransfer'.tr(),
|
||||
style: const TextStyle(
|
||||
fontSize: 20, fontWeight: FontWeight.w600),
|
||||
),
|
||||
),
|
||||
|
|
33
pubspec.lock
33
pubspec.lock
|
@ -316,6 +316,20 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.1.6"
|
||||
easy_localization:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: easy_localization
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.1"
|
||||
easy_logger:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: easy_logger
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.0.2"
|
||||
fake_async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -389,6 +403,11 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
flutter_localizations:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_logs:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -396,6 +415,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.6"
|
||||
flutter_markdown:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_markdown
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.6.10+2"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -738,6 +764,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.0.2"
|
||||
markdown:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: markdown
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
@ -5,7 +5,7 @@ description: Pay with G1.
|
|||
# pub.dev using `pub publish`. This is preferred for private packages.
|
||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
|
||||
version: 0.0.9+11
|
||||
version: 0.0.9+12
|
||||
|
||||
environment:
|
||||
sdk: '>=2.12.0 <3.0.0'
|
||||
|
@ -72,6 +72,8 @@ dependencies:
|
|||
web_socket_channel: ^2.2.0
|
||||
connectivity_plus: ^2.3.3
|
||||
image_cropper: ^2.0.3
|
||||
easy_localization: ^3.0.1
|
||||
flutter_markdown: ^0.6.10+2
|
||||
|
||||
dev_dependencies:
|
||||
# flutter_launcher_icons: ^0.9.2
|
||||
|
@ -99,6 +101,7 @@ flutter:
|
|||
assets:
|
||||
- config/
|
||||
- assets/
|
||||
- assets/translations/
|
||||
- assets/home/
|
||||
- assets/avatars/
|
||||
- assets/chests/
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter_driver/flutter_driver.dart';
|
||||
import 'package:test/test.dart';
|
||||
// import 'package:flutter/services.dart';
|
||||
|
@ -160,7 +161,7 @@ void main() {
|
|||
await driver!.getText(find.byValueKey(
|
||||
'step6',
|
||||
)),
|
||||
"J’ai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît d’accéder à tous vos portefeuilles.");
|
||||
"iGeneratedYourMnemonicKeepItSecret".tr());
|
||||
});
|
||||
|
||||
test('OnBoarding - Generate sentance and confirme it', (
|
||||
|
@ -255,7 +256,7 @@ void main() {
|
|||
{timeout = const Duration(seconds: 2)}) async {
|
||||
await tapOn('goWalletHome');
|
||||
|
||||
expect(await getText('myWallets'), "Coffre à Ğecko");
|
||||
expect(await getText('myWallets'), "geckoChest".tr());
|
||||
await sleep(300);
|
||||
|
||||
// Go to first derivation and rename it
|
||||
|
|
Loading…
Reference in New Issue