App is fully translate en/fr !
This commit is contained in:
parent
87a6f444b3
commit
e71e00c995
|
@ -40,6 +40,7 @@
|
||||||
"thisWalletIsDefault": "This wallet is the default one",
|
"thisWalletIsDefault": "This wallet is the default one",
|
||||||
"defineWalletAsDefault": "Define this as the default one",
|
"defineWalletAsDefault": "Define this as the default one",
|
||||||
"displayActivity": "Display activity",
|
"displayActivity": "Display activity",
|
||||||
|
"displayNActivity": "Display\nactivity",
|
||||||
"memberValidated": "Validated member!",
|
"memberValidated": "Validated member!",
|
||||||
"copyAddress": "Copy\naddress",
|
"copyAddress": "Copy\naddress",
|
||||||
"copy": "Copy",
|
"copy": "Copy",
|
||||||
|
@ -148,5 +149,24 @@
|
||||||
"mustWaitXBeforeCertify": "You have to wait\n{} before\ncertifying again",
|
"mustWaitXBeforeCertify": "You have to wait\n{} before\ncertifying again",
|
||||||
"canRenewCertInX": "You can renew\nthis certification\nin {}",
|
"canRenewCertInX": "You can renew\nthis certification\nin {}",
|
||||||
"executeATransfer": "Execute a transfer",
|
"executeATransfer": "Execute a transfer",
|
||||||
"executeTheTransfer": "Execute the 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 :"
|
||||||
}
|
}
|
|
@ -40,6 +40,7 @@
|
||||||
"thisWalletIsDefault": "Ce portefeuille est celui par defaut",
|
"thisWalletIsDefault": "Ce portefeuille est celui par defaut",
|
||||||
"defineWalletAsDefault": "Définir comme portefeuille par défaut",
|
"defineWalletAsDefault": "Définir comme portefeuille par défaut",
|
||||||
"displayActivity": "Voir l'activité",
|
"displayActivity": "Voir l'activité",
|
||||||
|
"displayNActivity": "Voir\nl'activité",
|
||||||
"memberValidated": "Membre validé !",
|
"memberValidated": "Membre validé !",
|
||||||
"copyAddress": "Copier\nl'adresse",
|
"copyAddress": "Copier\nl'adresse",
|
||||||
"copy": "Copier",
|
"copy": "Copier",
|
||||||
|
@ -149,5 +150,24 @@
|
||||||
"mustWaitXBeforeCertify": "Vous devez attendre\n{} avant\nde pouvoir certifier",
|
"mustWaitXBeforeCertify": "Vous devez attendre\n{} avant\nde pouvoir certifier",
|
||||||
"canRenewCertInX": "Vous pourrez renouveller\ncette certification\ndans {}",
|
"canRenewCertInX": "Vous pourrez renouveller\ncette certification\ndans {}",
|
||||||
"executeATransfer": "Effectuer un virement",
|
"executeATransfer": "Effectuer un virement",
|
||||||
"executeTheTransfer": "Effectuer le 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 {} :"
|
||||||
}
|
}
|
|
@ -378,7 +378,7 @@ class WalletOptionsProvider with ChangeNotifier {
|
||||||
TextButton(
|
TextButton(
|
||||||
key: const Key('cancel'),
|
key: const Key('cancel'),
|
||||||
child: Text(
|
child: Text(
|
||||||
"Annuler",
|
"cancel".tr(),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 18,
|
fontSize: 18,
|
||||||
color: Colors.grey[800],
|
color: Colors.grey[800],
|
||||||
|
|
|
@ -29,9 +29,9 @@ class ChooseWalletScreen 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('Choix du portefeuille source'),
|
child: Text('choiceOfSourceWallet'.tr()),
|
||||||
)),
|
)),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Stack(children: [
|
child: Stack(children: [
|
||||||
|
|
|
@ -490,9 +490,9 @@ class WalletOptions extends StatelessWidget {
|
||||||
height: 45,
|
height: 45,
|
||||||
),
|
),
|
||||||
const SizedBox(width: 19),
|
const SizedBox(width: 19),
|
||||||
const Text('Supprimer ce portefeuille',
|
Text('deleteThisWallet'.tr(),
|
||||||
style:
|
style: const TextStyle(
|
||||||
TextStyle(fontSize: 20, color: Color(0xffD80000))),
|
fontSize: 20, color: Color(0xffD80000))),
|
||||||
])
|
])
|
||||||
: const SizedBox(width: 30),
|
: const SizedBox(width: 30),
|
||||||
);
|
);
|
||||||
|
|
|
@ -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';
|
||||||
|
@ -31,9 +32,9 @@ class SearchScreen 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('Rechercher'),
|
child: Text('search'.tr()),
|
||||||
),
|
),
|
||||||
leading: IconButton(
|
leading: IconButton(
|
||||||
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
icon: const Icon(Icons.arrow_back, color: Colors.black),
|
||||||
|
@ -105,9 +106,10 @@ class SearchScreen extends StatelessWidget {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
child: const Text(
|
child: Text(
|
||||||
'Rechercher',
|
'search'.tr(),
|
||||||
style: TextStyle(fontSize: 24, fontWeight: FontWeight.w600),
|
style: const TextStyle(
|
||||||
|
fontSize: 24, fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
@ -72,7 +72,7 @@ class SearchResultScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 40),
|
const SizedBox(height: 40),
|
||||||
Text(
|
Text(
|
||||||
'Dans la blockchain $currencyName',
|
'inBlockchainResult'.tr(args: [currencyName]),
|
||||||
style: const TextStyle(fontSize: 20),
|
style: const TextStyle(fontSize: 20),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
|
|
|
@ -53,7 +53,8 @@ class SettingsScreen extends StatelessWidget {
|
||||||
log.d(_sub.sdk.api.connectedNode?.endpoint);
|
log.d(_sub.sdk.api.connectedNode?.endpoint);
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: Row(children: [
|
child: Row(children: [
|
||||||
Text(' Noeud $currencyName :'),
|
const SizedBox(width: 10),
|
||||||
|
Text('currencyNode'.tr(args: [currencyName])),
|
||||||
const Spacer(),
|
const Spacer(),
|
||||||
Icon(_sub.nodeConnected && !_sub.isLoadingEndpoint
|
Icon(_sub.nodeConnected && !_sub.isLoadingEndpoint
|
||||||
? Icons.check
|
? Icons.check
|
||||||
|
|
|
@ -87,7 +87,7 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
log.d(_result);
|
log.d(_result);
|
||||||
if (_result.contains('blockHash: ')) {
|
if (_result.contains('blockHash: ')) {
|
||||||
isValid = true;
|
isValid = true;
|
||||||
_resultText = '$_actionName validé !';
|
_resultText = 'extrinsicValidated'.tr(args: [_actionName]);
|
||||||
} else {
|
} else {
|
||||||
isValid = false;
|
isValid = false;
|
||||||
_resultText = "anErrorOccured".tr() + ":\n";
|
_resultText = "anErrorOccured".tr() + ":\n";
|
||||||
|
@ -159,7 +159,9 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
height: 22,
|
height: 22,
|
||||||
child: Row(
|
child: Row(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[Text('$_actionName en cours')]),
|
children: <Widget>[
|
||||||
|
Text('extrinsicInProgress'.tr(args: [_actionName]))
|
||||||
|
]),
|
||||||
)),
|
)),
|
||||||
body: SafeArea(
|
body: SafeArea(
|
||||||
child: Align(
|
child: Align(
|
||||||
|
@ -186,10 +188,10 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
fontSize: 18, fontWeight: FontWeight.w600),
|
fontSize: 18, fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
if (transType == 'pay') const SizedBox(height: 10),
|
if (transType == 'pay') const SizedBox(height: 10),
|
||||||
const Text(
|
Text(
|
||||||
'de',
|
'fromMinus'.tr(),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(fontSize: 18),
|
style: const TextStyle(fontSize: 18),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
from,
|
from,
|
||||||
|
@ -198,10 +200,10 @@ class TransactionInProgress extends StatelessWidget {
|
||||||
fontSize: 18, fontWeight: FontWeight.w600),
|
fontSize: 18, fontWeight: FontWeight.w600),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
const Text(
|
Text(
|
||||||
'vers',
|
'toMinus'.tr(),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(fontSize: 18),
|
style: const TextStyle(fontSize: 18),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
to,
|
to,
|
||||||
|
|
|
@ -113,7 +113,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 9),
|
const SizedBox(height: 9),
|
||||||
Text(
|
Text(
|
||||||
"Voir\nl'activité",
|
"displayNActivity".tr(),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
fontSize: buttonFontSize, fontWeight: FontWeight.w500),
|
||||||
|
@ -139,32 +139,34 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
|
|
||||||
// TODO translate timing
|
// TODO translate timing
|
||||||
if (_seconds <= 0) {
|
if (_seconds <= 0) {
|
||||||
_duration = '0 secondes';
|
_duration = 'seconds'.tr(args: ['0']);
|
||||||
} else if (_seconds <= 60) {
|
} else if (_seconds <= 60) {
|
||||||
_duration = '$_seconds secondes';
|
_duration = 'seconds'.tr(args: [_seconds.toString()]);
|
||||||
} else if (_seconds <= 3600) {
|
} else if (_seconds <= 3600) {
|
||||||
_duration = '$_minutes minutes';
|
_duration = 'minutes'.tr(args: [_minutes.toString()]);
|
||||||
} else if (_seconds <= 86400) {
|
} else if (_seconds <= 86400) {
|
||||||
final int _hours = _durationSeconds.inHours;
|
final int _hours = _durationSeconds.inHours;
|
||||||
final int _minutesLeft = _minutes - _hours * 60;
|
final int _minutesLeft = _minutes - _hours * 60;
|
||||||
String _showMinutes = '';
|
String _showMinutes = '';
|
||||||
if (_minutesLeft < 60) {}
|
if (_minutesLeft < 60) {}
|
||||||
_showMinutes = ' $_minutesLeft minutes';
|
_showMinutes =
|
||||||
_duration = '$_hours heures$_showMinutes';
|
'minutes'.tr(args: [_minutesLeft.toString()]);
|
||||||
|
_duration =
|
||||||
|
'hours'.tr(args: [_hours.toString(), _showMinutes]);
|
||||||
} else if (_seconds <= 2592000) {
|
} else if (_seconds <= 2592000) {
|
||||||
final int _days = _durationSeconds.inDays;
|
final int _days = _durationSeconds.inDays;
|
||||||
_duration = '$_days jours';
|
_duration = 'days'.tr(args: [_days.toString()]);
|
||||||
} else {
|
} else {
|
||||||
final int _months =
|
final int _months =
|
||||||
(_durationSeconds.inDays / 30).round();
|
(_durationSeconds.inDays / 30).round();
|
||||||
_duration = '$_months mois';
|
_duration = 'months'.tr(args: [_months.toString()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return Visibility(
|
return Visibility(
|
||||||
visible: (snapshot.data != {}),
|
visible: (snapshot.data != {}),
|
||||||
child: Column(children: <Widget>[
|
child: Column(children: <Widget>[
|
||||||
if (snapshot.data!['canCert'] != null ||
|
if (snapshot.data!['canCert'] != null ||
|
||||||
_duration == '0 secondes')
|
_duration == 'seconds'.tr(args: ['0']))
|
||||||
Column(children: <Widget>[
|
Column(children: <Widget>[
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: buttonSize,
|
height: buttonSize,
|
||||||
|
@ -233,7 +235,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
const SizedBox(height: 9),
|
const SizedBox(height: 9),
|
||||||
Text(
|
Text(
|
||||||
"Certifier",
|
"certify".tr(),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: buttonFontSize,
|
fontSize: buttonFontSize,
|
||||||
|
@ -271,7 +273,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
if (snapshot.data!['certRenewable'] != null &&
|
if (snapshot.data!['certRenewable'] != null &&
|
||||||
_duration != '0 secondes')
|
_duration != 'seconds'.tr(args: ['0']))
|
||||||
Column(children: <Widget>[
|
Column(children: <Widget>[
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: buttonSize,
|
height: buttonSize,
|
||||||
|
@ -336,29 +338,6 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
]),
|
]),
|
||||||
// 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(),
|
const Spacer(),
|
||||||
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
||||||
return Opacity(
|
return Opacity(
|
||||||
|
@ -397,7 +376,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
const SizedBox(height: 9),
|
const SizedBox(height: 9),
|
||||||
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
Consumer<SubstrateSdk>(builder: (context, _sub, _) {
|
||||||
return Text(
|
return Text(
|
||||||
"Faire un\nvirement",
|
'doATransfer'.tr(),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
color: _sub.nodeConnected ? Colors.black : Colors.grey[500],
|
color: _sub.nodeConnected ? Colors.black : Colors.grey[500],
|
||||||
|
@ -489,7 +468,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
]),
|
]),
|
||||||
const SizedBox(height: 20),
|
const SizedBox(height: 20),
|
||||||
Text(
|
Text(
|
||||||
'Depuis:',
|
'from'.tr(),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 19,
|
fontSize: 19,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
|
@ -579,7 +558,7 @@ class WalletViewScreen extends StatelessWidget {
|
||||||
|
|
||||||
// const SizedBox(height: 10),
|
// const SizedBox(height: 10),
|
||||||
Text(
|
Text(
|
||||||
'Montant:',
|
'amount'.tr(),
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 19,
|
fontSize: 19,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
|
|
Loading…
Reference in New Issue