From c04416ae0ea01b5055427539dbfa817ed6a18fe1 Mon Sep 17 00:00:00 2001 From: Hugo Trentesaux Date: Sat, 18 Jun 2022 00:48:07 +0200 Subject: [PATCH] onboarding translation 3 --- assets/translations/en.json | 47 ++++++++++++++++++- assets/translations/fr.json | 45 +++++++++++++++++- lib/providers/chest_provider.dart | 8 ++-- lib/providers/generate_wallets.dart | 24 +++++----- lib/providers/my_wallets.dart | 3 +- lib/providers/wallet_options.dart | 18 +++---- lib/screens/common_elements.dart | 13 ++--- lib/screens/myWallets/restore_chest.dart | 26 +++++----- lib/screens/myWallets/show_seed.dart | 15 +++--- lib/screens/myWallets/unlocking_wallet.dart | 3 +- lib/screens/onBoarding/10.dart | 7 ++- .../onBoarding/11_congratulations.dart | 9 ++-- lib/screens/onBoarding/6.dart | 7 +-- lib/screens/onBoarding/8.dart | 2 +- lib/screens/onBoarding/9.dart | 6 +-- lib/screens/transaction_in_progress.dart | 3 +- lib/screens/wallet_view.dart | 10 ++-- test_driver/app_test.dart | 2 +- 18 files changed, 170 insertions(+), 78 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index 28c9745..c99bfa2 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -33,6 +33,7 @@ "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", @@ -59,7 +60,51 @@ "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" + "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" + + } \ No newline at end of file diff --git a/assets/translations/fr.json b/assets/translations/fr.json index 5036212..e415823 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -60,6 +60,47 @@ "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" - + "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é" } \ No newline at end of file diff --git a/lib/providers/chest_provider.dart b/lib/providers/chest_provider.dart index cccc2ec..3a11b88 100644 --- a/lib/providers/chest_provider.dart +++ b/lib/providers/chest_provider.dart @@ -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: [ 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); }, diff --git a/lib/providers/generate_wallets.dart b/lib/providers/generate_wallets.dart index cc386b5..5fec56d 100644 --- a/lib/providers/generate_wallets.dart +++ b/lib/providers/generate_wallets.dart @@ -120,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]; diff --git a/lib/providers/my_wallets.dart b/lib/providers/my_wallets.dart index 361f210..8b142fb 100644 --- a/lib/providers/my_wallets.dart +++ b/lib/providers/my_wallets.dart @@ -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(); diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index d13ef53..e9c923a 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -47,8 +47,8 @@ class WalletOptionsProvider with ChangeNotifier { Future deleteWallet(context, WalletData wallet) async { SubstrateSdk _sub = Provider.of(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 @@ -157,7 +157,7 @@ class WalletOptionsProvider with ChangeNotifier { switch (snapshot.data.toString()) { case 'noid': { - return _showText('Aucune identité'); + return _showText('noIdentity'.tr()); } case 'Created': { @@ -169,12 +169,12 @@ class WalletOptionsProvider with ChangeNotifier { await validateIdentity(context); }, ) - : _showText('Identité créé'); + : _showText('identityCreated'.tr()); } case 'ConfirmedByOwner': { return isOwner - ? _showText('Identité confirmé') + ? _showText('identityConfirmed'.tr()) : _duniterIndexer.getNameByAddress( context, address, @@ -203,7 +203,7 @@ class WalletOptionsProvider with ChangeNotifier { case 'expired': { - return _showText('Identité expiré'); + return _showText('identityExpired'.tr()); } } return SizedBox( @@ -231,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, diff --git a/lib/screens/common_elements.dart b/lib/screens/common_elements.dart index 4763d6c..eb94a3a 100644 --- a/lib/screens/common_elements.dart +++ b/lib/screens/common_elements.dart @@ -1,4 +1,5 @@ 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'; @@ -248,9 +249,9 @@ Future 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), ), @@ -261,9 +262,9 @@ Future 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); diff --git a/lib/screens/myWallets/restore_chest.dart b/lib/screens/myWallets/restore_chest.dart index 08d0c93..52ff118 100644 --- a/lib/screens/myWallets/restore_chest.dart +++ b/lib/screens/myWallets/restore_chest.dart @@ -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: [ 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: [ 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), ), ], diff --git a/lib/screens/myWallets/show_seed.dart b/lib/screens/myWallets/show_seed.dart index 56e8a89..7c82552 100644 --- a/lib/screens/myWallets/show_seed.dart +++ b/lib/screens/myWallets/show_seed.dart @@ -36,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: [ @@ -65,8 +65,7 @@ class ShowSeed extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Column(children: [ - common.buildText( - '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), @@ -132,7 +131,7 @@ class ShowSeed extends StatelessWidget { Navigator.pop(context); }, child: Text( - 'Fermer', + 'close'.tr(), style: TextStyle( fontSize: 23 * ratio, fontWeight: FontWeight.w600), ), @@ -233,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), ), ), ), diff --git a/lib/screens/myWallets/unlocking_wallet.dart b/lib/screens/myWallets/unlocking_wallet.dart index 346316d..364f8aa 100644 --- a/lib/screens/myWallets/unlocking_wallet.dart +++ b/lib/screens/myWallets/unlocking_wallet.dart @@ -201,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; } diff --git a/lib/screens/onBoarding/10.dart b/lib/screens/onBoarding/10.dart index 6185f24..c8ba191 100644 --- a/lib/screens/onBoarding/10.dart +++ b/lib/screens/onBoarding/10.dart @@ -53,8 +53,7 @@ class OnboardingStepTen extends StatelessWidget { SizedBox(height: isTall ? 40 : 20), common.buildProgressBar(9), SizedBox(height: isTall ? 40 : 20), - common.buildText( - "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é."), + common.buildText("geckoWillCheckPassword".tr()), SizedBox(height: isTall ? 80 : 20), Visibility( visible: _generateWalletProvider.scanedWalletNumber != -1, @@ -104,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]), ), @@ -150,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; } diff --git a/lib/screens/onBoarding/11_congratulations.dart b/lib/screens/onBoarding/11_congratulations.dart index 64dc12e..c461a3b 100644 --- a/lib/screens/onBoarding/11_congratulations.dart +++ b/lib/screens/onBoarding/11_congratulations.dart @@ -20,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), ), ), ), @@ -32,8 +32,7 @@ class OnboardingStepEleven extends StatelessWidget { body: SafeArea( child: Column(children: [ const SizedBox(height: 40), - common.buildText( - "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', diff --git a/lib/screens/onBoarding/6.dart b/lib/screens/onBoarding/6.dart index a86b909..e91f524 100644 --- a/lib/screens/onBoarding/6.dart +++ b/lib/screens/onBoarding/6.dart @@ -96,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), @@ -113,7 +114,7 @@ class OnboardingStepSix extends StatelessWidget { alignment: Alignment.bottomCenter, child: nextButton( context, - 'Continuer', + 'continue'.tr(), skipIntro ? const OnboardingStepNine() : const OnboardingStepSeven(), diff --git a/lib/screens/onBoarding/8.dart b/lib/screens/onBoarding/8.dart index f9234e3..2172e2d 100644 --- a/lib/screens/onBoarding/8.dart +++ b/lib/screens/onBoarding/8.dart @@ -31,7 +31,7 @@ class OnboardingStepEight extends StatelessWidget { body: SafeArea( child: common.infoIntro( context, - '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.', + 'thisPasswordProtectsYourWalletsInASecureChest'.tr(), 'coffre-fort-protege-les-portefeuilles.png', '>', OnboardingStepNine(scanDerivation: scanDerivation), diff --git a/lib/screens/onBoarding/9.dart b/lib/screens/onBoarding/9.dart index 647d834..1dec327 100644 --- a/lib/screens/onBoarding/9.dart +++ b/lib/screens/onBoarding/9.dart @@ -46,7 +46,7 @@ class OnboardingStepNine extends StatelessWidget { common.buildProgressBar(8), SizedBox(height: isTall ? 40 : 20), common.buildText( - "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.", + "hereIsThePasswordKeepIt".tr(), 20, true), const SizedBox(height: 100), @@ -90,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), ]), diff --git a/lib/screens/transaction_in_progress.dart b/lib/screens/transaction_in_progress.dart index 858b3be..b6c1e48 100644 --- a/lib/screens/transaction_in_progress.dart +++ b/lib/screens/transaction_in_progress.dart @@ -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'; @@ -263,7 +264,7 @@ class TransactionInProgress extends StatelessWidget { if (transType == 'pay') Navigator.pop(context); }, child: Text( - 'Fermer', + 'close'.tr(), style: TextStyle( fontSize: 23 * ratio, fontWeight: FontWeight.w600), diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index 0044bc6..2c9cfe0 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -181,9 +181,13 @@ class WalletViewScreen extends StatelessWidget { 'assets/gecko_certify.png')), ), onTap: () async { - final bool? _result = await confirmPopup( - context, - "Êtes-vous certain de vouloir certifier l'adresse:\n\n${getShortPubkey(pubkey!)}"); + final bool? _result = + await confirmPopup( + context, + "areYouSureYouWantToCertify".tr( + args: [ + getShortPubkey(pubkey!) + ])); if (_result ?? false) { String? _pin; diff --git a/test_driver/app_test.dart b/test_driver/app_test.dart index 43b6910..3a3243d 100644 --- a/test_driver/app_test.dart +++ b/test_driver/app_test.dart @@ -161,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', (