diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart new file mode 100644 index 00000000..04575e11 --- /dev/null +++ b/lib/l10n/app_localizations.dart @@ -0,0 +1,1801 @@ +import 'dart:async'; + +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +import 'app_localizations_en.dart'; +import 'app_localizations_es.dart'; + +// ignore_for_file: type=lint + +/// Callers can lookup localized strings with an instance of AppLocalizations +/// returned by `AppLocalizations.of(context)`. +/// +/// Applications need to include `AppLocalizations.delegate()` in their app's +/// `localizationDelegates` list, and the locales they support in the app's +/// `supportedLocales` list. For example: +/// +/// ```dart +/// import 'l10n/app_localizations.dart'; +/// +/// return MaterialApp( +/// localizationsDelegates: AppLocalizations.localizationsDelegates, +/// supportedLocales: AppLocalizations.supportedLocales, +/// home: MyApplicationHome(), +/// ); +/// ``` +/// +/// ## Update pubspec.yaml +/// +/// Please make sure to update your pubspec.yaml to include the following +/// packages: +/// +/// ```yaml +/// dependencies: +/// # Internationalization support. +/// flutter_localizations: +/// sdk: flutter +/// intl: any # Use the pinned version from flutter_localizations +/// +/// # Rest of dependencies +/// ``` +/// +/// ## iOS Applications +/// +/// iOS applications define key application metadata, including supported +/// locales, in an Info.plist file that is built into the application bundle. +/// To configure the locales supported by your app, you’ll need to edit this +/// file. +/// +/// First, open your project’s ios/Runner.xcworkspace Xcode workspace file. +/// Then, in the Project Navigator, open the Info.plist file under the Runner +/// project’s Runner folder. +/// +/// Next, select the Information Property List item, select Add Item from the +/// Editor menu, then select Localizations from the pop-up menu. +/// +/// Select and expand the newly-created Localizations item then, for each +/// locale your application supports, add a new item and select the locale +/// you wish to add from the pop-up menu in the Value field. This list should +/// be consistent with the languages listed in the AppLocalizations.supportedLocales +/// property. +abstract class AppLocalizations { + AppLocalizations(String locale) + : localeName = intl.Intl.canonicalizedLocale(locale.toString()); + + final String localeName; + + static AppLocalizations? of(BuildContext context) { + return Localizations.of(context, AppLocalizations); + } + + static const LocalizationsDelegate delegate = + _AppLocalizationsDelegate(); + + /// A list of this localizations delegate along with the default localizations + /// delegates. + /// + /// Returns a list of localizations delegates containing this delegate along with + /// GlobalMaterialLocalizations.delegate, GlobalCupertinoLocalizations.delegate, + /// and GlobalWidgetsLocalizations.delegate. + /// + /// Additional delegates can be added by appending to this list in + /// MaterialApp. This list does not have to be used at all if a custom list + /// of delegates is preferred or required. + static const List> localizationsDelegates = + >[ + delegate, + GlobalMaterialLocalizations.delegate, + GlobalCupertinoLocalizations.delegate, + GlobalWidgetsLocalizations.delegate, + ]; + + /// A list of this localizations delegate's supported locales. + static const List supportedLocales = [ + Locale('en'), + Locale('es') + ]; + + /// No description provided for @address. + /// + /// In en, this message translates to: + /// **'Address'** + String get address; + + /// No description provided for @addressBalanceDescription. + /// + /// In en, this message translates to: + /// **'Received payments totalling'** + String get addressBalanceDescription; + + /// No description provided for @addressCopied. + /// + /// In en, this message translates to: + /// **'Address copied!'** + String get addressCopied; + + /// No description provided for @addressList. + /// + /// In en, this message translates to: + /// **'Address list'** + String get addressList; + + /// No description provided for @addTimelockLabel. + /// + /// In en, this message translates to: + /// **'Add Timelock (Optional)'** + String get addTimelockLabel; + + /// No description provided for @advancedSettings. + /// + /// In en, this message translates to: + /// **'Advanced Settings'** + String get advancedSettings; + + /// No description provided for @amount. + /// + /// In en, this message translates to: + /// **'Amount'** + String get amount; + + /// No description provided for @authenticateWithBiometrics. + /// + /// In en, this message translates to: + /// **'Authenticate with biometrics'** + String get authenticateWithBiometrics; + + /// No description provided for @authorization. + /// + /// In en, this message translates to: + /// **'Node authorization'** + String get authorization; + + /// No description provided for @authorizationInputHint. + /// + /// In en, this message translates to: + /// **'Node authorization...'** + String get authorizationInputHint; + + /// No description provided for @autorizationTooltip. + /// + /// In en, this message translates to: + /// **'Node authorization to stake'** + String get autorizationTooltip; + + /// No description provided for @available. + /// + /// In en, this message translates to: + /// **'Available'** + String get available; + + /// No description provided for @backLabel. + /// + /// In en, this message translates to: + /// **'Back'** + String get backLabel; + + /// No description provided for @balance. + /// + /// In en, this message translates to: + /// **'balance'** + String get balance; + + /// No description provided for @balanceDetails. + /// + /// In en, this message translates to: + /// **'Balance details'** + String get balanceDetails; + + /// No description provided for @biometricsLabel. + /// + /// In en, this message translates to: + /// **'Biometrics'** + String get biometricsLabel; + + /// No description provided for @blocksMined. + /// + /// In en, this message translates to: + /// **'Blocks mined'** + String get blocksMined; + + /// No description provided for @buildWallet01. + /// + /// In en, this message translates to: + /// **'The different addresses in your wallet are being scanned for existing transactions and balance. This will normally take less than 1 minute.'** + String get buildWallet01; + + /// No description provided for @buildWalletBalance. + /// + /// In en, this message translates to: + /// **'Balance'** + String get buildWalletBalance; + + /// No description provided for @buildWalletHeader. + /// + /// In en, this message translates to: + /// **'Address discovery'** + String get buildWalletHeader; + + /// No description provided for @cancel. + /// + /// In en, this message translates to: + /// **'Cancel'** + String get cancel; + + /// No description provided for @cancelAuthentication. + /// + /// In en, this message translates to: + /// **'Cancel authentication'** + String get cancelAuthentication; + + /// No description provided for @carouselMsg01. + /// + /// In en, this message translates to: + /// **'myWitWallet allows you to send and receive Wit immediately. Bye bye synchronization!'** + String get carouselMsg01; + + /// No description provided for @carouselMsg02. + /// + /// In en, this message translates to: + /// **'myWitWallet uses state-of-the-art cryptography to store your Wit coins securely.'** + String get carouselMsg02; + + /// No description provided for @carouselMsg03. + /// + /// In en, this message translates to: + /// **'myWitWallet is completely non-custodial. Your keys will never leave your device.'** + String get carouselMsg03; + + /// No description provided for @chooseMinerFee. + /// + /// In en, this message translates to: + /// **'Choose you desired miner fee'** + String get chooseMinerFee; + + /// No description provided for @clearTimelockLabel. + /// + /// In en, this message translates to: + /// **'Clear Timelock'** + String get clearTimelockLabel; + + /// No description provided for @clickToInstall. + /// + /// In en, this message translates to: + /// **'Click to install'** + String get clickToInstall; + + /// No description provided for @close. + /// + /// In en, this message translates to: + /// **'Close'** + String get close; + + /// No description provided for @confirm. + /// + /// In en, this message translates to: + /// **'Confirm'** + String get confirm; + + /// No description provided for @confirmed. + /// + /// In en, this message translates to: + /// **'Confirmed'** + String get confirmed; + + /// No description provided for @confirmMnemonic01. + /// + /// In en, this message translates to: + /// **'Type in your secret recovery phrase below exactly as shown before. This will ensure that you have written down your secret recovery phrase correctly.'** + String get confirmMnemonic01; + + /// No description provided for @confirmMnemonicHeader. + /// + /// In en, this message translates to: + /// **'Secret Recovery Phrase Confirmation'** + String get confirmMnemonicHeader; + + /// No description provided for @confirmPassword. + /// + /// In en, this message translates to: + /// **'Confirm Password'** + String get confirmPassword; + + /// No description provided for @connectionIssue. + /// + /// In en, this message translates to: + /// **'myWitWallet is experiencing connection problems'** + String get connectionIssue; + + /// No description provided for @connectionReestablished. + /// + /// In en, this message translates to: + /// **'Connection reestablished!'** + String get connectionReestablished; + + /// No description provided for @continueLabel. + /// + /// In en, this message translates to: + /// **'Continue'** + String get continueLabel; + + /// No description provided for @copyAddressConfirmed. + /// + /// In en, this message translates to: + /// **'Address copied!'** + String get copyAddressConfirmed; + + /// No description provided for @copyAddressLabel. + /// + /// In en, this message translates to: + /// **'Copy selected address'** + String get copyAddressLabel; + + /// No description provided for @copyAddressToClipboard. + /// + /// In en, this message translates to: + /// **'Copy address to clipboard'** + String get copyAddressToClipboard; + + /// No description provided for @copyJson. + /// + /// In en, this message translates to: + /// **'Copy JSON'** + String get copyJson; + + /// No description provided for @copyStakingAddress. + /// + /// In en, this message translates to: + /// **'Copy withdrawal address'** + String get copyStakingAddress; + + /// No description provided for @copyXprvConfirmed. + /// + /// In en, this message translates to: + /// **'Xprv copied!'** + String get copyXprvConfirmed; + + /// No description provided for @copyXprvLabel. + /// + /// In en, this message translates to: + /// **'Copy Xprv'** + String get copyXprvLabel; + + /// No description provided for @createImportWallet01. + /// + /// In en, this message translates to: + /// **'When you created your wallet, you probably wrote down the secret security phrase on a piece of paper. It looks like a list of 12 apparently random words.'** + String get createImportWallet01; + + /// No description provided for @createImportWallet02. + /// + /// In en, this message translates to: + /// **'If you did not keep the secret security phrase, you can still export a password-protected Xprv key from the settings of your existing wallet.'** + String get createImportWallet02; + + /// No description provided for @createImportWalletHeader. + /// + /// In en, this message translates to: + /// **'Create or import your wallet'** + String get createImportWalletHeader; + + /// No description provided for @createNewWalletLabel. + /// + /// In en, this message translates to: + /// **'Create new wallet'** + String get createNewWalletLabel; + + /// No description provided for @createOrImportLabel. + /// + /// In en, this message translates to: + /// **'Create or import'** + String get createOrImportLabel; + + /// No description provided for @createWalletLabel. + /// + /// In en, this message translates to: + /// **'Create wallet'** + String get createWalletLabel; + + /// No description provided for @cryptoException. + /// + /// In en, this message translates to: + /// **'Error building the wallet'** + String get cryptoException; + + /// No description provided for @currentAddress. + /// + /// In en, this message translates to: + /// **'Current address'** + String get currentAddress; + + /// No description provided for @darkMode. + /// + /// In en, this message translates to: + /// **'Dark Mode'** + String get darkMode; + + /// No description provided for @dashboardViewSteps. + /// + /// In en, this message translates to: + /// **'{selectedIndex, select, transactions{Transactions} stats{Stats} other{unused}}'** + String dashboardViewSteps(String selectedIndex); + + /// No description provided for @dataRequestTxn. + /// + /// In en, this message translates to: + /// **'Data Request'** + String get dataRequestTxn; + + /// No description provided for @datePickerFormatError. + /// + /// In en, this message translates to: + /// **'Invalid date format'** + String get datePickerFormatError; + + /// No description provided for @datePickerHintText. + /// + /// In en, this message translates to: + /// **'Select date'** + String get datePickerHintText; + + /// No description provided for @datePickerInvalid. + /// + /// In en, this message translates to: + /// **'Invalid date'** + String get datePickerInvalid; + + /// No description provided for @delete. + /// + /// In en, this message translates to: + /// **'Delete'** + String get delete; + + /// No description provided for @deleteStorageWarning. + /// + /// In en, this message translates to: + /// **'Your storage is about to be permanently deleted!'** + String get deleteStorageWarning; + + /// No description provided for @deleteWallet. + /// + /// In en, this message translates to: + /// **'Delete wallet'** + String get deleteWallet; + + /// No description provided for @deleteWallet01. + /// + /// In en, this message translates to: + /// **'Clicking \"Delete\" will result in the permanent deletion of your current wallet data. If you proceed, you\'ll need to import the wallet again to access your funds.'** + String get deleteWallet01; + + /// No description provided for @deleteWalletSettings. + /// + /// In en, this message translates to: + /// **'Settings: Delete wallet'** + String get deleteWalletSettings; + + /// No description provided for @deleteWalletSuccess. + /// + /// In en, this message translates to: + /// **'Your wallet data has been successfully deleted!'** + String get deleteWalletSuccess; + + /// No description provided for @deleteWalletWarning. + /// + /// In en, this message translates to: + /// **'Your wallet is about to be permanently deleted!'** + String get deleteWalletWarning; + + /// No description provided for @disableStakeMessage. + /// + /// In en, this message translates to: + /// **'The minimun amount to stake is 10,000 WIT'** + String get disableStakeMessage; + + /// No description provided for @disableStakeTitle. + /// + /// In en, this message translates to: + /// **'You don\'t have enough balance to stake'** + String get disableStakeTitle; + + /// No description provided for @downloading. + /// + /// In en, this message translates to: + /// **'Downloading...'** + String get downloading; + + /// No description provided for @drSolved. + /// + /// In en, this message translates to: + /// **'Data requests solved'** + String get drSolved; + + /// No description provided for @emptyStakeMessage. + /// + /// In en, this message translates to: + /// **'Stake some \$WIT! Secure the network, earn rewards, and be part of a censorship-resistant oracle.'** + String get emptyStakeMessage; + + /// No description provided for @emptyStakeTitle. + /// + /// In en, this message translates to: + /// **'You don´t have balance to unstake'** + String get emptyStakeTitle; + + /// No description provided for @enableLoginWithBiometrics. + /// + /// In en, this message translates to: + /// **'Enable login with biometrics'** + String get enableLoginWithBiometrics; + + /// No description provided for @encryptWallet01. + /// + /// In en, this message translates to: + /// **'This password encrypts your Witnet wallet only on this computer.'** + String get encryptWallet01; + + /// No description provided for @encryptWallet02. + /// + /// In en, this message translates to: + /// **'This is not your backup and you cannot restore your wallet with this password.'** + String get encryptWallet02; + + /// No description provided for @encryptWallet03. + /// + /// In en, this message translates to: + /// **'Your {mnemonicLength} word seed phrase is still your ultimate recovery method.'** + String encryptWallet03(int mnemonicLength); + + /// No description provided for @encryptWallet04. + /// + /// In en, this message translates to: + /// **'Your Xprv is still your ultimate recovery method.'** + String get encryptWallet04; + + /// No description provided for @encryptWalletHeader. + /// + /// In en, this message translates to: + /// **'Encrypt your wallet'** + String get encryptWalletHeader; + + /// No description provided for @enterYourPassword. + /// + /// In en, this message translates to: + /// **'Enter your Password'** + String get enterYourPassword; + + /// No description provided for @epoch. + /// + /// In en, this message translates to: + /// **'Epoch'** + String get epoch; + + /// No description provided for @error. + /// + /// In en, this message translates to: + /// **'Error'** + String get error; + + /// No description provided for @errorDeletingWallet. + /// + /// In en, this message translates to: + /// **'There was an error deleting the wallet, please try again!'** + String get errorDeletingWallet; + + /// No description provided for @errorFieldBlank. + /// + /// In en, this message translates to: + /// **'Field is blank'** + String get errorFieldBlank; + + /// No description provided for @errorReestablish. + /// + /// In en, this message translates to: + /// **'There was an error re-establishing myWitWallet, please try again!'** + String get errorReestablish; + + /// No description provided for @errorSigning. + /// + /// In en, this message translates to: + /// **'Error signing message'** + String get errorSigning; + + /// No description provided for @errorTransaction. + /// + /// In en, this message translates to: + /// **'Error sending the transaction, try again!'** + String get errorTransaction; + + /// No description provided for @errorTryAgain. + /// + /// In en, this message translates to: + /// **'Error. Try Again.'** + String get errorTryAgain; + + /// No description provided for @errorXprvStart. + /// + /// In en, this message translates to: + /// **'needs to start with \"xprv1\"'** + String get errorXprvStart; + + /// No description provided for @estimatedFeeOptions. + /// + /// In en, this message translates to: + /// **'{feeOption, select, stinky{Stinky} low{Low} medium{Medium} high{High} opulent{Opulent} custom{Custom} other{}}'** + String estimatedFeeOptions(String feeOption); + + /// No description provided for @exploredAddresses. + /// + /// In en, this message translates to: + /// **'Explored addresses'** + String get exploredAddresses; + + /// No description provided for @exploringAddress. + /// + /// In en, this message translates to: + /// **'Exploring address: '** + String get exploringAddress; + + /// No description provided for @exportJson. + /// + /// In en, this message translates to: + /// **'Export JSON'** + String get exportJson; + + /// No description provided for @exportXprv. + /// + /// In en, this message translates to: + /// **'Export Xprv'** + String get exportXprv; + + /// No description provided for @fee. + /// + /// In en, this message translates to: + /// **'Fee'** + String get fee; + + /// No description provided for @feesAndRewards. + /// + /// In en, this message translates to: + /// **'Fees and rewards'** + String get feesAndRewards; + + /// No description provided for @feesCollected. + /// + /// In en, this message translates to: + /// **'Fees collected'** + String get feesCollected; + + /// No description provided for @feesPayed. + /// + /// In en, this message translates to: + /// **'Fees payed'** + String get feesPayed; + + /// No description provided for @feeTypeOptions. + /// + /// In en, this message translates to: + /// **'{feeType, select, absolute{Absolute} weighted{Weighted} other{}}'** + String feeTypeOptions(String feeType); + + /// No description provided for @forgetPassword. + /// + /// In en, this message translates to: + /// **'Did you forget your password?, You can delete your wallet and configure a new one!'** + String get forgetPassword; + + /// No description provided for @from. + /// + /// In en, this message translates to: + /// **'From'** + String get from; + + /// No description provided for @generateAddressWarning. + /// + /// In en, this message translates to: + /// **'You are about to generate a new address'** + String get generateAddressWarning; + + /// No description provided for @generateAddressWarningMessage. + /// + /// In en, this message translates to: + /// **'A new address will be generated and ready to be used. The main address displayed in the navigation will be updated to the new one.'** + String get generateAddressWarningMessage; + + /// No description provided for @generatedAddress. + /// + /// In en, this message translates to: + /// **'Generated address'** + String get generatedAddress; + + /// No description provided for @generatedAddresses. + /// + /// In en, this message translates to: + /// **'Generated addresses'** + String get generatedAddresses; + + /// No description provided for @generateMnemonic01. + /// + /// In en, this message translates to: + /// **'These {mnemonicLength} apparently random words are your secret recovery phrase. They will allow you to recover your Wit coins if you uninstall this app or forget your wallet lock password.'** + String generateMnemonic01(int mnemonicLength); + + /// No description provided for @generateMnemonic02. + /// + /// In en, this message translates to: + /// **'You must write down your secret recovery phrase on a piece of paper and store it somewhere safe. Do not store it in a file in your device or anywhere else electronically. If you lose your secret recovery phrase, you may permanently lose access to your wallet and your Wit coins.'** + String get generateMnemonic02; + + /// No description provided for @generateMnemonic03. + /// + /// In en, this message translates to: + /// **'You should never share your secret recovery phrase with anyone. If someone finds or sees your secret recovery phrase, they will have full access to your wallet and your Wit coins.'** + String get generateMnemonic03; + + /// No description provided for @generateMnemonicHeader. + /// + /// In en, this message translates to: + /// **'Write down your secret recovery phrase'** + String get generateMnemonicHeader; + + /// No description provided for @generateXprv. + /// + /// In en, this message translates to: + /// **'Generate Xprv'** + String get generateXprv; + + /// No description provided for @genNewAddressLabel. + /// + /// In en, this message translates to: + /// **'Generate new Address'** + String get genNewAddressLabel; + + /// No description provided for @history. + /// + /// In en, this message translates to: + /// **'History'** + String get history; + + /// No description provided for @home. + /// + /// In en, this message translates to: + /// **'Transactions list'** + String get home; + + /// No description provided for @hour. + /// + /// In en, this message translates to: + /// **'Hour'** + String get hour; + + /// No description provided for @importMnemonic01. + /// + /// In en, this message translates to: + /// **'Type your secret recovery phrase below. It looks like a list of 12 apparently random words.'** + String get importMnemonic01; + + /// No description provided for @importMnemonicHeader. + /// + /// In en, this message translates to: + /// **'Import wallet from secret recovery phrase'** + String get importMnemonicHeader; + + /// No description provided for @importMnemonicLabel. + /// + /// In en, this message translates to: + /// **'Import from secret recovery phrase'** + String get importMnemonicLabel; + + /// No description provided for @importWalletHeader. + /// + /// In en, this message translates to: + /// **''** + String get importWalletHeader; + + /// No description provided for @importWalletLabel. + /// + /// In en, this message translates to: + /// **'Import wallet'** + String get importWalletLabel; + + /// No description provided for @importXprv01. + /// + /// In en, this message translates to: + /// **'Xprv is a key exchange format that encodes and protects your wallet with a password. Xprv keys look like a long sequence of apparently random letters and numbers, preceded by \"xprv\".'** + String get importXprv01; + + /// No description provided for @importXprv02. + /// + /// In en, this message translates to: + /// **'To import your wallet from an Xprv key encrypted with a password, you need to type the key itself and its password below:'** + String get importXprv02; + + /// No description provided for @importXprvHeader. + /// + /// In en, this message translates to: + /// **'Import wallet from an Xprv key'** + String get importXprvHeader; + + /// No description provided for @importXprvLabel. + /// + /// In en, this message translates to: + /// **'Import from Xprv key'** + String get importXprvLabel; + + /// No description provided for @initializingWallet. + /// + /// In en, this message translates to: + /// **'Initializing Wallet.'** + String get initializingWallet; + + /// No description provided for @inputAmountHint. + /// + /// In en, this message translates to: + /// **'Input an amount'** + String get inputAmountHint; + + /// No description provided for @inputPasswordPrompt. + /// + /// In en, this message translates to: + /// **'Please, input your wallet\'s password.'** + String get inputPasswordPrompt; + + /// No description provided for @inputs. + /// + /// In en, this message translates to: + /// **'Inputs'** + String get inputs; + + /// No description provided for @inputYourPassword. + /// + /// In en, this message translates to: + /// **'Input your password'** + String get inputYourPassword; + + /// No description provided for @insufficientFunds. + /// + /// In en, this message translates to: + /// **'Insufficient funds'** + String get insufficientFunds; + + /// No description provided for @insufficientUtxosAvailable. + /// + /// In en, this message translates to: + /// **'Wait untill the pending transactions are confirmed or try creating a transaction with a smaller amount.'** + String get insufficientUtxosAvailable; + + /// No description provided for @internalBalance. + /// + /// In en, this message translates to: + /// **'Internal balance'** + String get internalBalance; + + /// No description provided for @internalBalanceHint. + /// + /// In en, this message translates to: + /// **'The internal balance corresponds to the sum of all the change accounts available balance'** + String get internalBalanceHint; + + /// No description provided for @invalidPassword. + /// + /// In en, this message translates to: + /// **'Invalid Password'** + String get invalidPassword; + + /// No description provided for @invalidXprv. + /// + /// In en, this message translates to: + /// **'Invalid Xprv:'** + String get invalidXprv; + + /// No description provided for @invalidXprvBlank. + /// + /// In en, this message translates to: + /// **'Field is blank'** + String get invalidXprvBlank; + + /// No description provided for @invalidXprvStart. + /// + /// In en, this message translates to: + /// **'needs to start with \"xprv1\"'** + String get invalidXprvStart; + + /// No description provided for @jsonCopied. + /// + /// In en, this message translates to: + /// **'JSON copied!'** + String get jsonCopied; + + /// No description provided for @later. + /// + /// In en, this message translates to: + /// **'Later'** + String get later; + + /// No description provided for @launchUrlError. + /// + /// In en, this message translates to: + /// **'Could not launch {error}'** + String launchUrlError(String error); + + /// No description provided for @lightMode. + /// + /// In en, this message translates to: + /// **'Light Mode'** + String get lightMode; + + /// No description provided for @loading. + /// + /// In en, this message translates to: + /// **'Loading'** + String get loading; + + /// No description provided for @locked. + /// + /// In en, this message translates to: + /// **'Locked'** + String get locked; + + /// No description provided for @lockWalletLabel. + /// + /// In en, this message translates to: + /// **'Lock wallet'** + String get lockWalletLabel; + + /// No description provided for @lockYourWallet. + /// + /// In en, this message translates to: + /// **'Lock your wallet'** + String get lockYourWallet; + + /// No description provided for @messageSigning. + /// + /// In en, this message translates to: + /// **'Message Signing'** + String get messageSigning; + + /// No description provided for @messageSigning01. + /// + /// In en, this message translates to: + /// **'Prove the ownership of your address by adding your signature to a message.'** + String get messageSigning01; + + /// No description provided for @messageToBeSigned. + /// + /// In en, this message translates to: + /// **'Message to be signed'** + String get messageToBeSigned; + + /// No description provided for @mined. + /// + /// In en, this message translates to: + /// **'Mined'** + String get mined; + + /// No description provided for @minerFeeHint. + /// + /// In en, this message translates to: + /// **'By default, \'Absolute fee\' is selected.\nTo set a custom weighted fee, you need to select \'Weighted\'. \nThe Weighted fee is automatically calculated by the wallet considering the network congestion and transaction weight multiplied by the value selected as custom.'** + String get minerFeeHint; + + /// No description provided for @minerFeeInputHint. + /// + /// In en, this message translates to: + /// **'Input the miner fee'** + String get minerFeeInputHint; + + /// No description provided for @mintTxn. + /// + /// In en, this message translates to: + /// **'Mint'** + String get mintTxn; + + /// No description provided for @minutes. + /// + /// In en, this message translates to: + /// **'Minutes'** + String get minutes; + + /// No description provided for @nameLabel. + /// + /// In en, this message translates to: + /// **'Name'** + String get nameLabel; + + /// No description provided for @networkContribution. + /// + /// In en, this message translates to: + /// **'Network contribution'** + String get networkContribution; + + /// No description provided for @newVersion. + /// + /// In en, this message translates to: + /// **'New Version: {versionNumber}'** + String newVersion(Object versionNumber); + + /// No description provided for @newVersionAvailable. + /// + /// In en, this message translates to: + /// **'A new version of the app is available.'** + String get newVersionAvailable; + + /// No description provided for @noTransactions. + /// + /// In en, this message translates to: + /// **'You don\'t have transactions yet!'** + String get noTransactions; + + /// No description provided for @okLabel. + /// + /// In en, this message translates to: + /// **'Ok'** + String get okLabel; + + /// No description provided for @outputs. + /// + /// In en, this message translates to: + /// **'Outputs'** + String get outputs; + + /// No description provided for @passwordDescription. + /// + /// In en, this message translates to: + /// **'This password encrypts your xprv file. You will be asked to type this password if you want to import this xprv as a backup.'** + String get passwordDescription; + + /// No description provided for @passwordLabel. + /// + /// In en, this message translates to: + /// **'Password'** + String get passwordLabel; + + /// No description provided for @pending. + /// + /// In en, this message translates to: + /// **'Pending'** + String get pending; + + /// No description provided for @pleaseWait. + /// + /// In en, this message translates to: + /// **'Please wait...'** + String get pleaseWait; + + /// No description provided for @preferenceTabs. + /// + /// In en, this message translates to: + /// **'{selectedTab, select, general{General} wallet{Wallet} other{unused}}'** + String preferenceTabs(String selectedTab); + + /// No description provided for @readCarefully. + /// + /// In en, this message translates to: + /// **'Please, read carefully before continuing. Your attention is crucial!'** + String get readCarefully; + + /// No description provided for @readyToInstall. + /// + /// In en, this message translates to: + /// **'Ready to install'** + String get readyToInstall; + + /// No description provided for @receive. + /// + /// In en, this message translates to: + /// **'Receive'** + String get receive; + + /// No description provided for @recipientAddress. + /// + /// In en, this message translates to: + /// **'Recipient address'** + String get recipientAddress; + + /// No description provided for @reestablish. + /// + /// In en, this message translates to: + /// **'Re-establish'** + String get reestablish; + + /// No description provided for @reestablishInstructions. + /// + /// In en, this message translates to: + /// **'Clicking \"Continue\" will result in the permanent deletion of your current wallet data. If you proceed, you\'ll need to import an existing wallet to access your funds or create a new one.'** + String get reestablishInstructions; + + /// No description provided for @reestablishSteps01. + /// + /// In en, this message translates to: + /// **'Make sure you have stored your recovery seed phrase or Xprv.'** + String get reestablishSteps01; + + /// No description provided for @reestablishSteps02. + /// + /// In en, this message translates to: + /// **'Click \"Continue\" to delete your storage and import your wallet again.'** + String get reestablishSteps02; + + /// No description provided for @reestablishSucess. + /// + /// In en, this message translates to: + /// **'myWitWallet has been successfully re-established!'** + String get reestablishSucess; + + /// No description provided for @reestablishWallet. + /// + /// In en, this message translates to: + /// **'Re-establish wallet'** + String get reestablishWallet; + + /// No description provided for @reestablishYourWallet. + /// + /// In en, this message translates to: + /// **'Re-establish your wallet'** + String get reestablishYourWallet; + + /// No description provided for @reverted. + /// + /// In en, this message translates to: + /// **'Reverted'** + String get reverted; + + /// No description provided for @scanAqrCode. + /// + /// In en, this message translates to: + /// **'Scan a QR code'** + String get scanAqrCode; + + /// No description provided for @scanQrCodeLabel. + /// + /// In en, this message translates to: + /// **'Scan QR code'** + String get scanQrCodeLabel; + + /// No description provided for @selectImportOptionHeader. + /// + /// In en, this message translates to: + /// **'Import your wallet'** + String get selectImportOptionHeader; + + /// No description provided for @send. + /// + /// In en, this message translates to: + /// **'Send'** + String get send; + + /// No description provided for @sendReceiveTx. + /// + /// In en, this message translates to: + /// **'Send or receive WIT'** + String get sendReceiveTx; + + /// No description provided for @sendStakeTransaction. + /// + /// In en, this message translates to: + /// **'Stake Transaction'** + String get sendStakeTransaction; + + /// No description provided for @sendUnstakeTransaction. + /// + /// In en, this message translates to: + /// **'Unstake Transaction'** + String get sendUnstakeTransaction; + + /// No description provided for @sendValueTransferTransaction. + /// + /// In en, this message translates to: + /// **'Value Transfer Transaction'** + String get sendValueTransferTransaction; + + /// No description provided for @setTimelock. + /// + /// In en, this message translates to: + /// **'Set Timelock'** + String get setTimelock; + + /// No description provided for @settings. + /// + /// In en, this message translates to: + /// **'Settings'** + String get settings; + + /// No description provided for @settingsMessageSigning. + /// + /// In en, this message translates to: + /// **'Settings: Message Signing'** + String get settingsMessageSigning; + + /// No description provided for @settingsWalletConfigHeader. + /// + /// In en, this message translates to: + /// **'Settings: Export the Xprv key of my wallet'** + String get settingsWalletConfigHeader; + + /// No description provided for @sheikah. + /// + /// In en, this message translates to: + /// **'Sheikah'** + String get sheikah; + + /// No description provided for @showBalanceDetails. + /// + /// In en, this message translates to: + /// **'Show balance details'** + String get showBalanceDetails; + + /// No description provided for @showPassword. + /// + /// In en, this message translates to: + /// **'Show password'** + String get showPassword; + + /// No description provided for @showWalletList. + /// + /// In en, this message translates to: + /// **'Show wallet list'** + String get showWalletList; + + /// No description provided for @signAndSend. + /// + /// In en, this message translates to: + /// **'Sign and Send'** + String get signAndSend; + + /// No description provided for @signMessage. + /// + /// In en, this message translates to: + /// **'Sign Message'** + String get signMessage; + + /// No description provided for @signMessageError. + /// + /// In en, this message translates to: + /// **'Error signing message'** + String get signMessageError; + + /// No description provided for @speedUp. + /// + /// In en, this message translates to: + /// **'Speed up'** + String get speedUp; + + /// No description provided for @speedUpTxTitle. + /// + /// In en, this message translates to: + /// **'Speed up transaction'** + String get speedUpTxTitle; + + /// No description provided for @stake. + /// + /// In en, this message translates to: + /// **'Stake'** + String get stake; + + /// No description provided for @staked. + /// + /// In en, this message translates to: + /// **'Staked'** + String get staked; + + /// No description provided for @stakeSteps. + /// + /// In en, this message translates to: + /// **'{currentStepIndex, select, Transaction{Stake} MinerFee{Miner Fee} Review{Review} other{unused}}'** + String stakeSteps(String currentStepIndex); + + /// No description provided for @stakeTxnSuccess. + /// + /// In en, this message translates to: + /// **'Stake transaction succesfully sent!'** + String get stakeTxnSuccess; + + /// No description provided for @stakeUnstake. + /// + /// In en, this message translates to: + /// **'Stake or unstake WIT'** + String get stakeUnstake; + + /// No description provided for @stakeWithdrawalAddressText. + /// + /// In en, this message translates to: + /// **'This is the address to create Stake transactions. Make sure this address is authorized to stake.'** + String get stakeWithdrawalAddressText; + + /// No description provided for @stakingAddressCopied. + /// + /// In en, this message translates to: + /// **'Withdrawal address copied!'** + String get stakingAddressCopied; + + /// No description provided for @status. + /// + /// In en, this message translates to: + /// **'Status'** + String get status; + + /// No description provided for @theme. + /// + /// In en, this message translates to: + /// **'Theme'** + String get theme; + + /// No description provided for @timelock. + /// + /// In en, this message translates to: + /// **'Timelock'** + String get timelock; + + /// No description provided for @timelockTooltip. + /// + /// In en, this message translates to: + /// **'The recipient will not be able to spend the coins before this date and time.'** + String get timelockTooltip; + + /// No description provided for @timePickerHintText. + /// + /// In en, this message translates to: + /// **'Set Time'** + String get timePickerHintText; + + /// No description provided for @timePickerInvalid. + /// + /// In en, this message translates to: + /// **'Invalid time'** + String get timePickerInvalid; + + /// No description provided for @timestamp. + /// + /// In en, this message translates to: + /// **'Timestamp'** + String get timestamp; + + /// No description provided for @to. + /// + /// In en, this message translates to: + /// **'To'** + String get to; + + /// No description provided for @total. + /// + /// In en, this message translates to: + /// **'Total'** + String get total; + + /// No description provided for @totalDataSynced. + /// + /// In en, this message translates to: + /// **'Scan summary'** + String get totalDataSynced; + + /// No description provided for @totalFeesPaid. + /// + /// In en, this message translates to: + /// **'Total fees paid'** + String get totalFeesPaid; + + /// No description provided for @totalMiningRewards. + /// + /// In en, this message translates to: + /// **'Total mining rewards'** + String get totalMiningRewards; + + /// No description provided for @transaction. + /// + /// In en, this message translates to: + /// **'Transaction'** + String get transaction; + + /// No description provided for @transactionDetails. + /// + /// In en, this message translates to: + /// **'Transaction details'** + String get transactionDetails; + + /// No description provided for @transactionId. + /// + /// In en, this message translates to: + /// **'Transaction ID'** + String get transactionId; + + /// No description provided for @transactionsFound. + /// + /// In en, this message translates to: + /// **'Transactions found'** + String get transactionsFound; + + /// No description provided for @tryAgain. + /// + /// In en, this message translates to: + /// **'Try again!'** + String get tryAgain; + + /// No description provided for @txEmptyState. + /// + /// In en, this message translates to: + /// **'You don\'t have transactions yet!'** + String get txEmptyState; + + /// No description provided for @txnCheckStatus. + /// + /// In en, this message translates to: + /// **'Check the transaction status in the Witnet Block Explorer:'** + String get txnCheckStatus; + + /// No description provided for @txnDetails. + /// + /// In en, this message translates to: + /// **'Transaction details'** + String get txnDetails; + + /// No description provided for @txnSending. + /// + /// In en, this message translates to: + /// **'Sending transaction'** + String get txnSending; + + /// No description provided for @txnSending01. + /// + /// In en, this message translates to: + /// **'The transaction is being sent'** + String get txnSending01; + + /// No description provided for @txnSigning. + /// + /// In en, this message translates to: + /// **'Signing transaction'** + String get txnSigning; + + /// No description provided for @txnSigning01. + /// + /// In en, this message translates to: + /// **'The transaction is being signed'** + String get txnSigning01; + + /// No description provided for @txnStatus. + /// + /// In en, this message translates to: + /// **'{feeType, select, pending{pending} mined{mined} confirmed{confirmed} other{}}'** + String txnStatus(String feeType); + + /// No description provided for @txnSuccess. + /// + /// In en, this message translates to: + /// **'Transaction succesfully sent!'** + String get txnSuccess; + + /// No description provided for @type. + /// + /// In en, this message translates to: + /// **'Type'** + String get type; + + /// No description provided for @unlockWallet. + /// + /// In en, this message translates to: + /// **'Unlock wallet'** + String get unlockWallet; + + /// No description provided for @unstake. + /// + /// In en, this message translates to: + /// **'Unstake'** + String get unstake; + + /// No description provided for @unstakeSteps. + /// + /// In en, this message translates to: + /// **'{currentStepIndex, select, Transaction{Unstake} MinerFee{Miner Fee} Review{Review} other{unused}}'** + String unstakeSteps(String currentStepIndex); + + /// No description provided for @unstakeTxnSuccess. + /// + /// In en, this message translates to: + /// **'Unstake transaction succesfully sent!'** + String get unstakeTxnSuccess; + + /// No description provided for @unstakeWithdrawalAddressText. + /// + /// In en, this message translates to: + /// **'This is the address used to create Stake transactions.'** + String get unstakeWithdrawalAddressText; + + /// No description provided for @updateAvailable. + /// + /// In en, this message translates to: + /// **'Update available'** + String get updateAvailable; + + /// No description provided for @updateError. + /// + /// In en, this message translates to: + /// **'There was an issue with the update. Please try again.'** + String get updateError; + + /// No description provided for @updateNow. + /// + /// In en, this message translates to: + /// **'Update now'** + String get updateNow; + + /// No description provided for @updateToVersion. + /// + /// In en, this message translates to: + /// **'Update to version {versionNumber}'** + String updateToVersion(Object versionNumber); + + /// No description provided for @validationDecimals. + /// + /// In en, this message translates to: + /// **'Only 9 decimal digits supported'** + String get validationDecimals; + + /// No description provided for @validationEmpty. + /// + /// In en, this message translates to: + /// **'Please enter an amount'** + String get validationEmpty; + + /// No description provided for @validationEnoughFunds. + /// + /// In en, this message translates to: + /// **'Not enough Funds'** + String get validationEnoughFunds; + + /// No description provided for @validationInvalidAmount. + /// + /// In en, this message translates to: + /// **'Invalid amount'** + String get validationInvalidAmount; + + /// No description provided for @validationMinFee. + /// + /// In en, this message translates to: + /// **'Fee should be higher than'** + String get validationMinFee; + + /// No description provided for @validationNoZero. + /// + /// In en, this message translates to: + /// **'Amount cannot be zero'** + String get validationNoZero; + + /// No description provided for @validator. + /// + /// In en, this message translates to: + /// **'Validator'** + String get validator; + + /// No description provided for @validatorDescription. + /// + /// In en, this message translates to: + /// **'Validator address that authorized staking.'** + String get validatorDescription; + + /// No description provided for @valueTransferTxn. + /// + /// In en, this message translates to: + /// **'Value Transfer'** + String get valueTransferTxn; + + /// No description provided for @verifyLabel. + /// + /// In en, this message translates to: + /// **'Verify'** + String get verifyLabel; + + /// No description provided for @versionNumber. + /// + /// In en, this message translates to: + /// **'Version {versionNumber}'** + String versionNumber(String versionNumber); + + /// No description provided for @viewOnExplorer. + /// + /// In en, this message translates to: + /// **'View on Block Explorer'** + String get viewOnExplorer; + + /// No description provided for @vttException. + /// + /// In en, this message translates to: + /// **'Error building the transaction'** + String get vttException; + + /// No description provided for @vttSendSteps. + /// + /// In en, this message translates to: + /// **'{currentStepIndex, select, Transaction{Transaction} MinerFee{Miner Fee} Review{Review} other{unused}}'** + String vttSendSteps(String currentStepIndex); + + /// No description provided for @walletConfig01. + /// + /// In en, this message translates to: + /// **'Your Xprv key allows you to export and back up your wallet at any point after creating it.'** + String get walletConfig01; + + /// No description provided for @walletConfig02. + /// + /// In en, this message translates to: + /// **'Privacy-wise, your Xprv key is equivalent to a secret recovery phrase. Do not share it with anyone, and never store it in a file in your device or anywhere else electronically.'** + String get walletConfig02; + + /// No description provided for @walletConfig03. + /// + /// In en, this message translates to: + /// **'Your Xprv key will be protected with the password below. When importing the Xprv on this or another app, you will be asked to type in that same password.'** + String get walletConfig03; + + /// No description provided for @walletConfigHeader. + /// + /// In en, this message translates to: + /// **'Export the Xprv key of my wallet'** + String get walletConfigHeader; + + /// No description provided for @walletDetail01. + /// + /// In en, this message translates to: + /// **'You can better keep track of your different wallets by giving each its own name and description.'** + String get walletDetail01; + + /// No description provided for @walletDetail02. + /// + /// In en, this message translates to: + /// **'Wallet names make it easy to quickly change from one wallet to another. Wallet descriptions can be more elaborate and rather describe the purpose of a wallet or any other metadata.'** + String get walletDetail02; + + /// No description provided for @walletDetailHeader. + /// + /// In en, this message translates to: + /// **'Identify your wallet'** + String get walletDetailHeader; + + /// No description provided for @walletNameHint. + /// + /// In en, this message translates to: + /// **'My first million Wits'** + String get walletNameHint; + + /// No description provided for @walletSecurity01. + /// + /// In en, this message translates to: + /// **'Please, read carefully before continuing.'** + String get walletSecurity01; + + /// No description provided for @walletSecurity02. + /// + /// In en, this message translates to: + /// **'A wallet is an app that keeps your credentials safe and lets you interface with the Witnet blockchain. It allows you to easily transfer and receive Wit.'** + String get walletSecurity02; + + /// No description provided for @walletSecurity03. + /// + /// In en, this message translates to: + /// **'You should never share your seed phrase with anyone. We at Witnet do not store your seed phrase and will never ask you to share it with us. If you lose your seed phrase, you will permanently lose access to your wallet and your funds.'** + String get walletSecurity03; + + /// No description provided for @walletSecurity04. + /// + /// In en, this message translates to: + /// **'If someone finds or sees your seed phrase, they will have access to your wallet and all of your funds.'** + String get walletSecurity04; + + /// No description provided for @walletSecurity05. + /// + /// In en, this message translates to: + /// **'We recommend storing your seed phrase on paper somewhere safe. Do not store it in a file on your computer or anywhere electronically.'** + String get walletSecurity05; + + /// No description provided for @walletSecurity06. + /// + /// In en, this message translates to: + /// **'By accepting these disclaimers, you commit to comply with the explained restrictions and digitally sign your conformance using your Witnet wallet.'** + String get walletSecurity06; + + /// No description provided for @walletSecurityConfirmLabel. + /// + /// In en, this message translates to: + /// **'I will be careful, I promise!'** + String get walletSecurityConfirmLabel; + + /// No description provided for @walletSecurityHeader. + /// + /// In en, this message translates to: + /// **'Wallet security'** + String get walletSecurityHeader; + + /// No description provided for @walletTypeHDLabel. + /// + /// In en, this message translates to: + /// **'HD Wallet'** + String get walletTypeHDLabel; + + /// No description provided for @walletTypeNodeLabel. + /// + /// In en, this message translates to: + /// **'Node'** + String get walletTypeNodeLabel; + + /// No description provided for @welcome. + /// + /// In en, this message translates to: + /// **'Welcome'** + String get welcome; + + /// No description provided for @welcomeBack. + /// + /// In en, this message translates to: + /// **'Welcome back'** + String get welcomeBack; + + /// No description provided for @whatToDo. + /// + /// In en, this message translates to: + /// **'What to do?'** + String get whatToDo; + + /// No description provided for @withdrawer. + /// + /// In en, this message translates to: + /// **'Withdrawer'** + String get withdrawer; + + /// No description provided for @withdrawalAddress. + /// + /// In en, this message translates to: + /// **'Withdrawal address'** + String get withdrawalAddress; + + /// No description provided for @xprvInputHint. + /// + /// In en, this message translates to: + /// **'Your Xprv key (starts with xprv...)'** + String get xprvInputHint; + + /// No description provided for @xprvOrigin. + /// + /// In en, this message translates to: + /// **'Xprv Origin'** + String get xprvOrigin; + + /// No description provided for @yourMessage. + /// + /// In en, this message translates to: + /// **'Your message...'** + String get yourMessage; +} + +class _AppLocalizationsDelegate + extends LocalizationsDelegate { + const _AppLocalizationsDelegate(); + + @override + Future load(Locale locale) { + return SynchronousFuture(lookupAppLocalizations(locale)); + } + + @override + bool isSupported(Locale locale) => + ['en', 'es'].contains(locale.languageCode); + + @override + bool shouldReload(_AppLocalizationsDelegate old) => false; +} + +AppLocalizations lookupAppLocalizations(Locale locale) { + // Lookup logic when only language code is specified. + switch (locale.languageCode) { + case 'en': + return AppLocalizationsEn(); + case 'es': + return AppLocalizationsEs(); + } + + throw FlutterError( + 'AppLocalizations.delegate failed to load unsupported locale "$locale". This is likely ' + 'an issue with the localizations generation tool. Please file an issue ' + 'on GitHub with a reproducible sample app and the gen-l10n configuration ' + 'that was used.'); +} diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart new file mode 100644 index 00000000..3a6b7230 --- /dev/null +++ b/lib/l10n/app_localizations_en.dart @@ -0,0 +1,998 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for English (`en`). +class AppLocalizationsEn extends AppLocalizations { + AppLocalizationsEn([String locale = 'en']) : super(locale); + + @override + String get address => 'Address'; + + @override + String get addressBalanceDescription => 'Received payments totalling'; + + @override + String get addressCopied => 'Address copied!'; + + @override + String get addressList => 'Address list'; + + @override + String get addTimelockLabel => 'Add Timelock (Optional)'; + + @override + String get advancedSettings => 'Advanced Settings'; + + @override + String get amount => 'Amount'; + + @override + String get authenticateWithBiometrics => 'Authenticate with biometrics'; + + @override + String get authorization => 'Node authorization'; + + @override + String get authorizationInputHint => 'Node authorization...'; + + @override + String get autorizationTooltip => 'Node authorization to stake'; + + @override + String get available => 'Available'; + + @override + String get backLabel => 'Back'; + + @override + String get balance => 'balance'; + + @override + String get balanceDetails => 'Balance details'; + + @override + String get biometricsLabel => 'Biometrics'; + + @override + String get blocksMined => 'Blocks mined'; + + @override + String get buildWallet01 => + 'The different addresses in your wallet are being scanned for existing transactions and balance. This will normally take less than 1 minute.'; + + @override + String get buildWalletBalance => 'Balance'; + + @override + String get buildWalletHeader => 'Address discovery'; + + @override + String get cancel => 'Cancel'; + + @override + String get cancelAuthentication => 'Cancel authentication'; + + @override + String get carouselMsg01 => + 'myWitWallet allows you to send and receive Wit immediately. Bye bye synchronization!'; + + @override + String get carouselMsg02 => + 'myWitWallet uses state-of-the-art cryptography to store your Wit coins securely.'; + + @override + String get carouselMsg03 => + 'myWitWallet is completely non-custodial. Your keys will never leave your device.'; + + @override + String get chooseMinerFee => 'Choose you desired miner fee'; + + @override + String get clearTimelockLabel => 'Clear Timelock'; + + @override + String get clickToInstall => 'Click to install'; + + @override + String get close => 'Close'; + + @override + String get confirm => 'Confirm'; + + @override + String get confirmed => 'Confirmed'; + + @override + String get confirmMnemonic01 => + 'Type in your secret recovery phrase below exactly as shown before. This will ensure that you have written down your secret recovery phrase correctly.'; + + @override + String get confirmMnemonicHeader => 'Secret Recovery Phrase Confirmation'; + + @override + String get confirmPassword => 'Confirm Password'; + + @override + String get connectionIssue => + 'myWitWallet is experiencing connection problems'; + + @override + String get connectionReestablished => 'Connection reestablished!'; + + @override + String get continueLabel => 'Continue'; + + @override + String get copyAddressConfirmed => 'Address copied!'; + + @override + String get copyAddressLabel => 'Copy selected address'; + + @override + String get copyAddressToClipboard => 'Copy address to clipboard'; + + @override + String get copyJson => 'Copy JSON'; + + @override + String get copyStakingAddress => 'Copy withdrawal address'; + + @override + String get copyXprvConfirmed => 'Xprv copied!'; + + @override + String get copyXprvLabel => 'Copy Xprv'; + + @override + String get createImportWallet01 => + 'When you created your wallet, you probably wrote down the secret security phrase on a piece of paper. It looks like a list of 12 apparently random words.'; + + @override + String get createImportWallet02 => + 'If you did not keep the secret security phrase, you can still export a password-protected Xprv key from the settings of your existing wallet.'; + + @override + String get createImportWalletHeader => 'Create or import your wallet'; + + @override + String get createNewWalletLabel => 'Create new wallet'; + + @override + String get createOrImportLabel => 'Create or import'; + + @override + String get createWalletLabel => 'Create wallet'; + + @override + String get cryptoException => 'Error building the wallet'; + + @override + String get currentAddress => 'Current address'; + + @override + String get darkMode => 'Dark Mode'; + + @override + String dashboardViewSteps(String selectedIndex) { + String _temp0 = intl.Intl.selectLogic( + selectedIndex, + { + 'transactions': 'Transactions', + 'stats': 'Stats', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get dataRequestTxn => 'Data Request'; + + @override + String get datePickerFormatError => 'Invalid date format'; + + @override + String get datePickerHintText => 'Select date'; + + @override + String get datePickerInvalid => 'Invalid date'; + + @override + String get delete => 'Delete'; + + @override + String get deleteStorageWarning => + 'Your storage is about to be permanently deleted!'; + + @override + String get deleteWallet => 'Delete wallet'; + + @override + String get deleteWallet01 => + 'Clicking \"Delete\" will result in the permanent deletion of your current wallet data. If you proceed, you\'ll need to import the wallet again to access your funds.'; + + @override + String get deleteWalletSettings => 'Settings: Delete wallet'; + + @override + String get deleteWalletSuccess => + 'Your wallet data has been successfully deleted!'; + + @override + String get deleteWalletWarning => + 'Your wallet is about to be permanently deleted!'; + + @override + String get disableStakeMessage => 'The minimun amount to stake is 10,000 WIT'; + + @override + String get disableStakeTitle => 'You don\'t have enough balance to stake'; + + @override + String get downloading => 'Downloading...'; + + @override + String get drSolved => 'Data requests solved'; + + @override + String get emptyStakeMessage => + 'Stake some \$WIT! Secure the network, earn rewards, and be part of a censorship-resistant oracle.'; + + @override + String get emptyStakeTitle => 'You don´t have balance to unstake'; + + @override + String get enableLoginWithBiometrics => 'Enable login with biometrics'; + + @override + String get encryptWallet01 => + 'This password encrypts your Witnet wallet only on this computer.'; + + @override + String get encryptWallet02 => + 'This is not your backup and you cannot restore your wallet with this password.'; + + @override + String encryptWallet03(int mnemonicLength) { + return 'Your $mnemonicLength word seed phrase is still your ultimate recovery method.'; + } + + @override + String get encryptWallet04 => + 'Your Xprv is still your ultimate recovery method.'; + + @override + String get encryptWalletHeader => 'Encrypt your wallet'; + + @override + String get enterYourPassword => 'Enter your Password'; + + @override + String get epoch => 'Epoch'; + + @override + String get error => 'Error'; + + @override + String get errorDeletingWallet => + 'There was an error deleting the wallet, please try again!'; + + @override + String get errorFieldBlank => 'Field is blank'; + + @override + String get errorReestablish => + 'There was an error re-establishing myWitWallet, please try again!'; + + @override + String get errorSigning => 'Error signing message'; + + @override + String get errorTransaction => 'Error sending the transaction, try again!'; + + @override + String get errorTryAgain => 'Error. Try Again.'; + + @override + String get errorXprvStart => 'needs to start with \"xprv1\"'; + + @override + String estimatedFeeOptions(String feeOption) { + String _temp0 = intl.Intl.selectLogic( + feeOption, + { + 'stinky': 'Stinky', + 'low': 'Low', + 'medium': 'Medium', + 'high': 'High', + 'opulent': 'Opulent', + 'custom': 'Custom', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get exploredAddresses => 'Explored addresses'; + + @override + String get exploringAddress => 'Exploring address: '; + + @override + String get exportJson => 'Export JSON'; + + @override + String get exportXprv => 'Export Xprv'; + + @override + String get fee => 'Fee'; + + @override + String get feesAndRewards => 'Fees and rewards'; + + @override + String get feesCollected => 'Fees collected'; + + @override + String get feesPayed => 'Fees payed'; + + @override + String feeTypeOptions(String feeType) { + String _temp0 = intl.Intl.selectLogic( + feeType, + { + 'absolute': 'Absolute', + 'weighted': 'Weighted', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get forgetPassword => + 'Did you forget your password?, You can delete your wallet and configure a new one!'; + + @override + String get from => 'From'; + + @override + String get generateAddressWarning => + 'You are about to generate a new address'; + + @override + String get generateAddressWarningMessage => + 'A new address will be generated and ready to be used. The main address displayed in the navigation will be updated to the new one.'; + + @override + String get generatedAddress => 'Generated address'; + + @override + String get generatedAddresses => 'Generated addresses'; + + @override + String generateMnemonic01(int mnemonicLength) { + return 'These $mnemonicLength apparently random words are your secret recovery phrase. They will allow you to recover your Wit coins if you uninstall this app or forget your wallet lock password.'; + } + + @override + String get generateMnemonic02 => + 'You must write down your secret recovery phrase on a piece of paper and store it somewhere safe. Do not store it in a file in your device or anywhere else electronically. If you lose your secret recovery phrase, you may permanently lose access to your wallet and your Wit coins.'; + + @override + String get generateMnemonic03 => + 'You should never share your secret recovery phrase with anyone. If someone finds or sees your secret recovery phrase, they will have full access to your wallet and your Wit coins.'; + + @override + String get generateMnemonicHeader => 'Write down your secret recovery phrase'; + + @override + String get generateXprv => 'Generate Xprv'; + + @override + String get genNewAddressLabel => 'Generate new Address'; + + @override + String get history => 'History'; + + @override + String get home => 'Transactions list'; + + @override + String get hour => 'Hour'; + + @override + String get importMnemonic01 => + 'Type your secret recovery phrase below. It looks like a list of 12 apparently random words.'; + + @override + String get importMnemonicHeader => + 'Import wallet from secret recovery phrase'; + + @override + String get importMnemonicLabel => 'Import from secret recovery phrase'; + + @override + String get importWalletHeader => ''; + + @override + String get importWalletLabel => 'Import wallet'; + + @override + String get importXprv01 => + 'Xprv is a key exchange format that encodes and protects your wallet with a password. Xprv keys look like a long sequence of apparently random letters and numbers, preceded by \"xprv\".'; + + @override + String get importXprv02 => + 'To import your wallet from an Xprv key encrypted with a password, you need to type the key itself and its password below:'; + + @override + String get importXprvHeader => 'Import wallet from an Xprv key'; + + @override + String get importXprvLabel => 'Import from Xprv key'; + + @override + String get initializingWallet => 'Initializing Wallet.'; + + @override + String get inputAmountHint => 'Input an amount'; + + @override + String get inputPasswordPrompt => 'Please, input your wallet\'s password.'; + + @override + String get inputs => 'Inputs'; + + @override + String get inputYourPassword => 'Input your password'; + + @override + String get insufficientFunds => 'Insufficient funds'; + + @override + String get insufficientUtxosAvailable => + 'Wait untill the pending transactions are confirmed or try creating a transaction with a smaller amount.'; + + @override + String get internalBalance => 'Internal balance'; + + @override + String get internalBalanceHint => + 'The internal balance corresponds to the sum of all the change accounts available balance'; + + @override + String get invalidPassword => 'Invalid Password'; + + @override + String get invalidXprv => 'Invalid Xprv:'; + + @override + String get invalidXprvBlank => 'Field is blank'; + + @override + String get invalidXprvStart => 'needs to start with \"xprv1\"'; + + @override + String get jsonCopied => 'JSON copied!'; + + @override + String get later => 'Later'; + + @override + String launchUrlError(String error) { + return 'Could not launch $error'; + } + + @override + String get lightMode => 'Light Mode'; + + @override + String get loading => 'Loading'; + + @override + String get locked => 'Locked'; + + @override + String get lockWalletLabel => 'Lock wallet'; + + @override + String get lockYourWallet => 'Lock your wallet'; + + @override + String get messageSigning => 'Message Signing'; + + @override + String get messageSigning01 => + 'Prove the ownership of your address by adding your signature to a message.'; + + @override + String get messageToBeSigned => 'Message to be signed'; + + @override + String get mined => 'Mined'; + + @override + String get minerFeeHint => + 'By default, \'Absolute fee\' is selected.\nTo set a custom weighted fee, you need to select \'Weighted\'. \nThe Weighted fee is automatically calculated by the wallet considering the network congestion and transaction weight multiplied by the value selected as custom.'; + + @override + String get minerFeeInputHint => 'Input the miner fee'; + + @override + String get mintTxn => 'Mint'; + + @override + String get minutes => 'Minutes'; + + @override + String get nameLabel => 'Name'; + + @override + String get networkContribution => 'Network contribution'; + + @override + String newVersion(Object versionNumber) { + return 'New Version: $versionNumber'; + } + + @override + String get newVersionAvailable => 'A new version of the app is available.'; + + @override + String get noTransactions => 'You don\'t have transactions yet!'; + + @override + String get okLabel => 'Ok'; + + @override + String get outputs => 'Outputs'; + + @override + String get passwordDescription => + 'This password encrypts your xprv file. You will be asked to type this password if you want to import this xprv as a backup.'; + + @override + String get passwordLabel => 'Password'; + + @override + String get pending => 'Pending'; + + @override + String get pleaseWait => 'Please wait...'; + + @override + String preferenceTabs(String selectedTab) { + String _temp0 = intl.Intl.selectLogic( + selectedTab, + { + 'general': 'General', + 'wallet': 'Wallet', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get readCarefully => + 'Please, read carefully before continuing. Your attention is crucial!'; + + @override + String get readyToInstall => 'Ready to install'; + + @override + String get receive => 'Receive'; + + @override + String get recipientAddress => 'Recipient address'; + + @override + String get reestablish => 'Re-establish'; + + @override + String get reestablishInstructions => + 'Clicking \"Continue\" will result in the permanent deletion of your current wallet data. If you proceed, you\'ll need to import an existing wallet to access your funds or create a new one.'; + + @override + String get reestablishSteps01 => + 'Make sure you have stored your recovery seed phrase or Xprv.'; + + @override + String get reestablishSteps02 => + 'Click \"Continue\" to delete your storage and import your wallet again.'; + + @override + String get reestablishSucess => + 'myWitWallet has been successfully re-established!'; + + @override + String get reestablishWallet => 'Re-establish wallet'; + + @override + String get reestablishYourWallet => 'Re-establish your wallet'; + + @override + String get reverted => 'Reverted'; + + @override + String get scanAqrCode => 'Scan a QR code'; + + @override + String get scanQrCodeLabel => 'Scan QR code'; + + @override + String get selectImportOptionHeader => 'Import your wallet'; + + @override + String get send => 'Send'; + + @override + String get sendReceiveTx => 'Send or receive WIT'; + + @override + String get sendStakeTransaction => 'Stake Transaction'; + + @override + String get sendUnstakeTransaction => 'Unstake Transaction'; + + @override + String get sendValueTransferTransaction => 'Value Transfer Transaction'; + + @override + String get setTimelock => 'Set Timelock'; + + @override + String get settings => 'Settings'; + + @override + String get settingsMessageSigning => 'Settings: Message Signing'; + + @override + String get settingsWalletConfigHeader => + 'Settings: Export the Xprv key of my wallet'; + + @override + String get sheikah => 'Sheikah'; + + @override + String get showBalanceDetails => 'Show balance details'; + + @override + String get showPassword => 'Show password'; + + @override + String get showWalletList => 'Show wallet list'; + + @override + String get signAndSend => 'Sign and Send'; + + @override + String get signMessage => 'Sign Message'; + + @override + String get signMessageError => 'Error signing message'; + + @override + String get speedUp => 'Speed up'; + + @override + String get speedUpTxTitle => 'Speed up transaction'; + + @override + String get stake => 'Stake'; + + @override + String get staked => 'Staked'; + + @override + String stakeSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Stake', + 'MinerFee': 'Miner Fee', + 'Review': 'Review', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get stakeTxnSuccess => 'Stake transaction succesfully sent!'; + + @override + String get stakeUnstake => 'Stake or unstake WIT'; + + @override + String get stakeWithdrawalAddressText => + 'This is the address to create Stake transactions. Make sure this address is authorized to stake.'; + + @override + String get stakingAddressCopied => 'Withdrawal address copied!'; + + @override + String get status => 'Status'; + + @override + String get theme => 'Theme'; + + @override + String get timelock => 'Timelock'; + + @override + String get timelockTooltip => + 'The recipient will not be able to spend the coins before this date and time.'; + + @override + String get timePickerHintText => 'Set Time'; + + @override + String get timePickerInvalid => 'Invalid time'; + + @override + String get timestamp => 'Timestamp'; + + @override + String get to => 'To'; + + @override + String get total => 'Total'; + + @override + String get totalDataSynced => 'Scan summary'; + + @override + String get totalFeesPaid => 'Total fees paid'; + + @override + String get totalMiningRewards => 'Total mining rewards'; + + @override + String get transaction => 'Transaction'; + + @override + String get transactionDetails => 'Transaction details'; + + @override + String get transactionId => 'Transaction ID'; + + @override + String get transactionsFound => 'Transactions found'; + + @override + String get tryAgain => 'Try again!'; + + @override + String get txEmptyState => 'You don\'t have transactions yet!'; + + @override + String get txnCheckStatus => + 'Check the transaction status in the Witnet Block Explorer:'; + + @override + String get txnDetails => 'Transaction details'; + + @override + String get txnSending => 'Sending transaction'; + + @override + String get txnSending01 => 'The transaction is being sent'; + + @override + String get txnSigning => 'Signing transaction'; + + @override + String get txnSigning01 => 'The transaction is being signed'; + + @override + String txnStatus(String feeType) { + String _temp0 = intl.Intl.selectLogic( + feeType, + { + 'pending': 'pending', + 'mined': 'mined', + 'confirmed': 'confirmed', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get txnSuccess => 'Transaction succesfully sent!'; + + @override + String get type => 'Type'; + + @override + String get unlockWallet => 'Unlock wallet'; + + @override + String get unstake => 'Unstake'; + + @override + String unstakeSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Unstake', + 'MinerFee': 'Miner Fee', + 'Review': 'Review', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get unstakeTxnSuccess => 'Unstake transaction succesfully sent!'; + + @override + String get unstakeWithdrawalAddressText => + 'This is the address used to create Stake transactions.'; + + @override + String get updateAvailable => 'Update available'; + + @override + String get updateError => + 'There was an issue with the update. Please try again.'; + + @override + String get updateNow => 'Update now'; + + @override + String updateToVersion(Object versionNumber) { + return 'Update to version $versionNumber'; + } + + @override + String get validationDecimals => 'Only 9 decimal digits supported'; + + @override + String get validationEmpty => 'Please enter an amount'; + + @override + String get validationEnoughFunds => 'Not enough Funds'; + + @override + String get validationInvalidAmount => 'Invalid amount'; + + @override + String get validationMinFee => 'Fee should be higher than'; + + @override + String get validationNoZero => 'Amount cannot be zero'; + + @override + String get validator => 'Validator'; + + @override + String get validatorDescription => + 'Validator address that authorized staking.'; + + @override + String get valueTransferTxn => 'Value Transfer'; + + @override + String get verifyLabel => 'Verify'; + + @override + String versionNumber(String versionNumber) { + return 'Version $versionNumber'; + } + + @override + String get viewOnExplorer => 'View on Block Explorer'; + + @override + String get vttException => 'Error building the transaction'; + + @override + String vttSendSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Transaction', + 'MinerFee': 'Miner Fee', + 'Review': 'Review', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get walletConfig01 => + 'Your Xprv key allows you to export and back up your wallet at any point after creating it.'; + + @override + String get walletConfig02 => + 'Privacy-wise, your Xprv key is equivalent to a secret recovery phrase. Do not share it with anyone, and never store it in a file in your device or anywhere else electronically.'; + + @override + String get walletConfig03 => + 'Your Xprv key will be protected with the password below. When importing the Xprv on this or another app, you will be asked to type in that same password.'; + + @override + String get walletConfigHeader => 'Export the Xprv key of my wallet'; + + @override + String get walletDetail01 => + 'You can better keep track of your different wallets by giving each its own name and description.'; + + @override + String get walletDetail02 => + 'Wallet names make it easy to quickly change from one wallet to another. Wallet descriptions can be more elaborate and rather describe the purpose of a wallet or any other metadata.'; + + @override + String get walletDetailHeader => 'Identify your wallet'; + + @override + String get walletNameHint => 'My first million Wits'; + + @override + String get walletSecurity01 => 'Please, read carefully before continuing.'; + + @override + String get walletSecurity02 => + 'A wallet is an app that keeps your credentials safe and lets you interface with the Witnet blockchain. It allows you to easily transfer and receive Wit.'; + + @override + String get walletSecurity03 => + 'You should never share your seed phrase with anyone. We at Witnet do not store your seed phrase and will never ask you to share it with us. If you lose your seed phrase, you will permanently lose access to your wallet and your funds.'; + + @override + String get walletSecurity04 => + 'If someone finds or sees your seed phrase, they will have access to your wallet and all of your funds.'; + + @override + String get walletSecurity05 => + 'We recommend storing your seed phrase on paper somewhere safe. Do not store it in a file on your computer or anywhere electronically.'; + + @override + String get walletSecurity06 => + 'By accepting these disclaimers, you commit to comply with the explained restrictions and digitally sign your conformance using your Witnet wallet.'; + + @override + String get walletSecurityConfirmLabel => 'I will be careful, I promise!'; + + @override + String get walletSecurityHeader => 'Wallet security'; + + @override + String get walletTypeHDLabel => 'HD Wallet'; + + @override + String get walletTypeNodeLabel => 'Node'; + + @override + String get welcome => 'Welcome'; + + @override + String get welcomeBack => 'Welcome back'; + + @override + String get whatToDo => 'What to do?'; + + @override + String get withdrawer => 'Withdrawer'; + + @override + String get withdrawalAddress => 'Withdrawal address'; + + @override + String get xprvInputHint => 'Your Xprv key (starts with xprv...)'; + + @override + String get xprvOrigin => 'Xprv Origin'; + + @override + String get yourMessage => 'Your message...'; +} diff --git a/lib/l10n/app_localizations_es.dart b/lib/l10n/app_localizations_es.dart new file mode 100644 index 00000000..b39785dd --- /dev/null +++ b/lib/l10n/app_localizations_es.dart @@ -0,0 +1,1008 @@ +// ignore: unused_import +import 'package:intl/intl.dart' as intl; +import 'app_localizations.dart'; + +// ignore_for_file: type=lint + +/// The translations for Spanish Castilian (`es`). +class AppLocalizationsEs extends AppLocalizations { + AppLocalizationsEs([String locale = 'es']) : super(locale); + + @override + String get address => 'Dirección'; + + @override + String get addressBalanceDescription => 'Recibió pagos por un total de'; + + @override + String get addressCopied => '¡Dirección copiada!'; + + @override + String get addressList => 'Lista de direcciones'; + + @override + String get addTimelockLabel => 'Añadir Timelock (Opcional)'; + + @override + String get advancedSettings => 'Configuración avanzada'; + + @override + String get amount => 'Cantidad'; + + @override + String get authenticateWithBiometrics => 'Autenticación biométrica'; + + @override + String get authorization => 'Autorización del nodo'; + + @override + String get authorizationInputHint => 'Autorización del nodo...'; + + @override + String get autorizationTooltip => + 'Autorización del nodo para realizar staking'; + + @override + String get available => 'Disponible'; + + @override + String get backLabel => 'Volver'; + + @override + String get balance => 'saldo'; + + @override + String get balanceDetails => 'Saldo en detalle'; + + @override + String get biometricsLabel => 'Biométricas'; + + @override + String get blocksMined => 'Bloques extraídos'; + + @override + String get buildWallet01 => + 'Se están escaneando las diferentes direcciones de tu cartera en busca de transacciones y saldo existentes. Esto normalmente tomará menos de 1 minuto.'; + + @override + String get buildWalletBalance => 'Saldo'; + + @override + String get buildWalletHeader => 'Descubrimiento de direcciones'; + + @override + String get cancel => 'Cancelar'; + + @override + String get cancelAuthentication => 'Cancelar autentificación'; + + @override + String get carouselMsg01 => + 'myWitWallet te permite enviar y recibir Wit al instante. ¡Adiós a la sincronización!'; + + @override + String get carouselMsg02 => + 'myWitWallet utiliza la criptografía de última generación para almacenar tus monedas Wit de manera segura.'; + + @override + String get carouselMsg03 => + 'myWitWallet es completamente no custodial. Tus claves nunca saldrán de tu dispositivo.'; + + @override + String get chooseMinerFee => 'Elija la tasa minera que desee'; + + @override + String get clearTimelockLabel => 'Borrar Timelock'; + + @override + String get clickToInstall => 'Haz clic para instalar.'; + + @override + String get close => 'cerrar'; + + @override + String get confirm => 'Confirmar'; + + @override + String get confirmed => 'Confirmada'; + + @override + String get confirmMnemonic01 => + 'Escribe tu frase de recuperación secreta a continuación exactamente como se muestra. Esto asegurará que hayas escrito tu frase de recuperación secreta correctamente.'; + + @override + String get confirmMnemonicHeader => + 'Confirmación de la frase de recuperación secreta'; + + @override + String get confirmPassword => 'Confirmar contraseña'; + + @override + String get connectionIssue => + 'myWitWallet está experimentando problemas de conexión'; + + @override + String get connectionReestablished => '¡Conexión restablecida!'; + + @override + String get continueLabel => 'Continuar'; + + @override + String get copyAddressConfirmed => '¡Dirección copiada!'; + + @override + String get copyAddressLabel => 'Copiar dirección seleccionada'; + + @override + String get copyAddressToClipboard => 'Copiar dirección en el portapapeles'; + + @override + String get copyJson => 'Copiar JSON'; + + @override + String get copyStakingAddress => 'Copiar dirección de retiro'; + + @override + String get copyXprvConfirmed => '¡Xprv copiado!'; + + @override + String get copyXprvLabel => 'Copiar Xprv'; + + @override + String get createImportWallet01 => + 'Cuando creaste tu cartera, probablemente escribiste la frase de seguridad secreta en un papel. Parece una lista de 12 palabras aparentemente aleatorias.'; + + @override + String get createImportWallet02 => + 'Si no conservaste la frase de seguridad secreta, aún puedes exportar una clave Xprv protegida con contraseña desde la configuración de tu cartera existente.'; + + @override + String get createImportWalletHeader => 'Crear o importar tu cartera'; + + @override + String get createNewWalletLabel => 'Crear nueva cartera'; + + @override + String get createOrImportLabel => 'Crear o importar'; + + @override + String get createWalletLabel => 'Crear cartera'; + + @override + String get cryptoException => 'Error creando el wallet'; + + @override + String get currentAddress => 'dirección actual'; + + @override + String get darkMode => 'Modo oscuro'; + + @override + String dashboardViewSteps(String selectedIndex) { + String _temp0 = intl.Intl.selectLogic( + selectedIndex, + { + 'transactions': 'Transacciones', + 'stats': 'Estadísticas', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get dataRequestTxn => 'Data Request'; + + @override + String get datePickerFormatError => 'Formato de fecha no válido'; + + @override + String get datePickerHintText => 'Seleccionar fecha'; + + @override + String get datePickerInvalid => 'Fecha no válida'; + + @override + String get delete => 'Eliminar'; + + @override + String get deleteStorageWarning => + 'Tu almacenamiento está a punto de ser eliminado permanentemente.'; + + @override + String get deleteWallet => 'Eliminar wallet'; + + @override + String get deleteWallet01 => + 'Hacer clic en \"Eliminar\" resultará en la eliminación permanente de los datos de tu wallet actual. Si procedes, deberás importar la wallet nuevamente para acceder a tus fondos.'; + + @override + String get deleteWalletSettings => 'Configuración: Eliminar wallet'; + + @override + String get deleteWalletSuccess => + '¡Los datos de tu wallet han sido eliminados exitosamente!'; + + @override + String get deleteWalletWarning => + '¡Tu wallet está a punto de ser eliminada permanentemente!'; + + @override + String get disableStakeMessage => + 'La cantidad minima para hacer Stake es de 10.000 WIT'; + + @override + String get disableStakeTitle => + 'No tienes suficiente balance para hacer Stake'; + + @override + String get downloading => 'Descargando...'; + + @override + String get drSolved => 'Solicitudes de datos resueltas'; + + @override + String get emptyStakeMessage => + '¡Haz stake de algunos \$WIT! Asegura la red, gana recompensas y forma parte de un oráculo resistente a la censura.'; + + @override + String get emptyStakeTitle => 'No tienes saldo para retirar stake'; + + @override + String get enableLoginWithBiometrics => + 'Inicio de sesión con datos biométricos'; + + @override + String get encryptWallet01 => + 'Esta contraseña encripta tu cartera Witnet solo en esta computadora.'; + + @override + String get encryptWallet02 => + 'Esta no es tu copia de seguridad y no puedes restaurar tu cartera con esta contraseña.'; + + @override + String encryptWallet03(int mnemonicLength) { + return 'Tu frase de recuperación de $mnemonicLength palabras sigue siendo tu método de recuperación definitivo.'; + } + + @override + String get encryptWallet04 => + 'Your Xprv is still your ultimate recovery method.'; + + @override + String get encryptWalletHeader => 'Encripta tu cartera'; + + @override + String get enterYourPassword => 'Escriba su contraseña'; + + @override + String get epoch => 'Época'; + + @override + String get error => 'Error'; + + @override + String get errorDeletingWallet => + '¡Hubo un error al eliminar la wallet, por favor inténtalo de nuevo!'; + + @override + String get errorFieldBlank => 'Field is blank'; + + @override + String get errorReestablish => + 'Se ha producido un error al restablecer myWitWallet, inténtalo de nuevo.'; + + @override + String get errorSigning => 'Mensaje de error al firmar'; + + @override + String get errorTransaction => + 'Error al enviar la transacción, ¡inténtelo de nuevo!'; + + @override + String get errorTryAgain => 'Error. Inténtalo de nuevo.'; + + @override + String get errorXprvStart => 'needs to start with \\\"xprv1\\\"'; + + @override + String estimatedFeeOptions(String feeOption) { + String _temp0 = intl.Intl.selectLogic( + feeOption, + { + 'stinky': 'Apestoso', + 'low': 'Bajo', + 'medium': 'Medio', + 'high': 'High', + 'opulent': 'Alta', + 'custom': 'A medida', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get exploredAddresses => 'Direcciones exploradas'; + + @override + String get exploringAddress => 'Explorando dirección:'; + + @override + String get exportJson => 'Exportar JSON'; + + @override + String get exportXprv => 'Exportar Xprv'; + + @override + String get fee => 'Tasa'; + + @override + String get feesAndRewards => 'Tasas y Recompensas'; + + @override + String get feesCollected => 'Comisiones cobradas'; + + @override + String get feesPayed => 'Comisiones pagadas'; + + @override + String feeTypeOptions(String feeType) { + String _temp0 = intl.Intl.selectLogic( + feeType, + { + 'absolute': 'Absoluto', + 'weighted': 'Ponderado', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get forgetPassword => + '¿Has olvidado tu contraseña?, ¡Puedes borrar tu monedero y configurar uno nuevo!'; + + @override + String get from => 'de'; + + @override + String get generateAddressWarning => + 'Estás a punto de generar una nueva dirección'; + + @override + String get generateAddressWarningMessage => + 'Una nueva dirección estará disponible para su uso. La dirección mostrada en la barra de navegación se actualizará a la nueva dirección generada.'; + + @override + String get generatedAddress => 'Dirección generada'; + + @override + String get generatedAddresses => 'Direcciones generadas'; + + @override + String generateMnemonic01(int mnemonicLength) { + return 'Estas $mnemonicLength palabras aparentemente aleatorias son tu frase de recuperación secreta. Te permitirán recuperar tus monedas Wit si desinstalas esta aplicación o olvidas la contraseña de bloqueo de tu cartera.'; + } + + @override + String get generateMnemonic02 => + 'Debes escribir tu frase de recuperación secreta en un papel y almacenarla en un lugar seguro. No la almacenes en un archivo en tu dispositivo ni en ningún otro lugar electrónico. Si pierdes tu frase de recuperación secreta, podrías perder permanentemente el acceso a tu cartera y tus monedas Wit.'; + + @override + String get generateMnemonic03 => + 'Nunca debes compartir tu frase de recuperación secreta con nadie. Si alguien encuentra o ve tu frase de recuperación secreta, tendrá acceso completo a tu cartera y tus monedas Wit.'; + + @override + String get generateMnemonicHeader => + 'Escribe tu frase de recuperación secreta'; + + @override + String get generateXprv => 'Generar Xprv'; + + @override + String get genNewAddressLabel => 'Generar nueva dirección'; + + @override + String get history => 'Historia'; + + @override + String get home => 'Lista de transacciones'; + + @override + String get hour => 'Hora'; + + @override + String get importMnemonic01 => + 'Escribe tu frase de recuperación secreta a continuación. Parece una lista de 12 palabras aparentemente aleatorias.'; + + @override + String get importMnemonicHeader => + 'Importar cartera desde la frase de recuperación secreta'; + + @override + String get importMnemonicLabel => + 'Importar cartera desde la frase de recuperación secreta'; + + @override + String get importWalletHeader => ''; + + @override + String get importWalletLabel => 'Importar cartera'; + + @override + String get importXprv01 => + 'Xprv es un formato de intercambio de claves que codifica y protege tu cartera con una contraseña. Las claves Xprv se ven como una larga secuencia de letras y números aparentemente aleatorios, precedidos por \"xprv\".'; + + @override + String get importXprv02 => + 'Para importar tu cartera desde una clave Xprv encriptada con una contraseña, debes escribir la clave misma y su contraseña a continuación:'; + + @override + String get importXprvHeader => 'Importar cartera desde una clave Xprv'; + + @override + String get importXprvLabel => 'Importar desde la clave Xprv'; + + @override + String get initializingWallet => 'Inicializando cartera.'; + + @override + String get inputAmountHint => 'Ingresar un monto'; + + @override + String get inputPasswordPrompt => + 'Por favor, ingresa la contraseña de tu cartera.'; + + @override + String get inputs => 'Insumos'; + + @override + String get inputYourPassword => 'Ingresa tu contraseña'; + + @override + String get insufficientFunds => 'Fondos insuficientes'; + + @override + String get insufficientUtxosAvailable => + 'Espera a la confirmación de las transacciones pendientes o crea una transacción con una cantidad más pequeña.'; + + @override + String get internalBalance => 'Saldo interno'; + + @override + String get internalBalanceHint => + 'El saldo interno corresponde a la suma del saldo disponible en todas las cuentas de cambio'; + + @override + String get invalidPassword => 'Contraseña inválida'; + + @override + String get invalidXprv => 'Xprv inválido:'; + + @override + String get invalidXprvBlank => 'El campo está en blanco'; + + @override + String get invalidXprvStart => 'debe comenzar con \"xprv1\"'; + + @override + String get jsonCopied => 'JSON copiado!'; + + @override + String get later => 'Más tarde'; + + @override + String launchUrlError(String error) { + return 'No se pudo abrir $error'; + } + + @override + String get lightMode => 'Modo claro'; + + @override + String get loading => 'Cargando'; + + @override + String get locked => 'Bloqueado'; + + @override + String get lockWalletLabel => 'Bloquear cartera'; + + @override + String get lockYourWallet => 'Bloquea tu cartera'; + + @override + String get messageSigning => 'Firma de mensajes'; + + @override + String get messageSigning01 => + 'Demuestre la propiedad de su dirección añadiendo su firma a un mensaje.'; + + @override + String get messageToBeSigned => 'Mensaje a firmar'; + + @override + String get mined => 'Minada'; + + @override + String get minerFeeHint => + 'Por defecto, la tarifa Absoluta está seleccionada. La comisión ponderada la calcula automáticamente el monedero teniendo en cuenta la congestión de la red y el peso de la transacción multiplicado por el valor seleccionado como personalizado.'; + + @override + String get minerFeeInputHint => 'Introduzca la tasa minera'; + + @override + String get mintTxn => 'Mint'; + + @override + String get minutes => 'Minutos'; + + @override + String get nameLabel => 'Nombre'; + + @override + String get networkContribution => 'Contribución a la red'; + + @override + String newVersion(Object versionNumber) { + return 'Nueva versión: $versionNumber'; + } + + @override + String get newVersionAvailable => 'Nueva versión disponible.'; + + @override + String get noTransactions => '¡Aún no tienes transacciones!'; + + @override + String get okLabel => 'Aceptar'; + + @override + String get outputs => 'Salidas'; + + @override + String get passwordDescription => + 'Esta contraseña encripta tu archivo xprv. Se te pedirá que ingreses esta contraseña si deseas importar este xprv como copia de seguridad.'; + + @override + String get passwordLabel => 'Contraseña'; + + @override + String get pending => 'Pendiente'; + + @override + String get pleaseWait => 'Por favor, espera...'; + + @override + String preferenceTabs(String selectedTab) { + String _temp0 = intl.Intl.selectLogic( + selectedTab, + { + 'general': 'General', + 'wallet': 'Cartera', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get readCarefully => + 'Por favor, lea atentamente antes de continuar. Su atención es crucial.'; + + @override + String get readyToInstall => 'Listo para instalar.'; + + @override + String get receive => 'Recibir'; + + @override + String get recipientAddress => 'Dirección del receptor'; + + @override + String get reestablish => 'Restablecer'; + + @override + String get reestablishInstructions => + 'Al hacer clic en \"Continuar\" se eliminarán permanentemente los datos de su monedero actual. Si continúa, tendrá que importar un monedero existente o crear uno nuevo para acceder a sus fondos.'; + + @override + String get reestablishSteps01 => + 'Asegúrese de que ha almacenado su frase semilla de recuperación o Xprv.'; + + @override + String get reestablishSteps02 => + 'Haga clic en \"Continuar\" para borrar su almacenamiento e importar su monedero de nuevo.'; + + @override + String get reestablishSucess => '¡myWitWallet se ha restablecido con éxito!'; + + @override + String get reestablishWallet => 'Restablecer cartera'; + + @override + String get reestablishYourWallet => 'Restablezca su cartera'; + + @override + String get reverted => 'Revertida'; + + @override + String get scanAqrCode => 'Escanear un código QR'; + + @override + String get scanQrCodeLabel => 'Escanear código QR'; + + @override + String get selectImportOptionHeader => 'Importar tu cartera'; + + @override + String get send => 'Enviar'; + + @override + String get sendReceiveTx => 'Enviar o recibir WIT'; + + @override + String get sendStakeTransaction => 'Transacción de Stake'; + + @override + String get sendUnstakeTransaction => 'Transacción de Unstake'; + + @override + String get sendValueTransferTransaction => + 'Transacción de Transferencia de Valor'; + + @override + String get setTimelock => 'fijar bloqueo horario'; + + @override + String get settings => 'Ajustes'; + + @override + String get settingsMessageSigning => 'Configuración: Firma de mensajes'; + + @override + String get settingsWalletConfigHeader => + 'Configuración: Exportar la clave Xprv de mi cartera'; + + @override + String get sheikah => 'Sheikah'; + + @override + String get showBalanceDetails => 'Mostrar detalles del balace'; + + @override + String get showPassword => 'Mostrar contraseña'; + + @override + String get showWalletList => 'Mostrar lista de carteras'; + + @override + String get signAndSend => 'Firmar y enviar'; + + @override + String get signMessage => 'Signo Mensaje'; + + @override + String get signMessageError => 'Error firmando el mensaje'; + + @override + String get speedUp => 'Acelerar'; + + @override + String get speedUpTxTitle => 'Acelerar transacción'; + + @override + String get stake => 'Stake'; + + @override + String get staked => 'Staked'; + + @override + String stakeSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Stake', + 'MinerFee': 'Miner Fee', + 'Review': 'Review', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get stakeTxnSuccess => '¡Transacción de stake enviada con éxito!'; + + @override + String get stakeUnstake => 'Stake o unstake WIT'; + + @override + String get stakeWithdrawalAddressText => + 'This is the address to create Stake transactions. Make sure this address is authorized to stake.'; + + @override + String get stakingAddressCopied => '¡Dirección de retiro copiada!'; + + @override + String get status => 'Estado'; + + @override + String get theme => 'Tema'; + + @override + String get timelock => 'bloqueo temporizado'; + + @override + String get timelockTooltip => + 'El beneficiario no podrá gastar las monedas antes de esa fecha y hora.'; + + @override + String get timePickerHintText => 'Hora fijada'; + + @override + String get timePickerInvalid => 'tiempo inválido'; + + @override + String get timestamp => 'Marca de tiempo'; + + @override + String get to => 'a'; + + @override + String get total => 'Total'; + + @override + String get totalDataSynced => 'Resumen de la sincronización'; + + @override + String get totalFeesPaid => 'Total de tasas pagadas'; + + @override + String get totalMiningRewards => 'Recompensas mineras totales'; + + @override + String get transaction => 'Transacción'; + + @override + String get transactionDetails => 'Detalles de la transacción'; + + @override + String get transactionId => 'ID de la transacción'; + + @override + String get transactionsFound => 'Transacciones encontradas'; + + @override + String get tryAgain => '¡Inténtalo de nuevo!'; + + @override + String get txEmptyState => '¡Todavía no tienes transacciones!'; + + @override + String get txnCheckStatus => + 'Compruebe el estado de la transacción en el Explorador de bloques de Witnet:'; + + @override + String get txnDetails => 'Detalles de la transacción'; + + @override + String get txnSending => 'Transacción de envío'; + + @override + String get txnSending01 => 'La transacción se está enviando'; + + @override + String get txnSigning => 'Transacción de canto'; + + @override + String get txnSigning01 => 'Se está firmando la transacción'; + + @override + String txnStatus(String feeType) { + String _temp0 = intl.Intl.selectLogic( + feeType, + { + 'pending': 'pendiente', + 'mined': 'minado', + 'confirmed': 'confirmado', + 'other': '', + }, + ); + return '$_temp0'; + } + + @override + String get txnSuccess => '¡Transacción enviada con éxito!'; + + @override + String get type => 'Tipo'; + + @override + String get unlockWallet => 'Desbloquear cartera'; + + @override + String get unstake => 'Unstake'; + + @override + String unstakeSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Unstake', + 'MinerFee': 'Miner Fee', + 'Review': 'Review', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get unstakeTxnSuccess => '¡Transacción de unstake enviada con éxito!'; + + @override + String get unstakeWithdrawalAddressText => + 'This is the address used to create Stake transactions.'; + + @override + String get updateAvailable => 'Actualización disponible'; + + @override + String get updateError => + 'Hubo un problema con la actualización. Por favor, inténtalo de nuevo.'; + + @override + String get updateNow => 'Actualiza ahora'; + + @override + String updateToVersion(Object versionNumber) { + return 'Actualizar a la versión $versionNumber'; + } + + @override + String get validationDecimals => 'Solo se admiten 9 dígitos decimales'; + + @override + String get validationEmpty => 'Por favor, ingrese una cantidad'; + + @override + String get validationEnoughFunds => 'Fondos insuficientes'; + + @override + String get validationInvalidAmount => 'Cantidad inválida'; + + @override + String get validationMinFee => 'La tarifa de minado tiene que ser mayor que'; + + @override + String get validationNoZero => 'La cantidad no puede ser cero'; + + @override + String get validator => 'Validador'; + + @override + String get validatorDescription => + 'Dirección del validador que autorizó el staking.'; + + @override + String get valueTransferTxn => 'Value Transfer'; + + @override + String get verifyLabel => 'Verificar'; + + @override + String versionNumber(String versionNumber) { + return 'Versión $versionNumber'; + } + + @override + String get viewOnExplorer => 'Ver en el Explorador de Bloques'; + + @override + String get vttException => 'Error creando la transacción'; + + @override + String vttSendSteps(String currentStepIndex) { + String _temp0 = intl.Intl.selectLogic( + currentStepIndex, + { + 'Transaction': 'Transacción', + 'MinerFee': 'Minera cuota', + 'Review': 'La revisión', + 'other': 'unused', + }, + ); + return '$_temp0'; + } + + @override + String get walletConfig01 => + 'Tu clave Xprv te permite exportar y hacer una copia de seguridad de tu cartera en cualquier momento después de crearla.'; + + @override + String get walletConfig02 => + 'En términos de privacidad, tu clave Xprv es equivalente a una frase de recuperación secreta. No la compartas con nadie y nunca la almacenes en un archivo en tu dispositivo ni en ningún otro lugar electrónico.'; + + @override + String get walletConfig03 => + 'Tu clave Xprv estará protegida con la contraseña a continuación. Al importar la clave Xprv en esta u otra aplicación, se te pedirá que escribas esa misma contraseña.'; + + @override + String get walletConfigHeader => 'Exportar la clave Xprv de mi cartera'; + + @override + String get walletDetail01 => + 'Puedes hacer un mejor seguimiento de tus diferentes carteras dándoles a cada una su propio nombre y descripción.'; + + @override + String get walletDetail02 => + 'Los nombres de las carteras facilitan cambiar rápidamente de una cartera a otra. Las descripciones de las carteras pueden ser más detalladas y describir el propósito de una cartera u otros metadatos.'; + + @override + String get walletDetailHeader => 'Identifica tu cartera'; + + @override + String get walletNameHint => 'Mis primeros millones de Wits'; + + @override + String get walletSecurity01 => + 'Por favor, lee con atención antes de continuar.'; + + @override + String get walletSecurity02 => + 'Una cartera es una aplicación que mantiene seguras tus credenciales y te permite interactuar con la cadena de bloques de Witnet. Te permite transferir y recibir Wit de manera sencilla.'; + + @override + String get walletSecurity03 => + 'Nunca debes compartir tu frase de recuperación con nadie. Nosotros en Witnet no almacenamos tu frase de recuperación y nunca te pediremos que la compartas con nosotros. Si pierdes tu frase de recuperación, perderás permanentemente el acceso a tu cartera y a tus fondos.'; + + @override + String get walletSecurity04 => + 'Si alguien encuentra o ve tu frase de recuperación, tendrá acceso a tu cartera y a todos tus fondos.'; + + @override + String get walletSecurity05 => + 'Recomendamos almacenar tu frase de recuperación en papel en un lugar seguro. No la almacenes en un archivo en tu computadora ni en ningún lugar electrónico.'; + + @override + String get walletSecurity06 => + 'Al aceptar estos avisos, te comprometes a cumplir con las restricciones explicadas y a firmar digitalmente tu conformidad utilizando tu cartera de Witnet.'; + + @override + String get walletSecurityConfirmLabel => '¡Seré cuidadoso, lo prometo!'; + + @override + String get walletSecurityHeader => 'Seguridad de la cartera'; + + @override + String get walletTypeHDLabel => 'HD Cartera'; + + @override + String get walletTypeNodeLabel => 'Nodo'; + + @override + String get welcome => 'Bienvenido'; + + @override + String get welcomeBack => 'Bienvenido de nuevo'; + + @override + String get whatToDo => '¿Qué hacer?'; + + @override + String get withdrawer => 'Dirección de retiro'; + + @override + String get withdrawalAddress => 'Dirección de retiro'; + + @override + String get xprvInputHint => 'Tu clave Xprv (comienza con xprv...)'; + + @override + String get xprvOrigin => 'Origen de Xprv'; + + @override + String get yourMessage => 'Tu mensaje...'; +} diff --git a/lib/util/panel.dart b/lib/util/panel.dart index 482f3983..0d354ea0 100644 --- a/lib/util/panel.dart +++ b/lib/util/panel.dart @@ -24,10 +24,12 @@ class PanelUtils { } Future toggle() async { - if (panelController.isPanelClosed) { - await open(); - } else { - await close(); + if (isAttached()) { + if (panelController.isPanelClosed) { + await open(); + } else { + await close(); + } } } @@ -57,7 +59,7 @@ class PanelUtils { } Future close() async { - if (isAttached() && panelController.isPanelOpen) { + if (isAttached() && isOpen()) { Widget defaultContent = Text(''); setContent(defaultContent); await panelController.close(); diff --git a/lib/widgets/layouts/dashboard_layout.dart b/lib/widgets/layouts/dashboard_layout.dart index f3021c5d..35ac5866 100644 --- a/lib/widgets/layouts/dashboard_layout.dart +++ b/lib/widgets/layouts/dashboard_layout.dart @@ -82,14 +82,18 @@ class DashboardLayoutState extends State return BottomNavigation( currentScreen: currentRoute(context), onSendReceiveAction: () async => { - panel.setHeight(actionsHeight), - setState(() => panel.setContent(SendReceiveButtons())), - await panel.toggle(), + setState(() { + panel.setHeight(actionsHeight); + panel.setContent(SendReceiveButtons()); + }), + await panel.toggle() }, onStakeUnstakeAction: () async => { - panel.setHeight(actionsHeight), - setState(() => panel.setContent(StakeUnstakeButtons())), - await panel.toggle(), + setState(() { + panel.setHeight(actionsHeight); + panel.setContent(StakeUnstakeButtons()); + }), + await panel.toggle() }); } @@ -161,11 +165,13 @@ class DashboardLayoutState extends State scrollController: widget.scrollController, topNavigation: TopNavigation( onShowWalletList: () async => { - // Sets panel height that shows the wallet list - panel.setHeight(walletListSize > maxSize - ? maxSize - : walletListSize), - setState(() => panel.setContent(WalletList())), + setState(() { + // Sets panel height that shows the wallet list + panel.setHeight(walletListSize > maxSize + ? maxSize + : walletListSize); + panel.setContent(WalletList()); + }), await panel.toggle(), }, currentScreen: currentRoute(context), diff --git a/lib/widgets/layouts/layout.dart b/lib/widgets/layouts/layout.dart index bb118a4f..a1d2f147 100644 --- a/lib/widgets/layouts/layout.dart +++ b/lib/widgets/layouts/layout.dart @@ -225,8 +225,12 @@ class LayoutState extends State with TickerProviderStateMixin { ), child: widget.slidingPanel)), onPanelClosed: () => { - Timer(Duration(milliseconds: 300), - () => setState(() => panel.setCloseState())) + Timer(Duration(milliseconds: 300), () { + if (mounted) { + setState(() => panel.setCloseState()); + } + ; + }) }, body: GestureDetector( excludeFromSemantics: true, diff --git a/lib/widgets/send_receive.dart b/lib/widgets/send_receive.dart index ae4e82fc..8c422fe2 100644 --- a/lib/widgets/send_receive.dart +++ b/lib/widgets/send_receive.dart @@ -2,10 +2,12 @@ import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:my_wit_wallet/bloc/transactions/value_transfer/vtt_create/vtt_create_bloc.dart'; import 'package:my_wit_wallet/screens/receive_transaction/receive_tx_screen.dart'; import 'package:my_wit_wallet/screens/send_transaction/send_vtt_screen.dart'; +import 'package:my_wit_wallet/shared/locator.dart'; import 'package:my_wit_wallet/theme/extended_theme.dart'; import 'package:my_wit_wallet/theme/wallet_theme.dart'; import 'package:my_wit_wallet/util/current_route.dart'; import 'package:my_wit_wallet/util/get_localization.dart'; +import 'package:my_wit_wallet/util/panel.dart'; import 'package:my_wit_wallet/widgets/buttons/custom_btn.dart'; import 'package:my_wit_wallet/widgets/buttons/icon_btn.dart'; import 'package:my_wit_wallet/widgets/layouts/dashboard_layout.dart'; @@ -15,6 +17,7 @@ typedef void VoidCallback(); class SendReceiveButtons extends StatelessWidget { SendReceiveButtons({Key? key}) : super(key: key); + final PanelUtils panel = Locator.instance.get(); Widget build(BuildContext context) { final theme = Theme.of(context); @@ -55,7 +58,9 @@ class SendReceiveButtons extends StatelessWidget { text: localization.send, onPressed: currentRoute(context) != CreateVttScreen.route ? _showCreateVTTDialog - : () {}, + : () { + panel.close(); + }, icon: Container( height: 40, child: svgThemeImage(theme, name: 'send-icon', height: 18)), @@ -69,9 +74,11 @@ class SendReceiveButtons extends StatelessWidget { color: extendedTheme.mediumPanelText!.color, padding: EdgeInsets.only(left: 16, right: 16), text: localization.receive, - onPressed: currentRoute != ReceiveTransactionScreen.route + onPressed: currentRoute(context) != ReceiveTransactionScreen.route ? _showReceiveDialog - : () {}, + : () { + panel.close(); + }, icon: Container( height: 40, child: svgThemeImage(theme, name: 'receive-icon', height: 18)), diff --git a/lib/widgets/stake_unstake.dart b/lib/widgets/stake_unstake.dart index 19f54426..f9fff635 100644 --- a/lib/widgets/stake_unstake.dart +++ b/lib/widgets/stake_unstake.dart @@ -10,6 +10,7 @@ import 'package:my_wit_wallet/theme/extended_theme.dart'; import 'package:my_wit_wallet/theme/wallet_theme.dart'; import 'package:my_wit_wallet/util/current_route.dart'; import 'package:my_wit_wallet/util/get_localization.dart'; +import 'package:my_wit_wallet/util/panel.dart'; import 'package:my_wit_wallet/util/storage/database/balance_info.dart'; import 'package:my_wit_wallet/util/storage/database/wallet.dart'; import 'package:my_wit_wallet/widgets/buttons/custom_btn.dart'; @@ -31,6 +32,7 @@ class StakeUnstakeButtons extends StatelessWidget { Wallet currentWallet = db.walletStorage.currentWallet; bool allowStake = MIN_STAKING_AMOUNT_NANOWIT <= currentWallet.balanceNanoWit().availableNanoWit; + final PanelUtils panel = Locator.instance.get(); Future _goToStakeScreen() async { if (allowStake) { @@ -88,7 +90,9 @@ class StakeUnstakeButtons extends StatelessWidget { text: localization.stake, onPressed: currentRoute(context) != StakeScreen.route ? _goToStakeScreen - : () {}, + : () { + panel.close(); + }, icon: Container( height: 40, child: svgThemeImage(theme, name: 'stake-icon', height: 18)), @@ -102,9 +106,11 @@ class StakeUnstakeButtons extends StatelessWidget { color: extendedTheme.mediumPanelText!.color, padding: EdgeInsets.only(left: 16, right: 16), text: localization.unstake, - onPressed: currentRoute != UnstakeScreen.route + onPressed: currentRoute(context) != UnstakeScreen.route ? _goToUnstakeScreen - : () {}, + : () { + panel.close(); + }, icon: Container( height: 40, child: svgThemeImage(theme, name: 'unstake-icon', height: 24)), diff --git a/lib/widgets/witnet/transactions/value_transfer/modals/disable_stake_modal.dart b/lib/widgets/witnet/transactions/value_transfer/modals/disable_stake_modal.dart index 6e38ee7f..43452134 100644 --- a/lib/widgets/witnet/transactions/value_transfer/modals/disable_stake_modal.dart +++ b/lib/widgets/witnet/transactions/value_transfer/modals/disable_stake_modal.dart @@ -3,6 +3,7 @@ import 'package:my_wit_wallet/util/get_localization.dart'; import 'package:my_wit_wallet/theme/wallet_theme.dart'; import 'package:my_wit_wallet/widgets/alert_dialog.dart'; import 'package:my_wit_wallet/widgets/buttons/custom_btn.dart'; +import 'package:my_wit_wallet/widgets/layouts/dashboard_layout.dart'; void buildDisableStakeModal({ required ThemeData theme, @@ -21,9 +22,15 @@ void buildDisableStakeModal({ type: CustomBtnType.primary, enabled: true, onPressed: () => { - Navigator.popUntil( - context, ModalRoute.withName(originRouteName)), ScaffoldMessenger.of(context).clearSnackBars(), + Navigator.push( + context, + CustomPageRoute( + builder: (BuildContext context) { + return originRoute; + }, + maintainState: false, + settings: RouteSettings(name: originRouteName))) }), ], image: Container( diff --git a/lib/widgets/witnet/transactions/value_transfer/modals/empty_stake_modal.dart b/lib/widgets/witnet/transactions/value_transfer/modals/empty_stake_modal.dart index 41057d1f..82b10e77 100644 --- a/lib/widgets/witnet/transactions/value_transfer/modals/empty_stake_modal.dart +++ b/lib/widgets/witnet/transactions/value_transfer/modals/empty_stake_modal.dart @@ -24,9 +24,15 @@ void buildEmptyStakeModal({ type: allowStake ? CustomBtnType.secondary : CustomBtnType.primary, enabled: true, onPressed: () => { - Navigator.popUntil( - context, ModalRoute.withName(originRouteName)), ScaffoldMessenger.of(context).clearSnackBars(), + Navigator.push( + context, + CustomPageRoute( + builder: (BuildContext context) { + return originRoute; + }, + maintainState: false, + settings: RouteSettings(name: originRouteName))) }), allowStake ? CustomButton(