1503 lines
43 KiB
Dart
1503 lines
43 KiB
Dart
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_ru.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 'i18n/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<AppLocalizations>(context, AppLocalizations);
|
||
}
|
||
|
||
static const LocalizationsDelegate<AppLocalizations> 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<LocalizationsDelegate<dynamic>> localizationsDelegates =
|
||
<LocalizationsDelegate<dynamic>>[
|
||
delegate,
|
||
GlobalMaterialLocalizations.delegate,
|
||
GlobalCupertinoLocalizations.delegate,
|
||
GlobalWidgetsLocalizations.delegate,
|
||
];
|
||
|
||
/// A list of this localizations delegate's supported locales.
|
||
static const List<Locale> supportedLocales = <Locale>[
|
||
Locale('en'),
|
||
Locale('ru'),
|
||
];
|
||
|
||
/// No description provided for @appTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'SXCHNGE · Your next move'**
|
||
String get appTitle;
|
||
|
||
/// No description provided for @nextChapter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YOUR NEXT CHAPTER'**
|
||
String get nextChapter;
|
||
|
||
/// No description provided for @loginHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hey, welcome\nback.'**
|
||
String get loginHeading;
|
||
|
||
/// No description provided for @signupHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Make your\nfirst move.'**
|
||
String get signupHeading;
|
||
|
||
/// No description provided for @loginIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your next move is just a login away.'**
|
||
String get loginIntro;
|
||
|
||
/// No description provided for @signupIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A new account. A world of possibility.'**
|
||
String get signupIntro;
|
||
|
||
/// No description provided for @login.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Log in'**
|
||
String get login;
|
||
|
||
/// No description provided for @signup.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Sign up'**
|
||
String get signup;
|
||
|
||
/// No description provided for @name.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your name'**
|
||
String get name;
|
||
|
||
/// No description provided for @email.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Email address'**
|
||
String get email;
|
||
|
||
/// No description provided for @emailHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'you@example.com'**
|
||
String get emailHint;
|
||
|
||
/// No description provided for @password.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Password'**
|
||
String get password;
|
||
|
||
/// No description provided for @confirmPassword.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Confirm password'**
|
||
String get confirmPassword;
|
||
|
||
/// No description provided for @passwordHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Use at least 12 characters.'**
|
||
String get passwordHint;
|
||
|
||
/// No description provided for @showPassword.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show password'**
|
||
String get showPassword;
|
||
|
||
/// No description provided for @hidePassword.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide password'**
|
||
String get hidePassword;
|
||
|
||
/// No description provided for @showConfirmation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Show confirmation'**
|
||
String get showConfirmation;
|
||
|
||
/// No description provided for @hideConfirmation.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hide confirmation'**
|
||
String get hideConfirmation;
|
||
|
||
/// No description provided for @createAccount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create account'**
|
||
String get createAccount;
|
||
|
||
/// No description provided for @letsGo.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Let’s go'**
|
||
String get letsGo;
|
||
|
||
/// No description provided for @loginPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You’re signed in.'**
|
||
String get loginPreview;
|
||
|
||
/// No description provided for @signupPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your account is ready.'**
|
||
String get signupPreview;
|
||
|
||
/// No description provided for @alreadyMember.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Already part of sxchnge?'**
|
||
String get alreadyMember;
|
||
|
||
/// No description provided for @newHere.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New around here?'**
|
||
String get newHere;
|
||
|
||
/// No description provided for @loginInstead.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Log in instead'**
|
||
String get loginInstead;
|
||
|
||
/// No description provided for @createAnAccount.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Create an account'**
|
||
String get createAnAccount;
|
||
|
||
/// No description provided for @brandEyebrow.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A LITTLE CHANGE. A BIG NEXT STEP.'**
|
||
String get brandEyebrow;
|
||
|
||
/// No description provided for @brandHeading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Good moves.\nStart here.'**
|
||
String get brandHeading;
|
||
|
||
/// No description provided for @brandIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'A fresh way forward.\nMake it yours with sxchnge.'**
|
||
String get brandIntro;
|
||
|
||
/// No description provided for @brandCard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Less friction.\nMore possibility.'**
|
||
String get brandCard;
|
||
|
||
/// No description provided for @brandFooter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'YOUR NEXT MOVE STARTS WITH YOU.'**
|
||
String get brandFooter;
|
||
|
||
/// No description provided for @emailRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter your email address.'**
|
||
String get emailRequired;
|
||
|
||
/// No description provided for @emailInvalid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter a valid email address.'**
|
||
String get emailInvalid;
|
||
|
||
/// No description provided for @nameRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter your name.'**
|
||
String get nameRequired;
|
||
|
||
/// No description provided for @passwordRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Enter your password.'**
|
||
String get passwordRequired;
|
||
|
||
/// No description provided for @confirmationRequired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Confirm your password.'**
|
||
String get confirmationRequired;
|
||
|
||
/// No description provided for @passwordMismatch.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Passwords do not match.'**
|
||
String get passwordMismatch;
|
||
|
||
/// No description provided for @language.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Language'**
|
||
String get language;
|
||
|
||
/// No description provided for @preferenceNotSaved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Language changed for this session. Your preference could not be saved.'**
|
||
String get preferenceNotSaved;
|
||
|
||
/// No description provided for @authWorking.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Please wait…'**
|
||
String get authWorking;
|
||
|
||
/// No description provided for @authCompleted.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Request completed.'**
|
||
String get authCompleted;
|
||
|
||
/// No description provided for @authInvalidCredentials.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Email or password is incorrect. Please try again.'**
|
||
String get authInvalidCredentials;
|
||
|
||
/// No description provided for @authEmailInUse.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This email is already registered. Try logging in.'**
|
||
String get authEmailInUse;
|
||
|
||
/// No description provided for @authUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The service is unavailable. Please try again.'**
|
||
String get authUnavailable;
|
||
|
||
/// No description provided for @authUnexpected.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Something went wrong. Please try again.'**
|
||
String get authUnexpected;
|
||
|
||
/// No description provided for @checkInbox.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check your inbox.'**
|
||
String get checkInbox;
|
||
|
||
/// No description provided for @verificationSent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'We’ve sent you a verification email. Open the link in your inbox to confirm your email address.'**
|
||
String get verificationSent;
|
||
|
||
/// No description provided for @verificationSending.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Preparing your verification email…'**
|
||
String get verificationSending;
|
||
|
||
/// No description provided for @verificationChecking.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verifying your email…'**
|
||
String get verificationChecking;
|
||
|
||
/// No description provided for @verificationVerified.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your email\nis verified.'**
|
||
String get verificationVerified;
|
||
|
||
/// No description provided for @verificationVerifiedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'One step done. You can now return to login. Identity verification is a separate step.'**
|
||
String get verificationVerifiedBody;
|
||
|
||
/// No description provided for @verificationExpired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This link has expired.'**
|
||
String get verificationExpired;
|
||
|
||
/// No description provided for @verificationExpiredBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Request a new verification email and use the latest link.'**
|
||
String get verificationExpiredBody;
|
||
|
||
/// No description provided for @verificationInvalid.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This link isn’t valid.'**
|
||
String get verificationInvalid;
|
||
|
||
/// No description provided for @verificationInvalidBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The confirmation link is missing or invalid. Open the complete link from your email, or request a new one.'**
|
||
String get verificationInvalidBody;
|
||
|
||
/// No description provided for @verificationInternal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Something went wrong.'**
|
||
String get verificationInternal;
|
||
|
||
/// No description provided for @verificationInternalBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'We couldn’t complete your request because of an internal error. Please try again.'**
|
||
String get verificationInternalBody;
|
||
|
||
/// No description provided for @verificationResend.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Resend verification email'**
|
||
String get verificationResend;
|
||
|
||
/// No description provided for @verificationRequest.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Send a new verification email'**
|
||
String get verificationRequest;
|
||
|
||
/// No description provided for @verificationRetry.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Retry verification'**
|
||
String get verificationRetry;
|
||
|
||
/// No description provided for @verificationBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to login'**
|
||
String get verificationBack;
|
||
|
||
/// No description provided for @verificationHint.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No email? Check your spam folder or request another below.'**
|
||
String get verificationHint;
|
||
|
||
/// No description provided for @verificationDemoLink.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue to confirmation'**
|
||
String get verificationDemoLink;
|
||
|
||
/// No description provided for @verificationStep.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'CONFIRM YOUR EMAIL'**
|
||
String get verificationStep;
|
||
|
||
/// No description provided for @verificationRecipient.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Recipient'**
|
||
String get verificationRecipient;
|
||
|
||
/// No description provided for @verificationChangeEmail.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Change email'**
|
||
String get verificationChangeEmail;
|
||
|
||
/// No description provided for @kycTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verification & limits'**
|
||
String get kycTitle;
|
||
|
||
/// No description provided for @kycIntro.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your account, at your pace. Verify your identity when you need higher limits.'**
|
||
String get kycIntro;
|
||
|
||
/// No description provided for @kycUnverified.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Not verified'**
|
||
String get kycUnverified;
|
||
|
||
/// No description provided for @kycPending.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'In review'**
|
||
String get kycPending;
|
||
|
||
/// No description provided for @kycApproved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Identity verified'**
|
||
String get kycApproved;
|
||
|
||
/// No description provided for @kycChanges.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'New photos needed'**
|
||
String get kycChanges;
|
||
|
||
/// No description provided for @kycDenied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verification declined'**
|
||
String get kycDenied;
|
||
|
||
/// No description provided for @kycUnverifiedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'You can keep using your account with basic limits. Submit a passport photo and a selfie holding it to request an upgrade.'**
|
||
String get kycUnverifiedBody;
|
||
|
||
/// No description provided for @kycPendingBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your submission is awaiting a human review. Basic limits remain active until approval. You do not need to submit again.'**
|
||
String get kycPendingBody;
|
||
|
||
/// No description provided for @kycApprovedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your review is complete. Check your current limits below.'**
|
||
String get kycApprovedBody;
|
||
|
||
/// No description provided for @kycChangesBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your account remains available with basic limits. Replace the photos and submit a new review request.'**
|
||
String get kycChangesBody;
|
||
|
||
/// No description provided for @kycDeniedBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Basic limits remain available. If you believe this decision is incorrect, contact support for a review.'**
|
||
String get kycDeniedBody;
|
||
|
||
/// No description provided for @kycPassportReason.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The passport details could not be read. Retake the photo in good light, with every edge visible.'**
|
||
String get kycPassportReason;
|
||
|
||
/// No description provided for @kycSelfieReason.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your face or passport was not clear in the selfie. Keep both visible and in focus.'**
|
||
String get kycSelfieReason;
|
||
|
||
/// No description provided for @kycExpiredReason.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The passport has expired. Use a valid passport and take both photos again.'**
|
||
String get kycExpiredReason;
|
||
|
||
/// No description provided for @kycDeniedReason.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'We could not verify your identity from this submission.'**
|
||
String get kycDeniedReason;
|
||
|
||
/// No description provided for @kycStart.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verify identity'**
|
||
String get kycStart;
|
||
|
||
/// No description provided for @kycResubmit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Replace photos'**
|
||
String get kycResubmit;
|
||
|
||
/// No description provided for @kycRefresh.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Refresh status & limits'**
|
||
String get kycRefresh;
|
||
|
||
/// No description provided for @kycSupport.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Contact support'**
|
||
String get kycSupport;
|
||
|
||
/// No description provided for @kycSupportBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Support is currently unavailable. Please try again later.'**
|
||
String get kycSupportBody;
|
||
|
||
/// No description provided for @kycBasic.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Basic'**
|
||
String get kycBasic;
|
||
|
||
/// No description provided for @kycVerifiedTier.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Verified'**
|
||
String get kycVerifiedTier;
|
||
|
||
/// No description provided for @kycLimits.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your limits'**
|
||
String get kycLimits;
|
||
|
||
/// No description provided for @kycDay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Daily volume'**
|
||
String get kycDay;
|
||
|
||
/// No description provided for @kycMonth.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Monthly volume'**
|
||
String get kycMonth;
|
||
|
||
/// No description provided for @kycCurrent.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Current cap'**
|
||
String get kycCurrent;
|
||
|
||
/// No description provided for @kycRemaining.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Available'**
|
||
String get kycRemaining;
|
||
|
||
/// No description provided for @kycAfter.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'After approval'**
|
||
String get kycAfter;
|
||
|
||
/// No description provided for @kycLimitsError.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Limits could not be refreshed. Any values below are out of date. Retry to see your current access.'**
|
||
String get kycLimitsError;
|
||
|
||
/// No description provided for @kycLimitsEmpty.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'No limits were returned. Refresh or check with support before making a transaction.'**
|
||
String get kycLimitsEmpty;
|
||
|
||
/// No description provided for @kycLoading.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Loading your status…'**
|
||
String get kycLoading;
|
||
|
||
/// No description provided for @kycPassport.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Passport photo'**
|
||
String get kycPassport;
|
||
|
||
/// No description provided for @kycSelfie.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Selfie with passport'**
|
||
String get kycSelfie;
|
||
|
||
/// No description provided for @kycReview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review your photos'**
|
||
String get kycReview;
|
||
|
||
/// No description provided for @kycPassportHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Open your valid passport to the photo page. Show all four edges and keep text sharp. Avoid glare, blur and covered details.'**
|
||
String get kycPassportHelp;
|
||
|
||
/// No description provided for @kycSelfieHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Hold the open passport beside your face. Show your whole face and the photo page in the same image. Keep both sharp and uncovered.'**
|
||
String get kycSelfieHelp;
|
||
|
||
/// No description provided for @kycFileRules.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'JPEG or PNG · up to 10 MB · at least 600 × 600 pixels. Take a photo with your camera, then choose it here.'**
|
||
String get kycFileRules;
|
||
|
||
/// No description provided for @kycChoose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose photo'**
|
||
String get kycChoose;
|
||
|
||
/// No description provided for @kycReplace.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose a different photo'**
|
||
String get kycReplace;
|
||
|
||
/// No description provided for @kycRemove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Remove photo'**
|
||
String get kycRemove;
|
||
|
||
/// No description provided for @kycNext.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Continue'**
|
||
String get kycNext;
|
||
|
||
/// No description provided for @kycBack.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back'**
|
||
String get kycBack;
|
||
|
||
/// No description provided for @kycSkip.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep basic limits'**
|
||
String get kycSkip;
|
||
|
||
/// No description provided for @kycClose.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Back to account'**
|
||
String get kycClose;
|
||
|
||
/// No description provided for @kycReviewHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Check that both photos are readable and show the same passport. A staff member will review them; submission does not immediately raise your limits.'**
|
||
String get kycReviewHelp;
|
||
|
||
/// No description provided for @kycConfirm.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'These photos show me and my own valid passport.'**
|
||
String get kycConfirm;
|
||
|
||
/// No description provided for @kycSubmit.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Submit for review'**
|
||
String get kycSubmit;
|
||
|
||
/// No description provided for @kycWorking.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Processing… Please keep this page open.'**
|
||
String get kycWorking;
|
||
|
||
/// No description provided for @kycDiscardTitle.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard these photos?'**
|
||
String get kycDiscardTitle;
|
||
|
||
/// No description provided for @kycDiscardBody.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your draft is only in memory. Leaving will remove the selected photos; you can start again later.'**
|
||
String get kycDiscardBody;
|
||
|
||
/// No description provided for @kycStay.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Keep editing'**
|
||
String get kycStay;
|
||
|
||
/// No description provided for @kycDiscard.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Discard & leave'**
|
||
String get kycDiscard;
|
||
|
||
/// No description provided for @kycErrorUnavailable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The service is unavailable. Your selected photos are still here. Try again.'**
|
||
String get kycErrorUnavailable;
|
||
|
||
/// No description provided for @kycErrorInternal.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Something went wrong. Try again; your selected photos have been kept.'**
|
||
String get kycErrorInternal;
|
||
|
||
/// No description provided for @kycErrorPermission.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'We could not open that photo. Check file access or choose another image.'**
|
||
String get kycErrorPermission;
|
||
|
||
/// No description provided for @kycErrorFormat.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose a JPEG or PNG image. Other formats are not supported.'**
|
||
String get kycErrorFormat;
|
||
|
||
/// No description provided for @kycErrorLarge.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This image is too large. Choose one under 10 MB and 40 megapixels.'**
|
||
String get kycErrorLarge;
|
||
|
||
/// No description provided for @kycErrorUnreadable.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'This image is damaged or cannot be read. Choose another photo.'**
|
||
String get kycErrorUnreadable;
|
||
|
||
/// No description provided for @kycErrorSmall.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'The photo is too small. Use an image at least 600 pixels wide and high.'**
|
||
String get kycErrorSmall;
|
||
|
||
/// No description provided for @kycErrorIncomplete.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose both photos and confirm they belong to you before submitting.'**
|
||
String get kycErrorIncomplete;
|
||
|
||
/// No description provided for @kycErrorSession.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your session has expired. Return to login, then check your verification status.'**
|
||
String get kycErrorSession;
|
||
|
||
/// No description provided for @kycErrorRate.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Too many requests. Wait a moment before trying again.'**
|
||
String get kycErrorRate;
|
||
|
||
/// No description provided for @kycErrorConflict.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Your review status has changed. Refresh it before continuing.'**
|
||
String get kycErrorConflict;
|
||
|
||
/// No description provided for @kycDemoControls.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Review scenarios'**
|
||
String get kycDemoControls;
|
||
|
||
/// No description provided for @kycDemoApprove.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Approve'**
|
||
String get kycDemoApprove;
|
||
|
||
/// No description provided for @kycDemoCorrect.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Request clearer passport'**
|
||
String get kycDemoCorrect;
|
||
|
||
/// No description provided for @kycDemoSelfie.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Request clearer selfie'**
|
||
String get kycDemoSelfie;
|
||
|
||
/// No description provided for @kycDemoExpired.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Passport expired'**
|
||
String get kycDemoExpired;
|
||
|
||
/// No description provided for @kycDemoDeny.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Decline'**
|
||
String get kycDemoDeny;
|
||
|
||
/// No description provided for @kycPreview.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Explore verification & limits'**
|
||
String get kycPreview;
|
||
|
||
/// No description provided for @kycChooseFirst.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Choose a photo to continue.'**
|
||
String get kycChooseFirst;
|
||
|
||
/// No description provided for @kycStatusStale.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Status could not be refreshed. The status shown is the last known result.'**
|
||
String get kycStatusStale;
|
||
|
||
/// No description provided for @kycUsed.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Used'**
|
||
String get kycUsed;
|
||
|
||
/// No description provided for @kycReserved.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Reserved'**
|
||
String get kycReserved;
|
||
|
||
/// No description provided for @kycUsageHelp.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Used is completed activity. Reserved is held for pending transactions. Both count toward your limit.'**
|
||
String get kycUsageHelp;
|
||
|
||
/// No description provided for @kycOccupied.
|
||
///
|
||
/// In en, this message translates to:
|
||
/// **'Used + reserved'**
|
||
String get kycOccupied;
|
||
|
||
/// No description provided for @kycNoCapacity.
|
||
///
|
||
/// 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 @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:
|
||
/// **'Recipient name or reference'**
|
||
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 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 @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 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:
|
||
/// **'Password and security settings are not available yet.'**
|
||
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
|
||
extends LocalizationsDelegate<AppLocalizations> {
|
||
const _AppLocalizationsDelegate();
|
||
|
||
@override
|
||
Future<AppLocalizations> load(Locale locale) {
|
||
return SynchronousFuture<AppLocalizations>(lookupAppLocalizations(locale));
|
||
}
|
||
|
||
@override
|
||
bool isSupported(Locale locale) =>
|
||
<String>['en', 'ru'].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 'ru':
|
||
return AppLocalizationsRu();
|
||
}
|
||
|
||
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.',
|
||
);
|
||
}
|