onboarding translation 3

This commit is contained in:
Hugo Trentesaux 2022-06-18 00:48:07 +02:00
parent c62c63f064
commit c04416ae0e
18 changed files with 170 additions and 78 deletions

View File

@ -33,6 +33,7 @@
"openThisChest": "Open this chest", "openThisChest": "Open this chest",
"createChest": "Create a new chest", "createChest": "Create a new chest",
"importChest": "Import a chest", "importChest": "Import a chest",
"selectMyChest": "Select my chest",
"accessMyChest": "Access my chest", "accessMyChest": "Access my chest",
"manageMembership": "Manage my membership", "manageMembership": "Manage my membership",
"chooseThisWallet": "Choose this wallet", "chooseThisWallet": "Choose this wallet",
@ -59,7 +60,51 @@
"gecko_also_can_forget.png": "gecko_also_can_forget_en.png", "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:", "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.", "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"
} }

View File

@ -60,6 +60,47 @@
"gecko_also_can_forget.png": "gecko_also_can_forget_fr.png", "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 :", "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 daccéder rapidement à vos portefeuilles, sans avoir à taper votre phrase de restauration à chaque fois.", "geckoWillGenerateAPassword": "Gecko va maintenant générer pour vous un code secret court qui vous permettra daccé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 dautres.",
"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 lavez bien noté.",
"yourChestAndWalletWereCreatedSuccessfully": "Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !",
"allGood": "Cest 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 daccéder à tous vos portefeuilles.",
"iGeneratedYourMnemonicKeepItSecret": "Jai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît daccé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é"
} }

View File

@ -1,4 +1,5 @@
import 'dart:async'; import 'dart:async';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
import 'package:gecko/models/chest_data.dart'; import 'package:gecko/models/chest_data.dart';
@ -55,17 +56,16 @@ class ChestProvider with ChangeNotifier {
barrierDismissible: true, // user must tap button! barrierDismissible: true, // user must tap button!
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertDialog( return AlertDialog(
title: Text( title: Text('areYouSureToDeleteWallet'.tr(args: [_walletName!])),
'Êtes-vous sûr de vouloir supprimer le coffre "$_walletName" ?'),
actions: <Widget>[ actions: <Widget>[
TextButton( TextButton(
child: const Text("Non", key: Key('cancelDeleting')), child: Text("no".tr(), key: const Key('cancelDeleting')),
onPressed: () { onPressed: () {
Navigator.pop(context, false); Navigator.pop(context, false);
}, },
), ),
TextButton( TextButton(
child: const Text("Oui", key: Key('confirmDeleting')), child: Text("yes".tr(), key: const Key('confirmDeleting')),
onPressed: () { onPressed: () {
Navigator.pop(context, true); Navigator.pop(context, true);
}, },

View File

@ -120,18 +120,18 @@ class GenerateWalletsProvider with ChangeNotifier {
String? intToString(int _nbr) { String? intToString(int _nbr) {
Map nbrToString = {}; Map nbrToString = {};
nbrToString[1] = 'Premier'; nbrToString[1] = '1th'.tr();
nbrToString[2] = 'Deuxième'; nbrToString[2] = '2th'.tr();
nbrToString[3] = 'Troisième'; nbrToString[3] = '3th'.tr();
nbrToString[4] = 'Quatrième'; nbrToString[4] = '4th'.tr();
nbrToString[5] = 'Cinquième'; nbrToString[5] = '5th'.tr();
nbrToString[6] = 'Sixième'; nbrToString[6] = '6th'.tr();
nbrToString[7] = 'Septième'; nbrToString[7] = '7th'.tr();
nbrToString[8] = 'Huitième'; nbrToString[8] = '8th'.tr();
nbrToString[9] = 'Neuvième'; nbrToString[9] = '9th'.tr();
nbrToString[10] = 'Dixième'; nbrToString[10] = '10th'.tr();
nbrToString[11] = 'Onzième'; nbrToString[11] = '11th'.tr();
nbrToString[12] = 'Douzième'; nbrToString[12] = '12th'.tr();
nbrWordAlpha = nbrToString[_nbr]; nbrWordAlpha = nbrToString[_nbr];

View File

@ -1,3 +1,4 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'dart:async'; import 'dart:async';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
@ -90,7 +91,7 @@ class MyWalletsProvider with ChangeNotifier {
log.w('DELETE ALL WALLETS ?'); log.w('DELETE ALL WALLETS ?');
final bool? _answer = await (confirmPopup( final bool? _answer = await (confirmPopup(
context, 'Êtes-vous sûr de vouloir oublier tous vos coffres ?')); context, 'areYouSureForgetAllChests'.tr()));
if (_answer!) { if (_answer!) {
await walletBox.clear(); await walletBox.clear();
await chestBox.clear(); await chestBox.clear();

View File

@ -47,8 +47,8 @@ class WalletOptionsProvider with ChangeNotifier {
Future<int> deleteWallet(context, WalletData wallet) async { Future<int> deleteWallet(context, WalletData wallet) async {
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false); SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
final bool? _answer = await (confirmPopup(context, final bool? _answer = await (confirmPopup(
'Êtes-vous sûr de vouloir oublier le portefeuille "${wallet.name}" ?')); context, 'areYouSureToForgetWallet'.tr(args: [wallet.name!])));
if (_answer ?? false) { if (_answer ?? false) {
//Check if balance is null //Check if balance is null
@ -157,7 +157,7 @@ class WalletOptionsProvider with ChangeNotifier {
switch (snapshot.data.toString()) { switch (snapshot.data.toString()) {
case 'noid': case 'noid':
{ {
return _showText('Aucune identité'); return _showText('noIdentity'.tr());
} }
case 'Created': case 'Created':
{ {
@ -169,12 +169,12 @@ class WalletOptionsProvider with ChangeNotifier {
await validateIdentity(context); await validateIdentity(context);
}, },
) )
: _showText('Identité créé'); : _showText('identityCreated'.tr());
} }
case 'ConfirmedByOwner': case 'ConfirmedByOwner':
{ {
return isOwner return isOwner
? _showText('Identité confirmé') ? _showText('identityConfirmed'.tr())
: _duniterIndexer.getNameByAddress( : _duniterIndexer.getNameByAddress(
context, context,
address, address,
@ -203,7 +203,7 @@ class WalletOptionsProvider with ChangeNotifier {
case 'expired': case 'expired':
{ {
return _showText('Identité expiré'); return _showText('identityExpired'.tr());
} }
} }
return SizedBox( return SizedBox(
@ -231,10 +231,10 @@ class WalletOptionsProvider with ChangeNotifier {
barrierDismissible: true, // user must tap button! barrierDismissible: true, // user must tap button!
builder: (BuildContext context) { builder: (BuildContext context) {
return AlertDialog( return AlertDialog(
title: const Text( title: Text(
'Confirmez votre identité', 'confirmYourIdentity'.tr(),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w500), style: const TextStyle(fontSize: 20, fontWeight: FontWeight.w500),
), ),
content: SizedBox( content: SizedBox(
height: 100, height: 100,

View File

@ -1,4 +1,5 @@
import 'package:dots_indicator/dots_indicator.dart'; import 'package:dots_indicator/dots_indicator.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
@ -248,9 +249,9 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
children: [ children: [
TextButton( TextButton(
key: const Key('confirmPopop'), key: const Key('confirmPopop'),
child: const Text( child: Text(
"Oui", "yes".tr(),
style: TextStyle( style: const TextStyle(
fontSize: 21, fontSize: 21,
color: Color(0xffD80000), color: Color(0xffD80000),
), ),
@ -261,9 +262,9 @@ Future<bool?> confirmPopup(BuildContext context, String title) async {
), ),
const SizedBox(width: 20), const SizedBox(width: 20),
TextButton( TextButton(
child: const Text( child: Text(
"Non", "no".tr(),
style: TextStyle(fontSize: 21), style: const TextStyle(fontSize: 21),
), ),
onPressed: () { onPressed: () {
Navigator.pop(context, false); Navigator.pop(context, false);

View File

@ -1,4 +1,5 @@
import 'package:bubble/bubble.dart'; import 'package:bubble/bubble.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -43,15 +44,14 @@ class RestoreChest extends StatelessWidget {
genW.resetImportView(); genW.resetImportView();
Navigator.of(context).pop(); Navigator.of(context).pop();
}), }),
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text('Restaurer un coffre'), child: Text('restoreAChest'.tr()),
)), )),
body: SafeArea( body: SafeArea(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
SizedBox(height: isTall ? 30 : 15), SizedBox(height: isTall ? 30 : 15),
bubbleSpeak( bubbleSpeak('toRestoreEnterMnemonic'.tr()),
'Pour restaurer vos portefeuilles Gecko, rentrez dans les champs ci-dessous les 12 mots qui constituent votre phrase de restauration :'),
SizedBox(height: isTall ? 30 : 15), SizedBox(height: isTall ? 30 : 15),
Column(children: <Widget>[ Column(children: <Widget>[
Row( Row(
@ -112,10 +112,10 @@ class RestoreChest extends StatelessWidget {
await badMnemonicPopup(context); await badMnemonicPopup(context);
} }
}, },
child: const Text( child: Text(
'Restaurer ce coffre', 'restoreThisChest'.tr(),
style: style: const TextStyle(
TextStyle(fontSize: 24, fontWeight: FontWeight.w600), fontSize: 24, fontWeight: FontWeight.w600),
), ),
), ),
), ),
@ -137,16 +137,16 @@ class RestoreChest extends StatelessWidget {
genW.pasteMnemonic(context); genW.pasteMnemonic(context);
}, },
child: Row( child: Row(
children: const [ children: [
Icon( const Icon(
Icons.content_paste_go, Icons.content_paste_go,
size: 25, size: 25,
), ),
SizedBox(width: 10), const SizedBox(width: 10),
Text( Text(
'Coller depuis le\npresse-papier', 'pasteFromClipboard'.tr(),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: const TextStyle(
fontSize: 17, fontWeight: FontWeight.w400), fontSize: 17, fontWeight: FontWeight.w400),
), ),
], ],

View File

@ -36,9 +36,9 @@ class ShowSeed extends StatelessWidget {
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
appBar: AppBar( appBar: AppBar(
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text('Ma phrase de restauration'), child: Text('myMnemonic'.tr()),
)), )),
body: SafeArea( body: SafeArea(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
@ -65,8 +65,7 @@ class ShowSeed extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
Column(children: [ Column(children: [
common.buildText( common.buildText('keepYourMnemonicSecret'.tr()),
'Tâchez de garder cette phrase bien secrète, car elle permet à quiconque la connaît daccéder à tous vos portefeuilles.'),
SizedBox(height: 35 * ratio), SizedBox(height: 35 * ratio),
sentanceArray(context, _seed.data!.split(' ')), sentanceArray(context, _seed.data!.split(' ')),
const SizedBox(height: 20), const SizedBox(height: 20),
@ -132,7 +131,7 @@ class ShowSeed extends StatelessWidget {
Navigator.pop(context); Navigator.pop(context);
}, },
child: Text( child: Text(
'Fermer', 'close'.tr(),
style: TextStyle( style: TextStyle(
fontSize: 23 * ratio, fontWeight: FontWeight.w600), fontSize: 23 * ratio, fontWeight: FontWeight.w600),
), ),
@ -233,11 +232,11 @@ class PrintWallet extends StatelessWidget {
backgroundColor: yellowC, backgroundColor: yellowC,
foregroundColor: Colors.black, foregroundColor: Colors.black,
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text( child: Text(
'Imprimer ma phrase de restauration', 'printMyMnemonic'.tr(),
style: TextStyle(fontWeight: FontWeight.w600), style: const TextStyle(fontWeight: FontWeight.w600),
), ),
), ),
), ),

View File

@ -201,7 +201,8 @@ class UnlockingWallet extends StatelessWidget {
animationType: AnimationType.fade, animationType: AnimationType.fade,
validator: (v) { validator: (v) {
if (v!.length < _pinLenght) { if (v!.length < _pinLenght) {
return "Votre code PIN fait $_pinLenght caractères"; return "yourPasswordLengthIsX"
.tr(args: [_pinLenght.toString()]);
} else { } else {
return null; return null;
} }

View File

@ -53,8 +53,7 @@ class OnboardingStepTen extends StatelessWidget {
SizedBox(height: isTall ? 40 : 20), SizedBox(height: isTall ? 40 : 20),
common.buildProgressBar(9), common.buildProgressBar(9),
SizedBox(height: isTall ? 40 : 20), SizedBox(height: isTall ? 40 : 20),
common.buildText( common.buildText("geckoWillCheckPassword".tr()),
"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 lavez bien noté."),
SizedBox(height: isTall ? 80 : 20), SizedBox(height: isTall ? 80 : 20),
Visibility( Visibility(
visible: _generateWalletProvider.scanedWalletNumber != -1, visible: _generateWalletProvider.scanedWalletNumber != -1,
@ -104,7 +103,7 @@ class OnboardingStepTen extends StatelessWidget {
), ),
const SizedBox(width: 8), const SizedBox(width: 8),
Text( Text(
'Garder ce code en mémoire 15 minutes', 'rememberPassword'.tr(),
style: style:
TextStyle(fontSize: 16, color: Colors.grey[700]), TextStyle(fontSize: 16, color: Colors.grey[700]),
), ),
@ -150,7 +149,7 @@ class OnboardingStepTen extends StatelessWidget {
animationType: AnimationType.fade, animationType: AnimationType.fade,
validator: (v) { validator: (v) {
if (v!.length < _pinLenght) { if (v!.length < _pinLenght) {
return "Votre code PIN fait $_pinLenght caractères"; return "yourPasswordLengthIsX".tr(args: [_pinLenght.toString()]);
} else { } else {
return null; return null;
} }

View File

@ -20,11 +20,11 @@ class OnboardingStepEleven extends StatelessWidget {
backgroundColor: backgroundColor, backgroundColor: backgroundColor,
appBar: AppBar( appBar: AppBar(
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text( child: Text(
'Cest tout bon !', 'allGood'.tr(),
style: TextStyle(fontWeight: FontWeight.w600), style: const TextStyle(fontWeight: FontWeight.w600),
), ),
), ),
), ),
@ -32,8 +32,7 @@ class OnboardingStepEleven extends StatelessWidget {
body: SafeArea( body: SafeArea(
child: Column(children: <Widget>[ child: Column(children: <Widget>[
const SizedBox(height: 40), const SizedBox(height: 40),
common.buildText( common.buildText("yourChestAndWalletWereCreatedSuccessfully".tr()),
"Top !\n\nVotre coffre votre premier portefeuille ont été créés avec un immense succès.\n\nFélicitations !"),
SizedBox(height: isTall ? 20 : 10), SizedBox(height: isTall ? 20 : 10),
Image.asset( Image.asset(
'assets/onBoarding/gecko-clin.gif', 'assets/onBoarding/gecko-clin.gif',

View File

@ -96,8 +96,9 @@ class OnboardingStepSix extends StatelessWidget {
color: Colors.grey[500], color: Colors.grey[500],
fontWeight: FontWeight.w500), fontWeight: FontWeight.w500),
labelText: _generateWalletProvider.isAskedWordValid labelText: _generateWalletProvider.isAskedWordValid
? "C'est le bon mot !" ? "itsTheGoodWord".tr()
: "${_generateWalletProvider.nbrWordAlpha} mot de votre phrase de restauration", : "${_generateWalletProvider.nbrWordAlpha} " +
"nthMnemonicWord".tr(),
fillColor: const Color(0xffeeeedd), fillColor: const Color(0xffeeeedd),
filled: true, filled: true,
contentPadding: const EdgeInsets.all(12), contentPadding: const EdgeInsets.all(12),
@ -113,7 +114,7 @@ class OnboardingStepSix extends StatelessWidget {
alignment: Alignment.bottomCenter, alignment: Alignment.bottomCenter,
child: nextButton( child: nextButton(
context, context,
'Continuer', 'continue'.tr(),
skipIntro skipIntro
? const OnboardingStepNine() ? const OnboardingStepNine()
: const OnboardingStepSeven(), : const OnboardingStepSeven(),

View File

@ -31,7 +31,7 @@ class OnboardingStepEight extends StatelessWidget {
body: SafeArea( body: SafeArea(
child: common.infoIntro( child: common.infoIntro(
context, 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 dautres.', 'thisPasswordProtectsYourWalletsInASecureChest'.tr(),
'coffre-fort-protege-les-portefeuilles.png', 'coffre-fort-protege-les-portefeuilles.png',
'>', '>',
OnboardingStepNine(scanDerivation: scanDerivation), OnboardingStepNine(scanDerivation: scanDerivation),

View File

@ -46,7 +46,7 @@ class OnboardingStepNine extends StatelessWidget {
common.buildProgressBar(8), common.buildProgressBar(8),
SizedBox(height: isTall ? 40 : 20), SizedBox(height: isTall ? 40 : 20),
common.buildText( 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, 20,
true), true),
const SizedBox(height: 100), const SizedBox(height: 100),
@ -90,13 +90,13 @@ class OnboardingStepNine extends StatelessWidget {
onPressed: () { onPressed: () {
_generateWalletProvider.changePinCode(reload: true); _generateWalletProvider.changePinCode(reload: true);
}, },
child: Text("Choisir un autre code secret", child: Text("chooseAnotherPassword".tr(),
style: TextStyle( style: TextStyle(
fontSize: 22 * ratio, fontSize: 22 * ratio,
fontWeight: FontWeight.w600))), fontWeight: FontWeight.w600))),
))), ))),
SizedBox(height: 22 * ratio), SizedBox(height: 22 * ratio),
common.nextButton(context, "J'ai noté mon code secret", common.nextButton(context, "iNotedMyPassword".tr(),
OnboardingStepTen(scanDerivation: scanDerivation), false), OnboardingStepTen(scanDerivation: scanDerivation), false),
SizedBox(height: 35 * ratio), SizedBox(height: 35 * ratio),
]), ]),

View File

@ -1,3 +1,4 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -263,7 +264,7 @@ class TransactionInProgress extends StatelessWidget {
if (transType == 'pay') Navigator.pop(context); if (transType == 'pay') Navigator.pop(context);
}, },
child: Text( child: Text(
'Fermer', 'close'.tr(),
style: TextStyle( style: TextStyle(
fontSize: 23 * ratio, fontSize: 23 * ratio,
fontWeight: FontWeight.w600), fontWeight: FontWeight.w600),

View File

@ -181,9 +181,13 @@ class WalletViewScreen extends StatelessWidget {
'assets/gecko_certify.png')), 'assets/gecko_certify.png')),
), ),
onTap: () async { onTap: () async {
final bool? _result = await confirmPopup( final bool? _result =
context, await confirmPopup(
"Êtes-vous certain de vouloir certifier l'adresse:\n\n${getShortPubkey(pubkey!)}"); context,
"areYouSureYouWantToCertify".tr(
args: [
getShortPubkey(pubkey!)
]));
if (_result ?? false) { if (_result ?? false) {
String? _pin; String? _pin;

View File

@ -161,7 +161,7 @@ void main() {
await driver!.getText(find.byValueKey( await driver!.getText(find.byValueKey(
'step6', 'step6',
)), )),
"Jai généré votre phrase de restauration !\nTâchez de la garder bien secrète, car elle permet à quiconque la connaît daccéder à tous vos portefeuilles."); "iGeneratedYourMnemonicKeepItSecret".tr());
}); });
test('OnBoarding - Generate sentance and confirme it', ( test('OnBoarding - Generate sentance and confirme it', (