Build exchange workspace and shared transaction services (#28)

This commit is contained in:
Stephan D committed 2026-09-12 12:01:36 +02:00
1 parent 52b7135eda
commit c496da8a55
48 files changed
+4757 -120

No files matched your search

@@ -1021,6 +1021,528 @@ abstract class AppLocalizations {
/// In en, this message translates to:
/// **'No capacity available'**
String get kycNoCapacity;
/// No description provided for @wAccounts.
///
/// In en, this message translates to:
/// **'Accounts'**
String get wAccounts;
/// No description provided for @wActivity.
///
/// In en, this message translates to:
/// **'Activity'**
String get wActivity;
/// No description provided for @wLimits.
///
/// In en, this message translates to:
/// **'Limits'**
String get wLimits;
/// No description provided for @wSettings.
///
/// In en, this message translates to:
/// **'Settings'**
String get wSettings;
/// No description provided for @wHeadline.
///
/// In en, this message translates to:
/// **'Your money.\nYour next move.'**
String get wHeadline;
/// No description provided for @wSubheading.
///
/// In en, this message translates to:
/// **'Top up. Exchange. Go further.'**
String get wSubheading;
/// No description provided for @wAvailable.
///
/// In en, this message translates to:
/// **'Available to you'**
String get wAvailable;
/// No description provided for @wTopUp.
///
/// In en, this message translates to:
/// **'Top up'**
String get wTopUp;
/// No description provided for @wExchange.
///
/// In en, this message translates to:
/// **'Exchange'**
String get wExchange;
/// No description provided for @wPayout.
///
/// In en, this message translates to:
/// **'Pay out'**
String get wPayout;
/// No description provided for @wRecent.
///
/// In en, this message translates to:
/// **'Recent activity'**
String get wRecent;
/// No description provided for @wSeeAll.
///
/// In en, this message translates to:
/// **'See all'**
String get wSeeAll;
/// No description provided for @wEmptyActivity.
///
/// In en, this message translates to:
/// **'Your next move starts here. Your transactions will appear below.'**
String get wEmptyActivity;
/// No description provided for @wEmptyAccounts.
///
/// In en, this message translates to:
/// **'Your accounts are not ready yet. Try refreshing.'**
String get wEmptyAccounts;
/// No description provided for @wRefresh.
///
/// In en, this message translates to:
/// **'Refresh'**
String get wRefresh;
/// No description provided for @wDemo.
///
/// In en, this message translates to:
/// **'Demo workspace · No real money moves.'**
String get wDemo;
/// No description provided for @wSource.
///
/// In en, this message translates to:
/// **'From account'**
String get wSource;
/// No description provided for @wDestination.
///
/// In en, this message translates to:
/// **'To account'**
String get wDestination;
/// No description provided for @wReceiveAccount.
///
/// In en, this message translates to:
/// **'Receiving account'**
String get wReceiveAccount;
/// No description provided for @wAmount.
///
/// In en, this message translates to:
/// **'Amount'**
String get wAmount;
/// No description provided for @wRecipient.
///
/// In en, this message translates to:
/// **'Recipient'**
String get wRecipient;
/// No description provided for @wRecipientHint.
///
/// In en, this message translates to:
/// **'Sample recipient — demo only'**
String get wRecipientHint;
/// No description provided for @wReview.
///
/// In en, this message translates to:
/// **'Review'**
String get wReview;
/// No description provided for @wReviewTitle.
///
/// In en, this message translates to:
/// **'One last look.'**
String get wReviewTitle;
/// No description provided for @wFee.
///
/// In en, this message translates to:
/// **'Fee'**
String get wFee;
/// No description provided for @wTotalDebit.
///
/// In en, this message translates to:
/// **'Leaves your account'**
String get wTotalDebit;
/// No description provided for @wCredit.
///
/// In en, this message translates to:
/// **'Arrives in your account'**
String get wCredit;
/// No description provided for @wRecipientGets.
///
/// In en, this message translates to:
/// **'Recipient receives'**
String get wRecipientGets;
/// No description provided for @wYouPay.
///
/// In en, this message translates to:
/// **'You pay'**
String get wYouPay;
/// No description provided for @wRate.
///
/// In en, this message translates to:
/// **'Exchange rate'**
String get wRate;
/// No description provided for @wQuoteNotice.
///
/// In en, this message translates to:
/// **'These terms are valid for 60 seconds. Confirm them before continuing.'**
String get wQuoteNotice;
/// No description provided for @wExpired.
///
/// In en, this message translates to:
/// **'This quote expired. Refresh it and review the new terms.'**
String get wExpired;
/// No description provided for @wNewQuote.
///
/// In en, this message translates to:
/// **'Refresh quote'**
String get wNewQuote;
/// No description provided for @wConfirm.
///
/// In en, this message translates to:
/// **'Confirm demo transaction'**
String get wConfirm;
/// No description provided for @wEdit.
///
/// In en, this message translates to:
/// **'Edit details'**
String get wEdit;
/// No description provided for @wClose.
///
/// In en, this message translates to:
/// **'Close'**
String get wClose;
/// No description provided for @wWorking.
///
/// In en, this message translates to:
/// **'Working on it…'**
String get wWorking;
/// No description provided for @wPending.
///
/// In en, this message translates to:
/// **'Processing'**
String get wPending;
/// No description provided for @wCompleted.
///
/// In en, this message translates to:
/// **'Completed'**
String get wCompleted;
/// No description provided for @wFailed.
///
/// In en, this message translates to:
/// **'Not completed'**
String get wFailed;
/// No description provided for @wPendingTopUp.
///
/// In en, this message translates to:
/// **'Your top-up is processing. Your available balance has not changed yet.'**
String get wPendingTopUp;
/// No description provided for @wPendingExchange.
///
/// In en, this message translates to:
/// **'The amount and fee have left your available balance. The exchanged amount will appear in the receiving account when completed.'**
String get wPendingExchange;
/// No description provided for @wPendingPayout.
///
/// In en, this message translates to:
/// **'The amount and fee have left your available balance. The payout is still processing.'**
String get wPendingPayout;
/// No description provided for @wCompleteTopUp.
///
/// In en, this message translates to:
/// **'Your account has been credited. The money is available to use.'**
String get wCompleteTopUp;
/// No description provided for @wCompleteExchange.
///
/// In en, this message translates to:
/// **'Your exchange is complete. The money is available in the receiving account.'**
String get wCompleteExchange;
/// No description provided for @wCompletePayout.
///
/// In en, this message translates to:
/// **'Your payout is complete. The amount and fee have been deducted from your account.'**
String get wCompletePayout;
/// No description provided for @wFailedTopUp.
///
/// In en, this message translates to:
/// **'The top-up did not complete. No money was added to your account.'**
String get wFailedTopUp;
/// No description provided for @wFailedOutgoing.
///
/// In en, this message translates to:
/// **'The transaction did not complete. The amount and fee are available in your account again.'**
String get wFailedOutgoing;
/// No description provided for @wDemoMethod.
///
/// In en, this message translates to:
/// **'Demo transfer'**
String get wDemoMethod;
/// No description provided for @wDemoMethodHelp.
///
/// In en, this message translates to:
/// **'Try the flow with sample data. No bank or payment provider is contacted.'**
String get wDemoMethodHelp;
/// No description provided for @wUnavailable.
///
/// In en, this message translates to:
/// **'Could not refresh. The displayed information may be out of date. Try again.'**
String get wUnavailable;
/// No description provided for @wInvalidAmount.
///
/// In en, this message translates to:
/// **'Enter an amount greater than zero, using the currency’s decimal precision.'**
String get wInvalidAmount;
/// No description provided for @wInsufficient.
///
/// In en, this message translates to:
/// **'Not enough available money for this amount and fee. Top up or enter a smaller amount.'**
String get wInsufficient;
/// No description provided for @wLimitError.
///
/// In en, this message translates to:
/// **'This amount exceeds your available limit. Check your limits before continuing.'**
String get wLimitError;
/// No description provided for @wRecipientError.
///
/// In en, this message translates to:
/// **'Enter a sample recipient between 6 and 140 characters.'**
String get wRecipientError;
/// No description provided for @wUnsupported.
///
/// In en, this message translates to:
/// **'This combination is unavailable. Choose another account.'**
String get wUnsupported;
/// No description provided for @wNotFound.
///
/// In en, this message translates to:
/// **'This item could not be found. Return to your accounts.'**
String get wNotFound;
/// No description provided for @wUncertain.
///
/// In en, this message translates to:
/// **'We could not confirm the outcome. Check it before trying another transaction.'**
String get wUncertain;
/// No description provided for @wCheckOutcome.
///
/// In en, this message translates to:
/// **'Check outcome'**
String get wCheckOutcome;
/// No description provided for @wNoSubmission.
///
/// In en, this message translates to:
/// **'No transaction was found. You can review and confirm again.'**
String get wNoSubmission;
/// No description provided for @wDiscardTitle.
///
/// In en, this message translates to:
/// **'Leave this transaction?'**
String get wDiscardTitle;
/// No description provided for @wDiscardBody.
///
/// In en, this message translates to:
/// **'Your entered details will be cleared. No new transaction will be submitted.'**
String get wDiscardBody;
/// No description provided for @wStay.
///
/// In en, this message translates to:
/// **'Keep editing'**
String get wStay;
/// No description provided for @wAll.
///
/// In en, this message translates to:
/// **'All'**
String get wAll;
/// No description provided for @wSearch.
///
/// In en, this message translates to:
/// **'Search by reference'**
String get wSearch;
/// No description provided for @wNoMatches.
///
/// In en, this message translates to:
/// **'No matching transactions. Try another filter.'**
String get wNoMatches;
/// No description provided for @wClearFilters.
///
/// In en, this message translates to:
/// **'Clear filters'**
String get wClearFilters;
/// No description provided for @wReference.
///
/// In en, this message translates to:
/// **'Reference'**
String get wReference;
/// No description provided for @wWhen.
///
/// In en, this message translates to:
/// **'Created'**
String get wWhen;
/// No description provided for @wViewAccount.
///
/// In en, this message translates to:
/// **'View account'**
String get wViewAccount;
/// No description provided for @wPreferences.
///
/// In en, this message translates to:
/// **'Make it yours.'**
String get wPreferences;
/// No description provided for @wLanguage.
///
/// In en, this message translates to:
/// **'Account language'**
String get wLanguage;
/// No description provided for @wLanguageHelp.
///
/// In en, this message translates to:
/// **'Used throughout your account.'**
String get wLanguageHelp;
/// No description provided for @wLanguageSaved.
///
/// In en, this message translates to:
/// **'Saved to your demo account.'**
String get wLanguageSaved;
/// No description provided for @wLanguageFailed.
///
/// In en, this message translates to:
/// **'Changed for this session, but not saved to your account. Retry below.'**
String get wLanguageFailed;
/// No description provided for @wProfileError.
///
/// In en, this message translates to:
/// **'Account preferences could not be loaded. Try again.'**
String get wProfileError;
/// No description provided for @wSecurity.
///
/// In en, this message translates to:
/// **'Security'**
String get wSecurity;
/// No description provided for @wSecurityBody.
///
/// In en, this message translates to:
/// **'Live sessions, password changes and two-step verification are not connected in this demo.'**
String get wSecurityBody;
/// No description provided for @wIdentity.
///
/// In en, this message translates to:
/// **'Identity verification'**
String get wIdentity;
/// No description provided for @wIdentityHelp.
///
/// In en, this message translates to:
/// **'Optional verification for higher limits.'**
String get wIdentityHelp;
/// No description provided for @wBackLogin.
///
/// In en, this message translates to:
/// **'Back to login'**
String get wBackLogin;
/// No description provided for @wEnter.
///
/// In en, this message translates to:
/// **'Explore your accounts'**
String get wEnter;
/// No description provided for @wUsage.
///
/// In en, this message translates to:
/// **'Used this period'**
String get wUsage;
/// No description provided for @wLimitsScope.
///
/// In en, this message translates to:
/// **'Outgoing activity · EUR equivalent'**
String get wLimitsScope;
/// No description provided for @wPendingHint.
///
/// In en, this message translates to:
/// **'Refresh to check the latest status. You can keep using your other accounts.'**
String get wPendingHint;
/// No description provided for @wFundsHeading.
///
/// In en, this message translates to:
/// **'Where is my money?'**
String get wFundsHeading;
/// No description provided for @wAnother.
///
/// In en, this message translates to:
/// **'Make another transaction'**
String get wAnother;
}
class _AppLocalizationsDelegate