translation 4

This commit is contained in:
Hugo Trentesaux 2022-06-18 01:50:06 +02:00
parent c04416ae0e
commit 87a6f444b3
11 changed files with 187 additions and 97 deletions

View File

@ -102,9 +102,51 @@
"identityCreated": "Identity created", "identityCreated": "Identity created",
"identityConfirmed": "Identity confirmed", "identityConfirmed": "Identity confirmed",
"identityExpired": "Identity expired", "identityExpired": "Identity expired",
"confirmYourIdentity": "Confirm your identity" "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"
} }

View File

@ -102,5 +102,52 @@
"identityCreated": "Identité créée", "identityCreated": "Identité créée",
"identityConfirmed": "Identité confirmée", "identityConfirmed": "Identité confirmée",
"identityExpired": "Identité expirée", "identityExpired": "Identité expirée",
"confirmYourIdentity": "Confirmez votre identité" "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"
} }

View File

@ -1,6 +1,7 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io'; import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:gecko/globals.dart'; import 'package:gecko/globals.dart';
@ -229,13 +230,13 @@ class DuniterIndexer with ChangeNotifier {
} }
if (result.isLoading) { if (result.isLoading) {
return const Text('Loading'); return Text('loading'.tr());
} }
final List identities = result.data?['search_identity'] ?? []; final List identities = result.data?['search_identity'] ?? [];
if (identities.isEmpty) { if (identities.isEmpty) {
return const Text('Aucun résultat'); return Text('noResult'.tr());
} }
int keyID = 0; int keyID = 0;

View File

@ -758,13 +758,13 @@ class AddressInfo {
void snackNode(BuildContext context, bool isConnected) { void snackNode(BuildContext context, bool isConnected) {
String _message; String _message;
if (!isConnected) { if (!isConnected) {
_message = _message = "noDuniterNodeAvailableTryLater".tr() +
"Aucun noeud Duniter disponible, veuillez réessayer ultérieurement:\n${configBox.get('endpoint').first}"; ":\n${configBox.get('endpoint').first}";
} else { } else {
SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false); SubstrateSdk _sub = Provider.of<SubstrateSdk>(context, listen: false);
_message = _message = "youAreConnectedToNode".tr() +
"Vous êtes connecté au noeud\n${_sub.getConnectedEndpoint()!.split('//')[1]}"; "\n${_sub.getConnectedEndpoint()!.split('//')[1]}";
} }
final snackBar = SnackBar( final snackBar = SnackBar(
padding: const EdgeInsets.all(20), padding: const EdgeInsets.all(20),

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:gecko/models/queries_indexer.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:flutter/material.dart';
import 'package:gecko/screens/wallet_view.dart'; import 'package:gecko/screens/wallet_view.dart';
import 'package:graphql_flutter/graphql_flutter.dart'; import 'package:graphql_flutter/graphql_flutter.dart';
import 'package:intl/intl.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
// ignore: must_be_immutable // ignore: must_be_immutable
@ -40,9 +40,9 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
appBar: AppBar( appBar: AppBar(
elevation: 0, elevation: 0,
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text('Activité du compte'), child: Text('accountActivity'.tr()),
), ),
), ),
bottomNavigationBar: _homeProvider.bottomAppBar(context), bottomNavigationBar: _homeProvider.bottomAppBar(context),
@ -57,12 +57,12 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
Provider.of<DuniterIndexer>(context, listen: false); Provider.of<DuniterIndexer>(context, listen: false);
if (indexerEndpoint == '') { if (indexerEndpoint == '') {
Column(children: const <Widget>[ Column(children: <Widget>[
SizedBox(height: 50), const SizedBox(height: 50),
Text( Text(
"L'état du réseau ne permet pas\nd'afficher l'historique du compte", "noNetworkNoHistory".tr(),
textAlign: TextAlign.center, 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) { if (result.hasException) {
log.e('Error Indexer: ' + result.exception.toString()); log.e('Error Indexer: ' + result.exception.toString());
return Column(children: const <Widget>[ return Column(children: <Widget>[
SizedBox(height: 50), const SizedBox(height: 50),
Text( Text(
"L'état du réseau ne permet pas\nd'afficher l'historique du compte", "noNetworkNoHistory".tr(),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 18), style: const TextStyle(fontSize: 18),
) )
]); ]);
} else if (result.data == null) { } else if (result.data == null) {
return Column(children: const <Widget>[ return Column(children: <Widget>[
SizedBox(height: 50), const SizedBox(height: 50),
Text( Text(
"Aucune donnée à afficher.", "noDataToDisplay".tr(),
style: TextStyle(fontSize: 18), style: const TextStyle(fontSize: 18),
) )
]); ]);
} }
@ -159,11 +159,11 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
Provider.of<DuniterIndexer>(context, listen: false); Provider.of<DuniterIndexer>(context, listen: false);
return _duniterIndexer.transBC == null return _duniterIndexer.transBC == null
? Column(children: const <Widget>[ ? Column(children: <Widget>[
SizedBox(height: 50), const SizedBox(height: 50),
Text( Text(
"Aucune transaction à afficher.", "noTransactionToDisplay".tr(),
style: TextStyle(fontSize: 18), style: const TextStyle(fontSize: 18),
) )
]) ])
: Column(children: <Widget>[ : Column(children: <Widget>[
@ -202,19 +202,19 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
bool isYesterday = false; bool isYesterday = false;
bool isThisWeek = false; bool isThisWeek = false;
const Map<int, String> monthsInYear = { final Map<int, String> monthsInYear = {
1: "Janvier", 1: "month1".tr(),
2: "Février", 2: "month2".tr(),
3: "Mars", 3: "month3".tr(),
4: "Avril", 4: "month4".tr(),
5: "Mai", 5: "month5".tr(),
6: "Juin", 6: "month6".tr(),
7: "Juillet", 7: "month7".tr(),
8: "Aout", 8: "month8".tr(),
9: "Septembre", 9: "month9".tr(),
10: "Octobre", 10: "month10".tr(),
11: "Novembre", 11: "month11".tr(),
12: "Décembre" 12: "month12".tr()
}; };
return Column( return Column(
@ -243,18 +243,18 @@ class ActivityScreen extends StatelessWidget with ChangeNotifier {
final yesterdayDate = DateTime(now.year, now.month, now.day - 1); final yesterdayDate = DateTime(now.year, now.month, now.day - 1);
if (transactionDate == todayDate && !isTody) { if (transactionDate == todayDate && !isTody) {
dateDelimiter = lastDateDelimiter = "Aujourd'hui"; dateDelimiter = lastDateDelimiter = "today".tr();
isTody = true; isTody = true;
} else if (transactionDate == yesterdayDate && !isYesterday) { } else if (transactionDate == yesterdayDate && !isYesterday) {
dateDelimiter = lastDateDelimiter = "Hier"; dateDelimiter = lastDateDelimiter = "yesterday".tr();
isYesterday = true; isYesterday = true;
} else if (weekNumber(date) == weekNumber(now) && } else if (weekNumber(date) == weekNumber(now) &&
date.year == now.year && date.year == now.year &&
lastDateDelimiter != "Cette semaine" && lastDateDelimiter != "thisWeek".tr() &&
transactionDate != yesterdayDate && transactionDate != yesterdayDate &&
transactionDate != todayDate && transactionDate != todayDate &&
!isThisWeek) { !isThisWeek) {
dateDelimiter = lastDateDelimiter = "Cette semaine"; dateDelimiter = lastDateDelimiter = "thisWeek".tr();
isThisWeek = true; isThisWeek = true;
} else if (lastDateDelimiter != monthsInYear[date.month] && } else if (lastDateDelimiter != monthsInYear[date.month] &&
lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" && lastDateDelimiter != "${monthsInYear[date.month]} ${date.year}" &&

View File

@ -112,8 +112,8 @@ class HomeScreen extends StatelessWidget {
// Check if versionData non compatible, drop everything // Check if versionData non compatible, drop everything
if (walletBox.isNotEmpty && if (walletBox.isNotEmpty &&
walletBox.getAt(0)!.version! < dataVersion) { walletBox.getAt(0)!.version! < dataVersion) {
await infoPopup(context, await infoPopup(
"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."); context, "chestNotCompatibleMustReinstallGecko".tr());
await walletBox.clear(); await walletBox.clear();
await chestBox.clear(); await chestBox.clear();
await configBox.delete('defaultWallet'); await configBox.delete('defaultWallet');
@ -128,7 +128,7 @@ class HomeScreen extends StatelessWidget {
if (connectivityResult != ConnectivityResult.mobile && if (connectivityResult != ConnectivityResult.mobile &&
connectivityResult != ConnectivityResult.wifi) { connectivityResult != ConnectivityResult.wifi) {
_homeProvider.changeMessage( _homeProvider.changeMessage(
"Vous n'êtes pas connecté à internet", 0); "notConnectedToInternet".tr(), 0);
_sub.nodeConnected = false; _sub.nodeConnected = false;
} }
@ -140,7 +140,7 @@ class HomeScreen extends StatelessWidget {
_sub.nodeConnected = false; _sub.nodeConnected = false;
await _sub.sdk.api.setting.unsubscribeBestNumber(); await _sub.sdk.api.setting.unsubscribeBestNumber();
_homeProvider.changeMessage( _homeProvider.changeMessage(
"Vous n'êtes pas connecté à internet", 0); "notConnectedToInternet".tr(), 0);
_sub.reload(); _sub.reload();
} else { } else {
await _sub.connectNode(ctx); await _sub.connectNode(ctx);

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';
@ -38,9 +39,9 @@ class SearchResultScreen extends StatelessWidget {
appBar: AppBar( appBar: AppBar(
elevation: 1, elevation: 1,
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text('Résultats de votre recherche'), child: Text('researchResults'.tr()),
), ),
), ),
bottomNavigationBar: _homeProvider.bottomAppBar(context), bottomNavigationBar: _homeProvider.bottomAppBar(context),
@ -59,8 +60,8 @@ class SearchResultScreen extends StatelessWidget {
color: Colors.grey[700], color: Colors.grey[700],
), ),
children: <TextSpan>[ children: <TextSpan>[
const TextSpan( TextSpan(
text: "Résultats pour ", text: "resultsFor".tr(),
), ),
TextSpan( TextSpan(
text: '"${_searchProvider.searchController.text}"', text: '"${_searchProvider.searchController.text}"',

View File

@ -98,9 +98,9 @@ class SettingsScreen extends StatelessWidget {
log.i('Oublier tous mes coffres'); log.i('Oublier tous mes coffres');
await _myWallets.deleteAllWallet(context); await _myWallets.deleteAllWallet(context);
}, },
child: const Text( child: Text(
'Oublier tous mes coffres', 'forgetAllMyChests'.tr(),
style: TextStyle( style: const TextStyle(
fontSize: fontSize + 4, fontSize: fontSize + 4,
color: Color(0xffD80000), color: Color(0xffD80000),
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,

View File

@ -21,7 +21,7 @@ class SubstrateSandBox extends StatelessWidget {
toolbarHeight: 60 * ratio, toolbarHeight: 60 * ratio,
title: const SizedBox( title: const SizedBox(
height: 22, height: 22,
child: Text('Substrate Sandbox'), child: Text('Substrate Sandbox'),
), ),
), ),
body: SafeArea( body: SafeArea(
@ -36,12 +36,12 @@ class SubstrateSandBox extends StatelessWidget {
await _sub.connectNode(context); await _sub.connectNode(context);
}, },
child: Text( child: Text(
'Noeud connecté ?: ${_sub.nodeConnected} (${_sub.sdk.api.connectedNode?.endpoint})')), '🌐 Noeud connecté ?: ${_sub.nodeConnected} (${_sub.sdk.api.connectedNode?.endpoint})')),
if (_sub.nodeConnected) if (_sub.nodeConnected)
Text('Noeud "$currencyName", bloc N°${_sub.blocNumber}'), Text('🏆 Noeud "$currencyName", bloc N°${_sub.blocNumber}'),
const SizedBox(height: 20), const SizedBox(height: 20),
Row(children: [ Row(children: [
const Text('Liste des coffres:'), const Text('💳 Liste des coffres:'),
const Spacer(), const Spacer(),
InkWell( InkWell(
child: Image.asset( child: Image.asset(
@ -93,13 +93,13 @@ class SubstrateSandBox extends StatelessWidget {
addressInfo.address!, addressInfo.address!,
2, 2,
_sub.keystorePassword.text), _sub.keystorePassword.text),
child: const Text("Dériver"), child: const Text("🏂 Dériver"),
) )
]) ])
]); ]);
}), }),
const SizedBox(height: 20), const SizedBox(height: 20),
const Text('Mot de passe du coffre:'), const Text('🔒 Mot de passe du coffre:'),
TextField( TextField(
controller: _sub.keystorePassword, controller: _sub.keystorePassword,
obscureText: true, obscureText: true,
@ -130,7 +130,7 @@ class SubstrateSandBox extends StatelessWidget {
} }
: null, : null,
child: const Text( child: const Text(
'Importer depuis le presse-papier', '📎 Importer depuis le presse-papier',
style: TextStyle(fontSize: 20), style: TextStyle(fontSize: 20),
), ),
), ),
@ -149,7 +149,7 @@ class SubstrateSandBox extends StatelessWidget {
snack(context, 'Le mnemonic a été copié'); snack(context, 'Le mnemonic a été copié');
}, },
child: const Text( child: const Text(
"Générer un mnemonic et le copier", "🏦 Générer un mnemonic et le copier",
style: TextStyle(fontSize: 20), style: TextStyle(fontSize: 20),
), ),
), ),
@ -161,7 +161,7 @@ class SubstrateSandBox extends StatelessWidget {
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
const Text('--------'), const Text('-〰️---〰️---〰️-'),
const SizedBox(height: 10), const SizedBox(height: 10),
Text(_sub.debugConnection) Text(_sub.debugConnection)
]) ])

View File

@ -40,44 +40,44 @@ class TransactionInProgress extends StatelessWidget {
switch (transType) { switch (transType) {
case 'pay': case 'pay':
{ {
_actionName = 'Transaction'; _actionName = 'transaction'.tr();
} }
break; break;
case 'cert': case 'cert':
{ {
_actionName = 'Certification'; _actionName = 'certification'.tr();
} }
break; break;
case 'comfirmIdty': case 'comfirmIdty':
{ {
_actionName = "Confirmation d'identité"; _actionName = "identityConfirm".tr();
} }
break; break;
case 'revokeIdty': case 'revokeIdty':
{ {
_actionName = "Révocation d'adhésion"; _actionName = "revokeAdhesion".tr();
} }
break; break;
default: default:
{ {
_actionName = 'Transaction étrange'; _actionName = 'strangeTransaction'.tr();
} }
} }
switch (_result) { switch (_result) {
case '': case '':
{ {
_resultText = 'Envoi en cours ...'; _resultText = 'sending'.tr();
} }
break; break;
case 'Ready': case 'Ready':
{ {
_resultText = 'En cours de propagation...'; _resultText = 'propagating'.tr();
} }
break; break;
case 'Broadcast': case 'Broadcast':
{ {
_resultText = 'En cours de validation ...'; _resultText = 'validating'.tr();
} }
break; break;
default: default:
@ -90,7 +90,7 @@ class TransactionInProgress extends StatelessWidget {
_resultText = '$_actionName validé !'; _resultText = '$_actionName validé !';
} else { } else {
isValid = false; isValid = false;
_resultText = "Une erreur s'est produite:\n"; _resultText = "anErrorOccured".tr() + ":\n";
final List _exceptionSplit = _result.split('Exception: '); final List _exceptionSplit = _result.split('Exception: ');
String _exception; String _exception;
if (_exceptionSplit.length > 1) { if (_exceptionSplit.length > 1) {
@ -103,37 +103,33 @@ class TransactionInProgress extends StatelessWidget {
case 'cert.NotRespectCertPeriod': case 'cert.NotRespectCertPeriod':
case 'identity.CreatorNotAllowedToCreateIdty': case 'identity.CreatorNotAllowedToCreateIdty':
{ {
_resultText = _resultText = "24hbetweenCerts".tr();
"Vous devez attendre 24h entre chaque certification";
} }
break; break;
case 'cert.CannotCertifySelf': case 'cert.CannotCertifySelf':
{ {
_resultText = _resultText = "canNotCertifySelf".tr();
"Vous ne pouvez pas vous certifier\nvous même ...";
} }
break; break;
case 'identity.IdtyNameAlreadyExist': case 'identity.IdtyNameAlreadyExist':
{ {
_resultText = "Ce nom est déjà pris"; _resultText = "nameAlreadyExist".tr();
} }
break; break;
case 'balances.KeepAlive': case 'balances.KeepAlive':
{ {
_resultText = _resultText = "2GDtoKeepAlive".tr();
"Vous devez garder au moins 2ĞD sur votre compte pour le garder actif";
} }
break; break;
case '1010: Invalid Transaction: Inability to pay some fees , e.g. account balance too low': case '1010: Invalid Transaction: Inability to pay some fees , e.g. account balance too low':
{ {
_resultText = _resultText = "youHaveToFeedThisAccountBeforeUsing".tr();
"Vous devez alimenter ce compte avant\nde pouvoir l'utiliser";
} }
break; break;
case 'timeout': case 'timeout':
{ {
_resultText += "Le délais d'éxecution est dépassé"; _resultText += "execTimeoutOver".tr();
} }
break; break;
default: default:

View File

@ -70,9 +70,9 @@ class WalletViewScreen extends StatelessWidget {
), ),
), ),
], ],
title: const SizedBox( title: SizedBox(
height: 22, height: 22,
child: Text('Voir un portefeuille'), child: Text('seeAWallet'.tr()),
), ),
), ),
bottomNavigationBar: _homeProvider.bottomAppBar(context), bottomNavigationBar: _homeProvider.bottomAppBar(context),
@ -137,6 +137,7 @@ class WalletViewScreen extends StatelessWidget {
final int _seconds = _durationSeconds.inSeconds; final int _seconds = _durationSeconds.inSeconds;
final int _minutes = _durationSeconds.inMinutes; final int _minutes = _durationSeconds.inMinutes;
// TODO translate timing
if (_seconds <= 0) { if (_seconds <= 0) {
_duration = '0 secondes'; _duration = '0 secondes';
} else if (_seconds <= 60) { } else if (_seconds <= 60) {
@ -260,7 +261,8 @@ class WalletViewScreen extends StatelessWidget {
), ),
), ),
Text( Text(
"Vous devez attendre\n$_duration avant\nde pouvoir certifier", "mustWaitXBeforeCertify"
.tr(args: [_duration.toString()]),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: buttonFontSize - 4, fontSize: buttonFontSize - 4,
@ -290,7 +292,8 @@ class WalletViewScreen extends StatelessWidget {
), ),
), ),
Text( Text(
"Vous pourrez renouveller\ncette certification\ndans $_duration", "canRenewCertInX"
.tr(args: [_duration.toString()]),
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle( style: TextStyle(
fontSize: buttonFontSize - 4, fontSize: buttonFontSize - 4,
@ -471,9 +474,9 @@ class WalletViewScreen extends StatelessWidget {
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
const Text( Text(
'Effectuer un virement', 'executeATransfer'.tr(),
style: TextStyle( style: const TextStyle(
fontSize: 26, fontWeight: FontWeight.w700), fontSize: 26, fontWeight: FontWeight.w700),
), ),
IconButton( IconButton(
@ -681,9 +684,9 @@ class WalletViewScreen extends StatelessWidget {
} }
} }
: null, : null,
child: const Text( child: Text(
'Effectuer le virement', 'executeTheTransfer'.tr(),
style: TextStyle( style: const TextStyle(
fontSize: 20, fontWeight: FontWeight.w600), fontSize: 20, fontWeight: FontWeight.w600),
), ),
), ),