// 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 registerSlogan => 'Stay in touch privately.';

  @override
  String get onboardingWelcomeTitle => 'Welcome to twonly!';

  @override
  String get onboardingWelcomeBody =>
      'Experience a private and secure way to stay in touch with friends by sharing instant pictures.';

  @override
  String get onboardingE2eTitle => 'Carefree sharing';

  @override
  String get onboardingE2eBody =>
      'With end-to-end encryption, enjoy the peace of mind that only you and your friends can see the moments you share.';

  @override
  String get onboardingFocusTitle => 'Focus on sharing moments';

  @override
  String get onboardingFocusBody =>
      'Say goodbye to addictive features! twonly was created for sharing moments, free from useless distractions or ads.';

  @override
  String get onboardingNotProductTitle => 'You are not the product!';

  @override
  String get onboardingNotProductBody =>
      'twonly is financed by an optional subscription. Your data will never be sold.';

  @override
  String get registerUsernameSlogan => 'Create your account';

  @override
  String get registerUsernameDecoration => 'Username';

  @override
  String get registerUsernameLimits => 'At least 3 characters.';

  @override
  String get registerProofOfWorkFailed =>
      'There was an issue with the captcha test. Please try again.';

  @override
  String get registerSubmitButton => 'Register now!';

  @override
  String get chatsTapToSend => 'Click to send your first image';

  @override
  String get cameraPreviewSendTo => 'Send to';

  @override
  String get shareImageTitle => 'Share with';

  @override
  String get shareImageBestFriends => 'Best friends';

  @override
  String get shareImagePinnedContacts => 'Pinnded';

  @override
  String get shareImagedEditorSendImage => 'Send';

  @override
  String get shareImagedEditorShareWith => 'Share with';

  @override
  String get shareImagedEditorSaveImage => 'Save';

  @override
  String get shareImagedEditorSavedImage => 'Saved';

  @override
  String get shareImageSearchAllContacts => 'Search all contacts';

  @override
  String get startNewChatSearchHint => 'Name, username or groupname';

  @override
  String get shareImagedSelectAll => 'Select all';

  @override
  String get startNewChatTitle => 'Select Contact';

  @override
  String get startNewChatNewContact => 'New Contact';

  @override
  String get shareImageAllUsers => 'All contacts';

  @override
  String get shareImageShowArchived => 'Show archived users';

  @override
  String get searchUsernameInput => 'Username';

  @override
  String get addFriendTitle => 'Add friends';

  @override
  String get searchUserNamePending => 'Request pending';

  @override
  String get searchUsernameNotFound => 'Username not found';

  @override
  String get searchUsernameNewFollowerTitle => 'Open requests';

  @override
  String get chatListDetailInput => 'Type a message';

  @override
  String get userDeletedAccount => 'The user has deleted their account.';

  @override
  String get contextMenuUserProfile => 'User profile';

  @override
  String get contextMenuArchiveUser => 'Archive';

  @override
  String get contextMenuUndoArchiveUser => 'Undo archiving';

  @override
  String get contextMenuOpenChat => 'Open chat';

  @override
  String get contextMenuPin => 'Pin';

  @override
  String get contextMenuUnpin => 'Unpin';

  @override
  String get contextMenuViewAgain => 'View again';

  @override
  String get mediaViewerAuthReason => 'Please authenticate to see this twonly!';

  @override
  String get mediaViewerTwonlyTapToOpen => 'Tap to open your twonly!';

  @override
  String get messageSendState_Received => 'Received';

  @override
  String get messageSendState_Opened => 'Opened';

  @override
  String get messageSendState_Send => 'Sent';

  @override
  String get messageSendState_Sending => 'Sending';

  @override
  String get messageSendState_TapToLoad => 'Tap to load';

  @override
  String get messageSendState_Loading => 'Downloading';

  @override
  String get messageStoredInGallery => 'Stored in gallery';

  @override
  String get messageReopened => 'Re-opened';

  @override
  String get imageEditorDrawOk => 'Take drawing';

  @override
  String get settingsTitle => 'Settings';

  @override
  String get settingsChats => 'Chats';

  @override
  String get settingsPreSelectedReactions => 'Preselected reaction emojis';

  @override
  String get settingsAutomaticallyMarkEqualMediaFilesAsOpenedTitle =>
      'Mark duplicates as opened';

  @override
  String get settingsAutomaticallyMarkEqualMediaFilesAsOpenedSubtitle =>
      'If you receive the same media in multiple chats, opening one marks all others as opened.';

  @override
  String get settingsPreSelectedReactionsError =>
      'A maximum of 12 reactions can be selected.';

  @override
  String get settingsProfile => 'Profile';

  @override
  String get settingsStorageData => 'Data and storage';

  @override
  String get settingsStorageDataStoreInGTitle => 'Store in Gallery';

  @override
  String get settingsStorageDataMediaAutoDownload => 'Media auto-download';

  @override
  String get settingsStorageDataAutoDownMobile => 'When using mobile data';

  @override
  String get settingsStorageDataAutoDownWifi => 'When using WI-FI';

  @override
  String get settingsStorageManageTitle => 'Manage storage';

  @override
  String get settingsStorageUsed => 'Storage used';

  @override
  String get settingsStorageImages => 'Images';

  @override
  String get settingsStorageVideos => 'Videos';

  @override
  String get settingsStorageGifs => 'GIFs';

  @override
  String get settingsProfileCustomizeAvatar => 'Customize your avatar';

  @override
  String get settingsProfileEditDisplayName => 'Displayname';

  @override
  String get settingsProfileEditDisplayNameNew => 'New Displayname';

  @override
  String get settingsAccount => 'Account';

  @override
  String get settingsSubscription => 'Subscription';

  @override
  String get settingsAppearance => 'Appearance';

  @override
  String get settingsPrivacy => 'Privacy & Security';

  @override
  String get settingsPrivacyBlockUsers => 'Block contacts';

  @override
  String get settingsPrivacyBlockUsersDesc =>
      'Blocked contacts will not be able to communicate with you. You can unblock a blocked contact at any time.';

  @override
  String settingsPrivacyBlockUsersCount(Object len) {
    return '$len contact(s)';
  }

  @override
  String get settingsNotification => 'Notification';

  @override
  String get settingsNotifyPermission => 'Notification permissions';

  @override
  String get settingsNotifyPermissionDesc =>
      'Open system settings to allow push notifications.';

  @override
  String get settingsNotifyTroubleshooting => 'Troubleshooting';

  @override
  String get settingsNotifyTroubleshootingDesc =>
      'Click here if you have problems receiving push notifications.';

  @override
  String get settingsNotifyTroubleshootingNoProblem => 'No problem detected';

  @override
  String get settingsNotifyTroubleshootingNoProblemDesc =>
      'Press OK to receive a test notification. If you do not receive the test notification, please click on the new menu item that appears after you click “OK”.';

  @override
  String get settingsNotifyResetTitle => 'Didn\'t receive a test notification?';

  @override
  String get settingsNotifyResetTitleSubtitle =>
      'If you haven\'t received any test notifications, click here to reset your notification tokens.';

  @override
  String get settingsNotifyResetTitleReset =>
      'Your notification tokens have been reset.';

  @override
  String get settingsNotifyResetTitleResetDesc =>
      'If the problem persists, please send us your debug log via Settings > Help so we can investigate the issue.';

  @override
  String get settingsHelp => 'Help';

  @override
  String get settingsHelpDiagnostics => 'Diagnostic protocol';

  @override
  String get settingsHelpFAQ => 'FAQ';

  @override
  String get feedbackTooltip => 'Give Feedback to improve twonly.';

  @override
  String get settingsHelpContactUs => 'Contact us';

  @override
  String get settingsHelpVersion => 'Version';

  @override
  String get settingsHelpLicenses => 'Licenses (Source-Code)';

  @override
  String get settingsHelpCredits => 'Licenses (Images)';

  @override
  String get settingsHelpImprint => 'Imprint & Privacy Policy';

  @override
  String get contactUsFaq => 'Have you read our FAQ yet?';

  @override
  String get contactUsEmojis => 'How do you feel? (optional)';

  @override
  String get contactUsSelectOption => 'Please select an option';

  @override
  String get contactUsReason => 'Tell us why you\'re reaching out';

  @override
  String get contactUsMessage =>
      'If you want to receive an answer, please add your e-mail address so we can contact you.';

  @override
  String get contactUsYourMessage => 'Your message';

  @override
  String get contactUsMessageTitle => 'Tell us what\'s going on';

  @override
  String get contactUsReasonNotWorking => 'Something\'s not working';

  @override
  String get contactUsReasonFeatureRequest => 'Feature request';

  @override
  String get contactUsReasonQuestion => 'Question';

  @override
  String get contactUsReasonFeedback => 'Feedback';

  @override
  String get contactUsReasonOther => 'Other';

  @override
  String get contactUsIncludeLog => 'Include debug log';

  @override
  String get contactUsWhatsThat => 'What\'s that?';

  @override
  String get contactUsLastWarning =>
      'This are the information\'s which will be send to us. Please verify them and then press submit.';

  @override
  String get contactUsSuccess => 'Feedback submitted successfully!';

  @override
  String get hideNewsIcon => 'Hide News Icon';

  @override
  String get settingsHelpTerms => 'Terms of Service';

  @override
  String get settingsAppearanceTheme => 'Theme';

  @override
  String get settingsAccountDeleteAccount => 'Delete account';

  @override
  String get settingsAccountDeleteAccountNoBallance =>
      'Once you delete your account, there is no going back.';

  @override
  String get settingsAccountDeleteModalTitle => 'Are you sure?';

  @override
  String get settingsAccountDeleteModalBody =>
      'Your account will be deleted. There is no change to restore it.';

  @override
  String get contactVerifyNumberTitle => 'Verify contacts';

  @override
  String verifyUserIdentity(Object username) {
    return 'Verify $username\'s identity';
  }

  @override
  String get contactVerifyNumberSubtitle =>
      'Verify the identity of your contacts to make sure you are texting the right person.';

  @override
  String get inChatContactNotVerified => 'Contact not verified.';

  @override
  String groupMembersNotVerified(Object count) {
    return '$count members are not verified.';
  }

  @override
  String get userVerifiedTitle => 'Contact verified';

  @override
  String scanUserQrCode(Object username) {
    return 'Scan $username\'s QR code';
  }

  @override
  String get openOwnQrCode => 'Open your own QR code';

  @override
  String contactVerifiedBy(Object username) {
    return 'Verified by $username';
  }

  @override
  String get contactSharedByUnknown =>
      'Shared by a verified contact (username not available)';

  @override
  String get verificationTypeQrScanned => 'You scanned their QR code.';

  @override
  String verificationTypeSecretQrToken(Object username) {
    return '$username has scanned your QR code.';
  }

  @override
  String get verificationTypeLink => 'Verified via link.';

  @override
  String get verificationTypeMigratedFromOldVersion =>
      'Migrated from old version.';

  @override
  String get contactViewMessage => 'Message';

  @override
  String get contactNickname => 'Nickname';

  @override
  String get contactNicknameNew => 'New nickname';

  @override
  String get contactBlock => 'Block';

  @override
  String contactBlockTitle(Object username) {
    return 'Block $username';
  }

  @override
  String get contactBlockBody =>
      'A blocked contact will no longer be able to send you messages and their profile will be hidden from view. To unblock a contact, simply navigate to Settings > Privacy > Blocked Contacts.';

  @override
  String get contactRemove => 'Remove contact';

  @override
  String contactRemoveTitle(Object username) {
    return 'Remove $username';
  }

  @override
  String get contactRemoveBody =>
      'Permanently remove the contact. If the contact tries to send you a new message, you will have to accept the contact again first.';

  @override
  String get undo => 'Undo';

  @override
  String get redo => 'Redo';

  @override
  String get next => 'Next';

  @override
  String get finishSetup => 'Complete setup';

  @override
  String get submit => 'Submit';

  @override
  String get close => 'Close';

  @override
  String get disable => 'Disable';

  @override
  String get enable => 'Enable';

  @override
  String get cancel => 'Cancel';

  @override
  String get now => 'Now';

  @override
  String get you => 'You';

  @override
  String get minutesShort => 'min.';

  @override
  String get image => 'Image';

  @override
  String get video => 'Video';

  @override
  String get react => 'React';

  @override
  String get reply => 'Reply';

  @override
  String get copy => 'Copy';

  @override
  String get edit => 'Edit';

  @override
  String get delete => 'Delete';

  @override
  String get info => 'Info';

  @override
  String get ok => 'Ok';

  @override
  String get switchFrontAndBackCamera =>
      'Switch between front and back camera.';

  @override
  String get addTextItem => 'Text';

  @override
  String get protectAsARealTwonly => 'Send as real twonly!';

  @override
  String get addDrawing => 'Drawing';

  @override
  String get addEmoji => 'Emoji';

  @override
  String get toggleFlashLight => 'Toggle the flash light';

  @override
  String userFound(Object username) {
    return '$username found';
  }

  @override
  String userFoundBody(String username) {
    return 'Do you want to connect with $username?';
  }

  @override
  String get errorInternalError =>
      'The server is currently not available. Please try again later.';

  @override
  String get errorInvalidInvitationCode =>
      'The invitation code you provided is invalid. Please check the code and try again.';

  @override
  String get errorUsernameAlreadyTaken => 'The username is already taken.';

  @override
  String get errorUsernameNotValid =>
      'The username you provided does not meet the required criteria. Please choose a valid username.';

  @override
  String get errorNotEnoughCredit => 'You do not have enough twonly-credit.';

  @override
  String get errorVoucherInvalid =>
      'The voucher code you entered is not valid.';

  @override
  String get errorPlanLimitReached =>
      'You have reached your plans limit. Please upgrade your plan.';

  @override
  String get errorPlanNotAllowed =>
      'This feature is not available in your current plan.';

  @override
  String get errorPlanUpgradeNotYearly =>
      'The plan upgrade must be paid for annually, as the current plan is also billed annually.';

  @override
  String upgradeToPaidPlanButton(Object planId, Object sufix) {
    return 'Upgrade to $planId$sufix';
  }

  @override
  String partOfPaidPlanOf(Object username) {
    return 'You are part of the paid plan of $username!';
  }

  @override
  String get year => 'year';

  @override
  String get yearly => 'Yearly';

  @override
  String get month => 'month';

  @override
  String get monthly => 'Monthly';

  @override
  String get proFeature1 => '✓ Unlimited media file uploads';

  @override
  String get proFeature2 => '✓ 1 additional Plus user';

  @override
  String get proFeature3 => '✓ 25GB Memories storage';

  @override
  String get proFeature4 => '✓ Restore flames';

  @override
  String get familyFeature1 => '✓ Unlimited media file uploads';

  @override
  String get familyFeature2 => '✓ 4 additional Plus user';

  @override
  String get familyFeature3 => '✓ 50GB Memories storage';

  @override
  String get familyFeature4 => '✓ Support twonly';

  @override
  String get freeFeature1 => '✓ 10 Media file uploads per day';

  @override
  String get plusFeature1 => '✓ Unlimited media file uploads';

  @override
  String get plusFeature2 => '✓ Additional features (coming-soon)';

  @override
  String get manageAdditionalUsers => 'Manage additional users';

  @override
  String get open => 'Open';

  @override
  String get buy => 'Buy';

  @override
  String get autoRenewal => 'Auto renewal';

  @override
  String get additionalUsersList => 'Your additional users';

  @override
  String get galleryDelete => 'Delete file';

  @override
  String get galleryExport => 'Export to gallery';

  @override
  String get galleryExportSuccess => 'Successfully saved in the Gallery.';

  @override
  String get gallerySelectAll => 'Select all';

  @override
  String get galleryDeselectAll => 'Deselect all';

  @override
  String get galleryFavorite => 'Favorite';

  @override
  String get galleryUnfavorite => 'Unfavorite';

  @override
  String get galleryCancel => 'Cancel';

  @override
  String get memoriesEmpty =>
      'As soon as you save pictures or videos, they end up here in your memories.';

  @override
  String get deleteTitle => 'Are you sure?';

  @override
  String get deleteOkBtnForAll => 'Delete for all';

  @override
  String memoriesDeleteSnackbarSuccess(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: 'Deleted $count items successfully',
      one: 'Deleted 1 item successfully',
    );
    return '$_temp0';
  }

  @override
  String get deleteOkBtnForMe => 'Delete for me';

  @override
  String get deleteOnlyForMe => 'Delete only for me';

  @override
  String get deleteImageTitle => 'Are you sure?';

  @override
  String get deleteImageBody => 'The image will be irrevocably deleted.';

  @override
  String deleteMemoriesBody(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: 'The $count images will be irrevocably deleted.',
      one: 'The image will be irrevocably deleted.',
    );
    return '$_temp0';
  }

  @override
  String get deleteMemoriesLocalOnly => 'Local Only';

  @override
  String get deleteMemoriesCompletely => 'Completely';

  @override
  String memoriesSelectedCount(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '$count Elements',
      one: '1 Element',
    );
    return '$_temp0';
  }

  @override
  String get memoriesMenuSelectAll => 'Select all';

  @override
  String get memoriesMenuDeselectAll => 'Deselect all';

  @override
  String get memoriesMenuExport => 'Export to gallery';

  @override
  String get memoriesMenuFavorite => 'Favorite';

  @override
  String get memoriesMenuDelete => 'Delete completely';

  @override
  String get memoriesMenuDeleteLocal => 'Delete locally';

  @override
  String get settingsBackup => 'Backup';

  @override
  String get backupPending => 'Pending';

  @override
  String get backupFailed => 'Failed';

  @override
  String get backupSuccess => 'Success';

  @override
  String get backupTwonlySafeDesc =>
      'Back up your twonly identity, as this is the only way to restore your account if you uninstall the app or lose your phone.';

  @override
  String get backupNoPasswordRecovery =>
      'Due to twonly\'s security system, there is (currently) no password recovery function. Therefore, you must remember your password or, better yet, write it down.';

  @override
  String get backupIdentityHeader => 'Identity';

  @override
  String get backupArchiveHeader => 'Contacts & Messages';

  @override
  String get backupLastBackupDate => 'Last backup';

  @override
  String get backupLastBackupSize => 'Backup size';

  @override
  String get backupLastBackupResult => 'Result';

  @override
  String get backupInsecurePassword => 'Insecure password';

  @override
  String get backupInsecurePasswordDesc =>
      'The chosen password is very insecure and can therefore easily be guessed by attackers. Please choose a secure password.';

  @override
  String get backupInsecurePasswordOk => 'Continue anyway';

  @override
  String get backupInsecurePasswordCancel => 'Try again';

  @override
  String get backupTwonlySafeLongDesc =>
      'twonly does not have any central user accounts. A key pair is created during installation, which consists of a public and a private key. The private key is only stored on your device to protect it from unauthorized access. The public key is uploaded to the server and linked to your chosen username so that others can find you.\n\ntwonly Backup regularly creates an encrypted, anonymous backup of your private key together with your contacts and settings. Your username and chosen password are enough to restore this data on another device.';

  @override
  String get backupSelectStrongPassword =>
      'Select a secure password. It is recommended to generate and store it via your password manager of choice.';

  @override
  String get password => 'Password';

  @override
  String get passwordRepeated => 'Repeat password';

  @override
  String get passwordRepeatedNotEqual => 'Passwords do not match.';

  @override
  String get backupPasswordRequirement =>
      'Password must be at least 10 characters long.';

  @override
  String get backupEnableBackup => 'Enable Password Backup';

  @override
  String get backupTwonlySaveNow => 'Save now';

  @override
  String get backupChangePassword => 'Change password';

  @override
  String get backupChangePasswordAuthReason => 'Changing backup password';

  @override
  String get backupChangePasswordAuthFailed =>
      'You can only change your password after you have authenticated!';

  @override
  String get backupFreeSpaceWithCloud => 'Free Space with Cloud Backup';

  @override
  String get backupMemoriesNotEnabled => 'Not enabled';

  @override
  String get backupMemoriesUpgradeRequired => 'Upgrade required';

  @override
  String todayAt(Object time) {
    return 'Today at $time';
  }

  @override
  String yesterdayAt(Object time) {
    return 'Yesterday at $time';
  }

  @override
  String get twonlySafeRecoverTitle => 'Restore backup';

  @override
  String get twonlySafeRecoverBtn => 'Restore backup';

  @override
  String get inviteFriends => 'Invite your friends';

  @override
  String get inviteFriendsShareBtn => 'Share';

  @override
  String inviteFriendsShareText(Object url) {
    return 'Let\'s switch to twonly: $url';
  }

  @override
  String get appOutdated => 'Your version of twonly is out of date.';

  @override
  String get appOutdatedBtn => 'Update Now';

  @override
  String get doubleClickToReopen => 'Double-click\nto open again';

  @override
  String get uploadLimitReached =>
      'The upload limit has\nbeen reached. Upgrade to Pro\nor wait until tomorrow.';

  @override
  String get fileLimitReached => 'Maximum file size\nexceeded';

  @override
  String get retransmissionRequested => 'Retransmission requested';

  @override
  String reportUserTitle(Object username) {
    return 'Report $username';
  }

  @override
  String get reportUserReason => 'Reporting reason';

  @override
  String get reportUser => 'Report contact';

  @override
  String get newDeviceRegistered =>
      'You have logged in on another device. You have therefore been logged out here.';

  @override
  String get tabToRemoveEmoji => 'Tab to remove';

  @override
  String get quotedMessageWasDeleted => 'The quoted message has been deleted.';

  @override
  String get messageWasDeleted => 'Message has been deleted.';

  @override
  String get messageWasDeletedShort => 'Deleted';

  @override
  String get sent => 'Delivered';

  @override
  String get sentTo => 'Delivered to';

  @override
  String get received => 'Received';

  @override
  String get opened => 'Opened';

  @override
  String get waitingForInternet => 'Waiting for internet';

  @override
  String get editHistory => 'Edit history';

  @override
  String get archivedChats => 'Archived chats';

  @override
  String get durationShortSecond => 'Sec.';

  @override
  String get durationShortMinute => 'Min.';

  @override
  String get durationShortHour => 'Hrs.';

  @override
  String durationShortDays(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '$count Days',
      one: '1 Day',
    );
    return '$_temp0';
  }

  @override
  String get contacts => 'Contacts';

  @override
  String get groups => 'Groups';

  @override
  String get newGroup => 'New group';

  @override
  String get selectMembers => 'Select members';

  @override
  String get selectGroupName => 'Select group name';

  @override
  String get groupNameInput => 'Group name';

  @override
  String get groupMembers => 'Members';

  @override
  String get addMember => 'Add member';

  @override
  String get createGroup => 'Create group';

  @override
  String get leaveGroup => 'Leave group';

  @override
  String get createContactRequest => 'Create contact request';

  @override
  String get contactRequestSend => 'Contact request send';

  @override
  String get makeAdmin => 'Make admin';

  @override
  String get removeAdmin => 'Remove as admin';

  @override
  String get removeFromGroup => 'Remove from group';

  @override
  String get admin => 'Admin';

  @override
  String revokeAdminRightsTitle(Object username) {
    return 'Revoke $username\'s admin rights?';
  }

  @override
  String get revokeAdminRightsOkBtn => 'Remove as admin';

  @override
  String makeAdminRightsTitle(Object username) {
    return 'Make $username an admin?';
  }

  @override
  String makeAdminRightsBody(Object username) {
    return '$username will be able to edit this group and its members.';
  }

  @override
  String get makeAdminRightsOkBtn => 'Make admin';

  @override
  String get updateGroup => 'Update group';

  @override
  String get alreadyInGroup => 'Already in Group';

  @override
  String get contactNotVerified => 'Not verified';

  @override
  String removeContactFromGroupTitle(Object username) {
    return 'Remove $username from this group?';
  }

  @override
  String youChangedGroupName(Object newGroupName) {
    return 'You have changed the group name to \"$newGroupName\".';
  }

  @override
  String makerChangedGroupName(Object maker, Object newGroupName) {
    return '$maker has changed the group name to \"$newGroupName\".';
  }

  @override
  String get youCreatedGroup => 'You have created the group.';

  @override
  String makerCreatedGroup(Object maker) {
    return '$maker has created the group.';
  }

  @override
  String youRemovedMember(Object affected) {
    return 'You have removed $affected from the group.';
  }

  @override
  String makerRemovedMember(Object affected, Object maker) {
    return '$maker has removed $affected from the group.';
  }

  @override
  String youAddedMember(Object affected) {
    return 'You have added $affected to the group.';
  }

  @override
  String makerAddedMember(Object affected, Object maker) {
    return '$maker has added $affected to the group.';
  }

  @override
  String youMadeAdmin(Object affected) {
    return 'You made $affected an admin.';
  }

  @override
  String makerMadeAdmin(Object affected, Object maker) {
    return '$maker made $affected an admin.';
  }

  @override
  String youRevokedAdminRights(Object affectedR) {
    return 'You revoked $affectedR\'s admin rights.';
  }

  @override
  String makerRevokedAdminRights(Object affectedR, Object maker) {
    return '$maker revoked $affectedR\'s admin rights.';
  }

  @override
  String get youLeftGroup => 'You have left the group.';

  @override
  String makerLeftGroup(Object maker) {
    return '$maker has left the group.';
  }

  @override
  String get groupActionYou => 'you';

  @override
  String get groupActionYour => 'your';

  @override
  String get notificationFillerIn => 'in';

  @override
  String notificationText(Object inGroup) {
    return 'sent a message$inGroup.';
  }

  @override
  String notificationTwonly(Object inGroup) {
    return 'sent a twonly$inGroup.';
  }

  @override
  String notificationVideo(Object inGroup) {
    return 'sent a video$inGroup.';
  }

  @override
  String notificationImage(Object inGroup) {
    return 'sent an image$inGroup.';
  }

  @override
  String notificationAudio(Object inGroup) {
    return 'sent a voice message$inGroup.';
  }

  @override
  String notificationAddedToGroup(Object groupname) {
    return 'has added you to \"$groupname\"';
  }

  @override
  String get notificationContactRequest => 'wants to connect with you.';

  @override
  String get notificationAcceptRequest => 'is now connected with you.';

  @override
  String get notificationStoredMediaFile => 'has stored your image.';

  @override
  String get notificationReaction => 'has reacted to your image.';

  @override
  String get notificationReopenedMedia => 'has reopened your image.';

  @override
  String notificationReactionToVideo(Object reaction) {
    return 'has reacted with $reaction to your video.';
  }

  @override
  String notificationReactionToText(Object reaction) {
    return 'has reacted with $reaction to your message.';
  }

  @override
  String notificationReactionToImage(Object reaction) {
    return 'has reacted with $reaction to your image.';
  }

  @override
  String notificationReactionToAudio(Object reaction) {
    return 'has reacted with $reaction to your audio message.';
  }

  @override
  String notificationResponse(Object inGroup) {
    return 'has responded$inGroup.';
  }

  @override
  String get notificationCategoryMessageTitle => 'Messages';

  @override
  String get notificationCategoryMessageDesc => 'Messages from other users.';

  @override
  String get groupContextMenuDeleteGroup =>
      'This will permanently delete all messages in this chat.';

  @override
  String get groupYouAreNowLongerAMember =>
      'You are no longer part of this group.';

  @override
  String get groupNetworkIssue => 'Network issue. Try again later.';

  @override
  String get leaveGroupSelectOtherAdminTitle => 'Select another admin';

  @override
  String get leaveGroupSelectOtherAdminBody =>
      'To leave the group, you must first select a new administrator.';

  @override
  String get leaveGroupSureTitle => 'Leave group';

  @override
  String get leaveGroupSureBody => 'Do you really want to leave the group?';

  @override
  String get leaveGroupSureOkBtn => 'Leave group';

  @override
  String changeDisplayMaxTime(Object time, Object username) {
    return 'Chats will now be deleted after $time ($username).';
  }

  @override
  String youChangedDisplayMaxTime(Object time) {
    return 'Chats will now be deleted after $time.';
  }

  @override
  String get userGotReported => 'User has been reported.';

  @override
  String get deleteChatAfter => 'Delete chat after...';

  @override
  String get deleteChatAfterAnHour => 'one hour.';

  @override
  String get deleteChatAfterADay => 'one day.';

  @override
  String get deleteChatAfterAWeek => 'one week.';

  @override
  String get deleteChatAfterAMonth => 'one month.';

  @override
  String get deleteChatAfterAYear => 'one year.';

  @override
  String get yourTwonlyScore => 'Your twonly-Score';

  @override
  String get registrationClosed =>
      'Due to the current high volume of registrations, we have temporarily disabled registration to ensure that the service remains reliable. Please try again in a few days.';

  @override
  String get dialogAskDeleteMediaFilePopTitle =>
      'Are you sure you want to delete your masterpiece?';

  @override
  String get dialogAskDeleteMediaFilePopDelete => 'Delete';

  @override
  String get allowErrorTracking => 'Share errors and crashes with us';

  @override
  String get allowErrorTrackingSubtitle =>
      'If twonly crashes or errors occur, these are automatically reported to our self-hosted Glitchtip instance. Personal data such as messages or images are never uploaded.';

  @override
  String get avatarSaveChanges => 'Would you like to save the changes?';

  @override
  String get avatarSaveChangesStore => 'Save';

  @override
  String get avatarSaveChangesDiscard => 'Discard';

  @override
  String get inProcess => 'In process';

  @override
  String get draftMessage => 'Draft';

  @override
  String get voiceMessageSlideToCancel => 'Slide to cancel';

  @override
  String get voiceMessageCancel => 'Cancel';

  @override
  String get shareYourProfile => 'Share your profile';

  @override
  String get scanOtherProfile => 'Scan other profile';

  @override
  String get openYourOwnQRcode => 'Open your own QR code';

  @override
  String get addContactQrSheetSubtext =>
      'Let a friend scan this QR code to add you';

  @override
  String letUserScanQrCode(Object username) {
    return 'Let $username scan this QR code';
  }

  @override
  String get finishSetupCardTitle => 'Complete your profile';

  @override
  String get finishSetupCardDesc =>
      'You are almost there! Finish setting up your account to get the most out of twonly.';

  @override
  String get finishSetupCardAction => 'Resume Setup';

  @override
  String get missingBackupCardTitle => 'Setup backup';

  @override
  String get missingBackupCardDesc =>
      'We have improved the backup mechanism, which requires you to set it up again.';

  @override
  String get missingBackupCardAction => 'Set up now';

  @override
  String get onboardingFinishLater => 'Finish later';

  @override
  String get onboardingProfileTitle => 'Choose your look';

  @override
  String get onboardingProfileBody =>
      'Select an avatar and a display name that friends will see.';

  @override
  String get onboardingBackupBody =>
      'Back up your twonly identity, as this is the only way to restore your account if you uninstall the app or lose your phone.';

  @override
  String get onboardingUserDiscoveryShareFriends => 'Share your friends';

  @override
  String get onboardingUserDiscoveryShareFriendsDesc =>
      'Share with your friends who you know and who you have verified. Friends can *only see mutual friends* from your friend list. You can change your mind at *any time* or *hide specific people*.';

  @override
  String get onboardingUserDiscoveryContactsVerifiedBadge =>
      'Contacts verified by your friends get a badge';

  @override
  String get onboardingUserDiscoveryWhoIsRequesting =>
      'Be informed about who is requesting';

  @override
  String get userDiscoverySettingsManualApproval =>
      'Ask every time before sharing';

  @override
  String get userDiscoverySettingsManualApprovalDesc =>
      'Before one of your friends is shared, you will be asked every time.';

  @override
  String get onboardingUserDiscoveryLetFriendsFindYou =>
      'Let your friends find you';

  @override
  String get onboardingUserDiscoveryBeRecommended => 'Be recommended to others';

  @override
  String get onboardingUserDiscoveryWhatOthersSee => 'What others will see';

  @override
  String get onboardingUserDiscoveryWhatYouSee =>
      'If requested, that\'s what you will see';

  @override
  String get onboardingAddContactsTitle => 'Add new contacts';

  @override
  String get onboardingAddContactsAcceptDesc =>
      'In twonly, every contact must first be accepted before you can communicate.';

  @override
  String get onboardingAddContactsMethodHeading => 'Add contacts';

  @override
  String get onboardingAddContactsMethodScan => 'Scan the contact\'s QR code.';

  @override
  String get onboardingAddContactsMethodSearch => 'Search for the username.';

  @override
  String get onboardingAddContactsMethodShare => 'Share a contact in chats.';

  @override
  String linkFromUsername(Object username) {
    return 'Is the link from $username?';
  }

  @override
  String get linkFromUsernameLong =>
      'If you received the link from your friend, you can mark the user as verified, as the public key in the link matches the public key already stored for that user?';

  @override
  String get gotLinkFromFriend => 'Yes, I got the link from my friend!';

  @override
  String couldNotVerifyUsername(Object username) {
    return 'Could not verify $username';
  }

  @override
  String get linkPubkeyDoesNotMatch =>
      'The public key in the link does not match the public key stored for this contact. Try to meet your friend in person and scan the QR code directly!';

  @override
  String get startWithCameraOpen => 'Start with camera open';

  @override
  String get showImagePreviewWhenSending =>
      'Display image preview when selecting recipients';

  @override
  String verifiedPublicKey(Object username) {
    return 'The identity of $username has been successfully verified.';
  }

  @override
  String get memoriesAYearAgo => 'One year ago';

  @override
  String memoriesXYearsAgo(Object years) {
    return '$years years ago';
  }

  @override
  String migrationOfMemories(Object open) {
    return 'Migration of media files: $open still to be processed.';
  }

  @override
  String get autoStoreAllSendUnlimitedMediaFiles => 'Save all sent media';

  @override
  String get autoStoreAllSendUnlimitedMediaFilesSubtitle =>
      'If you enable this option, all images you send will be saved as long as they were sent with an infinite countdown and not in twonly mode.';

  @override
  String get termsOfService => 'Terms of service';

  @override
  String get privacyPolicy => 'Privacy policy';

  @override
  String additionalUserAddError(Object username) {
    return '$username could not be added, please try again later.';
  }

  @override
  String additionalUserAddErrorNotInFreePlan(Object username) {
    return '$username is already on a paid plan and therefore could not be added.';
  }

  @override
  String additionalUserAddButton(Object limit, Object used) {
    return 'Add additional user ($used/$limit)';
  }

  @override
  String get additionalUserRemoveTitle => 'Remove this additional user';

  @override
  String get additionalUserRemoveDesc =>
      'After removal, the additional user will automatically be downgraded to the free plan, and you can add another person.';

  @override
  String get additionalUserSelectTitle => 'Select additional users';

  @override
  String additionalUserSelectButton(Object limit, Object used) {
    return 'Select users ($used/$limit)';
  }

  @override
  String get storeAsDefault => 'Store as default';

  @override
  String get deleteUserErrorMessage =>
      'You can only delete the contact once the direct chat has been deleted and the contact is no longer a member of a group.';

  @override
  String groupSizeLimitError(Object size) {
    return 'Currently, group size is limited to $size people!';
  }

  @override
  String get authRequestReopenImage =>
      'You must authenticate to reopen the image.';

  @override
  String get shareContactsMenu => 'Contact';

  @override
  String get shareContactsTitle => 'Select contacts';

  @override
  String get shareContactsSubmit => 'Share now';

  @override
  String get updateTwonlyMessage =>
      'To see this message, you need to update twonly.';

  @override
  String get verificationBadgeNote =>
      'You can verify your friends by scanning their public QR code. Click to learn more.';

  @override
  String get verificationBadgeTitle => 'Verification';

  @override
  String get verificationBadgeGeneralDesc =>
      'The badge gives you the peace of mind that you are messaging the *right person* and your *messages remain confidential*.';

  @override
  String get verificationBadgeGreenDesc =>
      'A contact you have *personally verified* using the QR code.';

  @override
  String get verificationBadgeYellowDesc =>
      'A contact who has been verified by at least one of *your contacts*.';

  @override
  String get verificationBadgeRedDesc =>
      'A contact whose identity has *not* yet been verified.';

  @override
  String get scanNow => 'Scan now';

  @override
  String get qrScannerVerifyHint =>
      'To verify, the other person must open their QR code (Chat Lists > QR code button at the bottom right)';

  @override
  String qrScannerVerifyUserHint(Object username) {
    return 'To verify, $username must open their QR code (Chat Lists > QR code button at the bottom right)';
  }

  @override
  String get openQrCode => 'Open QR code';

  @override
  String get letFriendScanQrToVerify =>
      'Let a friend scan this QR code to verify you';

  @override
  String get deleteVerificationTitle => 'Delete verification?';

  @override
  String get deleteVerificationBody =>
      'Are you sure you want to delete this verification?';

  @override
  String secretQrTokenVerifiedSnackbar(Object username) {
    return '$username has scanned your QR code and is now verified.';
  }

  @override
  String askForFriendPromotionsPrompt(Object username) {
    return 'Help $username find familiar faces on twonly by sharing mutual friends.';
  }

  @override
  String mutualGroupsTitle(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: '$count mutual groups',
      one: '1 mutual group',
    );
    return '$_temp0';
  }

  @override
  String chatEntryFlameRestored(Object count) {
    return '$count flames restored';
  }

  @override
  String requestedUserToastText(Object username) {
    return '$username was successfully requested.';
  }

  @override
  String get profileYourQrCode => 'Your QR code';

  @override
  String get settingsScreenLock => 'Screen lock';

  @override
  String get settingsScreenLockSubtitle =>
      'To open twonly, you\'ll need to use your smartphone\'s unlock feature.';

  @override
  String get settingsScreenLockAuthMessageEnable =>
      'Use the screen lock from twonly.';

  @override
  String get settingsScreenLockAuthMessageDisable =>
      'Disable the screen lock from twonly.';

  @override
  String get unlockTwonly => 'Unlock twonly';

  @override
  String get unlockTwonlyTryAgain => 'Try again';

  @override
  String get unlockTwonlyDesc =>
      'Use your phone\'s unlock settings to unlock twonly';

  @override
  String get settingsTypingIndication => 'Typing Indicators';

  @override
  String get settingsTypingIndicationSubtitle =>
      'When the typing indicator is turned off, you can\'t see when others are typing a message.';

  @override
  String get contactActionBlock => 'Block';

  @override
  String get contactActionAccept => 'Accept';

  @override
  String get userDiscoverySettingsMutualFriends =>
      'Choose how many mutual friends a person must have for you to be suggested to them.';

  @override
  String get userDiscoverySettingsApply => 'Apply changes';

  @override
  String get userDiscoveryEnabledDisableWarning =>
      'If you disable the \"Mutual Friends\" feature, you will no longer see suggestions. You will also stop sharing your friends with new contacts.';

  @override
  String get userDiscoveryEnabledChangeSettings => 'Change settings';

  @override
  String get userDiscoveryEnabledFaq =>
      'In our FAQ we explain how the \"Mutual Friends\" feature works.';

  @override
  String get userDiscoveryDisabledIntro =>
      'twonly does *not* collect your phone number or needs access to your contacts. Instead, twonly can *find your friends through mutual friends*.';

  @override
  String get userDiscoverySettingsTitle => 'Mutual Friends';

  @override
  String get userDiscoveryFeatureOffers => 'Your benefits at a glance';

  @override
  String get userDiscoveryDisabledLearnMore => 'Learn more';

  @override
  String get userDiscoveryEnabledDialogTitle => 'Really disable?';

  @override
  String get userDiscoveryEnabledFriendsShared => 'Friends you share';

  @override
  String get userDiscoveryEnabledFriendsSharedDesc =>
      'You only share friends who have also activated this feature and who have reached the threshold you set.';

  @override
  String get userDiscoverySettingsCurrentlyDisabled =>
      'The feature \"Mutual Friends\" is currently disabled.';

  @override
  String get userDiscoveryEnabledNoFriendsShared =>
      'You are not sharing anyone yet.';

  @override
  String get userDiscoveryActionDisable => 'Disable';

  @override
  String get friendSuggestionsTitle => 'Friend suggestions';

  @override
  String get andWord => 'and';

  @override
  String friendSuggestionsFriendsWith(Object friends) {
    return 'Friends with $friends.';
  }

  @override
  String friendSuggestionsGroupMemberIn(Object groups) {
    return ' Group member in $groups.';
  }

  @override
  String get friendSuggestionsRequest => 'Request';

  @override
  String get friendSuggestionsAskFriend => 'Ask your friends';

  @override
  String askFriendsDialogTitle(Object username) {
    return 'Ask about $username';
  }

  @override
  String get askFriendsDialogDescription =>
      'Select the friends you want to ask about this user:';

  @override
  String get askFriendsDialogConfirm => 'Ask';

  @override
  String get askFriendsDialogCancel => 'Cancel';

  @override
  String get chatAskAFriendReceivedDescription =>
      'Your friend just got this as a suggestion and wants to know if he knows this person.';

  @override
  String get chatAskAFriendAddedDescription =>
      'You have added this user to your contacts.';

  @override
  String get chatAskAFriendHide => 'Hide';

  @override
  String get chatAskAFriendRequest => 'Request';

  @override
  String chatAskAFriendUnknownUser(Object userId) {
    return 'User $userId';
  }

  @override
  String contactUserDiscoveryImagesLeft(Object imagesLeft, Object username) {
    return '$imagesLeft more images are needed until your friends are shared with $username.';
  }

  @override
  String userDiscoveryEnabledVersion(Object version) {
    return 'Version: $version';
  }

  @override
  String userDiscoveryEnabledYourVersion(Object version) {
    return 'Your version: $version';
  }

  @override
  String get userDiscoveryEnabledStopSharing => 'Stop sharing';

  @override
  String userDiscoveryManualApprovalReachedThreshold(Object username) {
    return 'Would you like to share $username with your friends?';
  }

  @override
  String get userDiscoveryManualApprovalHideContact => 'Hide contact';

  @override
  String get userDiscoveryManualApprovalShareContact => 'Share contact';

  @override
  String onboardingSetupCompleteTitle(Object username) {
    return 'You\'re all set, $username!';
  }

  @override
  String get onboardingSetupCompleteDesc =>
      'You can now share your moments with your friends securely without distractions like ads.';

  @override
  String get contactUserDiscoveryManualApprovalPending =>
      'Contact was not yet manually approved.';

  @override
  String get contactUserDiscoveryManualApprovalApprove => 'Approve';

  @override
  String get exampleUserName1 => 'james';

  @override
  String get exampleUserName2 => 'mary';

  @override
  String get exampleUserName3 => 'john';

  @override
  String get exampleUserName4 => 'patricia';

  @override
  String get exampleUserName5 => 'robert';

  @override
  String get exampleUserName6 => 'jennifer';

  @override
  String get exampleUserName7 => 'michael';

  @override
  String get exampleUserName8 => 'linda';

  @override
  String get exampleUserName9 => 'william';

  @override
  String get exampleUserName10 => 'lena';

  @override
  String get exampleUserName11 => 'david';

  @override
  String get exampleJane => 'jane';

  @override
  String get back => 'Back';

  @override
  String makerChangedUsername(Object maker, Object oldName, Object newName) {
    return '$maker changed their username from $oldName to $newName.';
  }

  @override
  String makerChangedDisplayName(Object maker, Object oldName, Object newName) {
    return '$maker changed their display name from $oldName to $newName.';
  }

  @override
  String get recoverErrorNoInternet =>
      'No internet connection. Please check your network and try again.';

  @override
  String get recoverErrorUsernameNotValid =>
      'The username provided is not valid or does not exist.';

  @override
  String get recoverErrorPasswordInvalid =>
      'The password provided is incorrect.';

  @override
  String get recoverErrorTryAgainLater =>
      'The server is currently unavailable. Please try again later.';

  @override
  String get recoverErrorUnknown =>
      'An unknown error occurred. Please try again.';

  @override
  String get recoverSuccessTitle => 'Backup successfully recovered.';

  @override
  String get recoverSuccessBody => 'Click here to open the app again';

  @override
  String get iosRecoveryWelcomeBack => 'Welcome Back';

  @override
  String get iosRecoveryPrompt =>
      'We detected a previously secured twonly identity on this device. Would you like to automatically download and restore your contacts, messages, and settings from your cloud archive?';

  @override
  String iosRecoveryNoBackupFound(Object error) {
    return 'No backup archive could be retrieved from the server for this device.\n\nError: $error\n\nPlease proceed to register a new twonly account.';
  }

  @override
  String get registerNewAccount => 'Register New Account';

  @override
  String get tryRestoreAgain => 'Try Restore Again';

  @override
  String get registeringNewAccount => 'Registering new account';

  @override
  String get createShortcut => 'Create shortcut';

  @override
  String get editShortcut => 'Edit shortcut';

  @override
  String get deleteShortcut => 'Delete shortcut';

  @override
  String get deleteShortcutBody =>
      'Are you sure you want to delete this shortcut?';

  @override
  String get updateShortcut => 'Update shortcut';

  @override
  String get selectEmoji => 'Select Emoji';

  @override
  String get errorEmojiUsedOrInvalid => 'Emoji already used or invalid';

  @override
  String get subscriptionPledgeSecureTitle => 'Secure by Design';

  @override
  String get subscriptionPledgeSecureDesc =>
      'Your messages and shared moments are fully end-to-end encrypted.';

  @override
  String get subscriptionPledgeNoAdsTitle => 'No Ads or Data selling';

  @override
  String get subscriptionPledgeNoAdsDesc =>
      'twonly will never show advertisements or sell your private data.';

  @override
  String get subscriptionPledgeSubtitle => 'Zero ads. Total privacy.';

  @override
  String get subscriptionManage => 'Manage subscription';

  @override
  String get dragToZoom => 'Drag to Zoom';

  @override
  String get onboardingProfileSelectionTitle => 'Choose your setup path';

  @override
  String get onboardingProfileSelectionSubtitle =>
      'Choose how you want to configure your security and privacy settings.';

  @override
  String get onboardingProfileSelectionDefaultTitle => 'Default';

  @override
  String get onboardingProfileSelectionDefaultDesc =>
      'Instantly applies recommended settings so you can start using the app.';

  @override
  String get onboardingProfileSelectionDefaultBadge => 'Fast Setup';

  @override
  String get onboardingProfileSelectionCustomizeTitle => 'Customize';

  @override
  String get onboardingProfileSelectionCustomizeDesc =>
      'Step-by-step setup so you can decide for yourself.';

  @override
  String get replyFlameRestored => 'Flames restored';

  @override
  String get replyAskAFriend => 'Ask a friend';

  @override
  String get unverifiedWarningButton => 'Verify now';

  @override
  String get today => 'Today';

  @override
  String get yesterday => 'Yesterday';

  @override
  String get galleryDisableWarningTitle => 'Disable gallery saving?';

  @override
  String get galleryDisableWarningBody =>
      'If you disable this, your media files will not be saved to your gallery and could be permanently lost if twonly is removed or has an issue, as media files are not yet backed up.';

  @override
  String get galleryDisableWarningConfirm => 'Disable';

  @override
  String get settingsStorageScanGalleryTitle => 'Import from Gallery';

  @override
  String get importGalleryDeselectAll => 'Deselect all';

  @override
  String get importGallerySelectAll => 'Select all';

  @override
  String get importGalleryPermissionRequired =>
      'Permission to access your gallery is required to import previous twonly media files.';

  @override
  String importGalleryPermissionError(Object error) {
    return 'An error occurred while requesting permission: $error';
  }

  @override
  String importGalleryLoadError(Object error) {
    return 'Failed to load assets: $error';
  }

  @override
  String importGalleryImportingOf(Object current, Object total) {
    return 'Importing $current of $total...';
  }

  @override
  String get importGalleryStarting => 'Starting import...';

  @override
  String importGalleryComplete(Object imported, Object failed) {
    return 'Import complete: $imported successfully imported and $failed failed.';
  }

  @override
  String get importGalleryGrantAccess => 'Grant Access';

  @override
  String get importGalleryOpenSettings => 'Open Settings';

  @override
  String get importGalleryPermissionDenied =>
      'Permission to access gallery denied.';

  @override
  String get importGalleryTryAgain => 'Try Again';

  @override
  String get importGalleryAlbumNotFound => '\"twonly\" album not found';

  @override
  String get importGalleryAlbumNotFoundDesc =>
      'If you don\'t have this album yet, you can also create it to import photos into twonly.';

  @override
  String get importGalleryNoImagesFound => 'No images found';

  @override
  String get importGalleryNoImagesFoundDesc =>
      'There are no images on your device.';

  @override
  String get importGalleryFilterTwonly => 'Only show the twonly-Album';

  @override
  String get importGalleryRefresh => 'Refresh';

  @override
  String get importGallerySelectToImport => 'Select items to import';

  @override
  String importGalleryImportCount(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: 'Import $count items',
      one: 'Import 1 item',
    );
    return '$_temp0';
  }

  @override
  String get emptyChatListTitle => 'Find your first friend';

  @override
  String get emptyChatListDesc =>
      'Let friends scan your QR code, or share them your profile.';

  @override
  String get emptyChatListShareBtn => 'Share your profile';

  @override
  String get emptyChatListScanBtn => 'QR Code';

  @override
  String get emptyChatListAddUsernameBtn => 'By Username';

  @override
  String get avatarCustomizeRandomize => 'Randomize';

  @override
  String get avatarCustomizeReset => 'Reset';

  @override
  String get passwordlessRecovery => 'Trusted Friends';

  @override
  String get passwordlessRecoveryNotConfigured => 'Not configured';

  @override
  String get passwordlessRecoveryTestPin => 'Test PIN';

  @override
  String get passwordlessRecoveryTestPinTitle => 'Test PIN';

  @override
  String get passwordlessRecoveryTestPinHint => 'Enter your PIN';

  @override
  String get passwordlessRecoveryTestPinCorrect => 'PIN is correct!';

  @override
  String get passwordlessRecoveryTestPinIncorrect => 'Incorrect PIN.';

  @override
  String get passwordlessRecoveryTest => 'Test';

  @override
  String get passwordlessRecoverySecondFactorNone => 'None';

  @override
  String passwordlessRecoverySecondFactorEmailLabel(Object email) {
    return 'Email ($email)';
  }

  @override
  String get passwordlessRecoverySecondFactorPin => 'PIN';

  @override
  String get passwordlessRecoverySecondFactorEmail => 'Email';

  @override
  String get passwordlessRecoveryModify => 'Modify Recovery Settings';

  @override
  String get passwordlessRecoveryModifyDesc =>
      'Update your recovery configuration';

  @override
  String get passwordlessRecoverySecondFactor => 'Second Factor';

  @override
  String get passwordlessRecoveryNoFriendsFound => 'No trusted friends found.';

  @override
  String get passwordlessRecoveryActiveFriends => 'Active Friends';

  @override
  String get passwordlessRecoveryActiveFriendsDesc =>
      'These trusted friends are actively using twonly and can probably help you recover your account.';

  @override
  String get passwordlessRecoveryInactiveFriends => 'Inactive Friends';

  @override
  String get passwordlessRecoveryInactiveFriendsDesc =>
      'These friends either have not yet received their share or do not use twonly actively anymore, which could mean that they maybe cannot help.';

  @override
  String get passwordlessRecoveryEnableSuccess =>
      'Trusted Friends successfully set up!';

  @override
  String get passwordlessRecoveryEnterPin => 'Please enter a PIN.';

  @override
  String get passwordlessRecoveryEnterEmail => 'Please enter an email address.';

  @override
  String get passwordlessRecoveryEnableBtn => 'Enable Trusted Friends';

  @override
  String get passwordlessRecoveryRecoverBtn => 'Recover via Trusted Friends';

  @override
  String get passwordlessRecoveryModifyBtn => 'Modify Trusted Friends';

  @override
  String passwordlessRecoveryStatusEnabled(num count) {
    return 'Enabled • $count trusted friends';
  }

  @override
  String get passwordlessRecoveryInfoHowItWorks => 'How it works';

  @override
  String get passwordlessRecoveryInfoHowItWorksDesc =>
      'twonly operates without phone numbers, which is why we rely on a decentralized recovery mechanism. Using Shamir\'s Secret Sharing, your cryptographic identity is split into independent shares and distributed among your trusted friends. To restore access, a predefined number of these friends must combine their shares.';

  @override
  String get passwordlessRecoveryInfoWhySecondFactor => 'Why a Second Factor?';

  @override
  String get passwordlessRecoveryInfoWhySecondFactorDesc =>
      'The second factor (Email or PIN) provides important additional protection. Even if your friends were to secretly team up, they still couldn\'t access your account without this second factor.';

  @override
  String get passwordlessRecoveryInfoGotIt => 'Got it';

  @override
  String get passwordlessRecoveryMethod => 'Second factor method';

  @override
  String get passwordlessRecoveryMethodNoneDesc =>
      'Without second-factor, your friends could collaborate to recover your account. Therefore, it is recommended to configure a second-factor.';

  @override
  String get passwordlessRecoveryMethodPinHint => 'Enter PIN';

  @override
  String get passwordlessRecoveryMethodEmailHint =>
      'Enter recovery email address';

  @override
  String get passwordlessRecoveryMethodEmailDesc =>
      'Your email address is *never stored on the server* and is only sent to it in the event of a recovery.';

  @override
  String passwordlessRecoveryThresholdDesc(num count) {
    return 'To recover your account you need $count of your selected trusted friends.';
  }

  @override
  String get passwordlessRecoveryThresholdTitle =>
      'Required trusted friends for recovery';

  @override
  String passwordlessRecoverySelectFriendsNeeded(num count) {
    return 'Select friends ($count more needed)';
  }

  @override
  String get passwordlessRecoverySelectFriends => 'Select trusted friends';

  @override
  String get passwordlessRecoveryTrustedFriends => 'Account recovery';

  @override
  String passwordlessRecoveryDoneBtn(num count) {
    return 'Done ($count)';
  }

  @override
  String get passwordlessRecoveryNoFriendsSelected =>
      'No trusted friends selected yet';

  @override
  String get passwordlessRecoverySubtitle =>
      'Recover your identity without a password.';

  @override
  String get recoverPasswordlessExplanation =>
      'If enabled, you can recover your account by asking your selected friends to help you.';

  @override
  String get recoverPasswordlessNotificationCardTitle => 'Enable notifications';

  @override
  String get recoverPasswordlessNotificationCardSubtitle =>
      'Get notified when a friend has helped you recover your account.';

  @override
  String get recoverPasswordlessNotificationCardBtn =>
      'Enable push notifications';

  @override
  String get recoverPasswordlessQrInstructions =>
      'Let friends scan the QR code or share the link.';

  @override
  String get recoverPasswordlessShareBtn => 'Share Recovery Link';

  @override
  String get recoverPasswordlessCopyBtn => 'Copy';

  @override
  String get recoverPasswordlessCopiedSnackbar => 'Link copied to clipboard!';

  @override
  String get passwordlessRecoveryNoShareStored =>
      'No recovery share stored for this contact.';

  @override
  String get passwordlessRecoveryEmailSent => 'Recovery email sent!';

  @override
  String get passwordlessRecoveryShareSent => 'Recovery share sent!';

  @override
  String get passwordlessRecoveryNetworkError =>
      'Network error, please ensure you have internet';

  @override
  String get passwordlessRecoveryInvalidEmail =>
      'The email address is invalid.';

  @override
  String get passwordlessRecoveryResendEmail => 'Resend recovery email';

  @override
  String get passwordlessRecoveryHelpAFriend => 'Help a Friend';

  @override
  String get passwordlessRecoverySelectContactDesc =>
      'Please select the contact who requested recovery below to send them their recovery key.';

  @override
  String get passwordlessRecoverySearchContacts => 'Search contacts...';

  @override
  String get passwordlessRecoveryNoContactsFound => 'No contacts found';

  @override
  String get passwordlessRecoveryCantHelpHim => 'You can\'t help this person';

  @override
  String passwordlessRecoveryDoesAskedYou(Object username) {
    return 'Has $username asked you?';
  }

  @override
  String get passwordlessRecoveryVerifySourceDesc =>
      'Please make sure this request really came from this person. If in doubt, ask them via another channel!';

  @override
  String get passwordlessRecoveryNo => 'No';

  @override
  String get passwordlessRecoveryYes => 'Yes';

  @override
  String passwordlessRecoveryYesWithTimer(Object seconds) {
    return 'Yes (${seconds}s)';
  }

  @override
  String recoverPasswordlessSharesReceived(Object received, Object threshold) {
    return '$received out of $threshold friends have helped';
  }

  @override
  String get recoverPasswordlessRecoverNowBtn => 'Recover now';

  @override
  String get missingRecoveryContactsCardTitle => 'Account Recovery';

  @override
  String get missingRecoveryContactsCardDesc =>
      'Select Recovery Contacts to help you recover your account without requiring a password.';

  @override
  String get missingRecoveryContactsCardAction => 'Select Contacts';

  @override
  String get memoriesBackupLimitReached =>
      'Cloud backup limit reached! Please upgrade your plan or free up space.';

  @override
  String get settingsStorageLocal => 'Local storage';

  @override
  String get settingsStorageNoCloudBackupTitle => 'No Cloud Backup';

  @override
  String get settingsStorageNoCloudBackupCard =>
      'Back up your memories to the cloud to free up local space and ensure you never lose your pictures. All end-to-end encrypted.';

  @override
  String get galleryActionSave => 'Save';

  @override
  String get galleryActionExport => 'Export';

  @override
  String get galleryActionFavorite => 'Favorite';

  @override
  String get galleryActionUnfavorite => 'Unfavorite';

  @override
  String get galleryActionDelete => 'Delete';

  @override
  String get galleryActionShare => 'Share';

  @override
  String get settingsStorageHidePromo => 'Hide';

  @override
  String get memoriesBackupTitle => 'Memories Backup';

  @override
  String get settingsHelpNews => 'News';

  @override
  String get settingsStorageContents => 'Free up space';

  @override
  String get settingsStorageSortStorage => 'Occupied storage';

  @override
  String get settingsStorageSortNewest => 'Newest';

  @override
  String get settingsStorageSortOldest => 'Oldest';

  @override
  String get settingsStorageNoContents => 'No storage contents found.';

  @override
  String get settingsStorageCloudOnly => 'Cloud only';

  @override
  String get settingsStorageLocalAndCloud => 'Local and cloud';

  @override
  String get settingsStorageLocalOnly => 'Local only';

  @override
  String get settingsStorageDisableBackupTitle => 'Disable Backup?';

  @override
  String settingsStorageDisableBackupBody(num count) {
    String _temp0 = intl.Intl.pluralLogic(
      count,
      locale: localeName,
      other: 'are *$count images*',
      one: 'is *1 image*',
    );
    return 'This will delete all backed up memories from the cloud. There $_temp0 only stored in the cloud that will be *permanently lost*. Are you sure you want to proceed?';
  }

  @override
  String get settingsStorageDisableBackupBtn => 'Disable';

  @override
  String get settingsStorageDisableBackupAction => 'Disable Cloud Backup';

  @override
  String get settingsStorageSyncNow => 'Sync now';

  @override
  String get settingsStorageSyncUpToDate => 'All memories are up to date.';

  @override
  String restoreLostFlames(int count) {
    return 'Restore your $count lost flames';
  }

  @override
  String get settingsShowRestoreFlameTitle => 'Show flame restore warning';

  @override
  String get contactLabelsTitle => 'Contact Labels';

  @override
  String get contactLabelsSubtitleEmpty => 'No labels selected';

  @override
  String get contactLabelsMaxLimit => 'Maximum 3 labels per contact';

  @override
  String get createLabel => 'Create new label';

  @override
  String get editLabel => 'Edit label';

  @override
  String get deleteLabel => 'Delete label';

  @override
  String get deleteLabelConfirmation =>
      'Are you sure you want to delete this label? It will be removed from all contacts.';

  @override
  String get labelNameHint => 'Label name';

  @override
  String get labelTextColor => 'Text color';

  @override
  String get labelBackgroundColor => 'Background color';

  @override
  String get customColor => 'Custom Color';

  @override
  String get hue => 'Hue';

  @override
  String get saturation => 'Saturation';

  @override
  String get brightness => 'Brightness';

  @override
  String get settingsAppearancePrimaryColor => 'Primary Color';

  @override
  String get themeSystemDefault => 'System default';

  @override
  String get themeLight => 'Light';

  @override
  String get themeDark => 'Dark';

  @override
  String get backupRecoverySectionTitle => 'Secure Account Access';

  @override
  String get backupRecoverySectionDescNone =>
      'You must select at least one recovery option, as otherwise no one can help you if you lose access to your device.';

  @override
  String get backupRecoverySectionDescSome =>
      'You can recover your account with the recovery options below. It is recommended to enable both options.';

  @override
  String get backupRecoveryOptionAFriends => 'Via trusted friends';

  @override
  String get backupRecoveryOptionAMicrocopy =>
      'Select friends who can help you recover your account.';

  @override
  String get backupRecoveryOptionBPassword => 'Classic Password';

  @override
  String get backupRecoveryOptionBMicrocopy =>
      'Set a password for your access.';

  @override
  String get backupCloudSectionTitle => 'Backup Your Data';

  @override
  String get backupCloudSectionDesc =>
      'Backup your content so nothing gets lost.';

  @override
  String get backupCloudContactsMessages => 'Contacts & Messages';

  @override
  String get backupCloudFreeActive => 'Free Active';

  @override
  String get backupCloudImagesMedia => 'Images & Media';

  @override
  String get backupCloudProBadge => 'Pro';

  @override
  String get memoriesAddingToFavorites => 'Adding to favorites...';

  @override
  String get memoriesRemovingFromFavorites => 'Removing from favorites...';

  @override
  String get memoriesDeletingProgress => 'Deleting memories...';

  @override
  String get memoriesExportingProgress => 'Exporting memories...';
}
