halkyon/packages/halkyon_app/lib/l10n/halkyon_app_localizations.dart
Tizian 「ティツィアーン」 7ac715cd97
feat(app): a wait screen for accounts that wait for the operator (ADR 0021, step 1)
An account signed in or up to on an instance whose operator approves
new accounts, or one suspended, gets no session but a wait: the device
keeps its pass, words and handle in the keyring per instance
(SecureAccountWaitStore, InstanceStorage.waitOf), the auth status is
Waiting, and SessionGate shows WaitScreen in its own app, so the start
screen's sheets go with it. Every sign-in flow hands over to it: the
password's sign-in, sign-up, reset and account reset, SimpleLogin's
sign-in, sign-up and mending; their cubits show no problem then.

The wait screen shows the handle, the four words the operator reads out
for the person to match, and that Halkyon never asks anyone to read them
out (D33); it asks where the wait stands as it opens, every 30 seconds,
as the app comes back and when asked. A new account can be deleted with
its pass, a suspended one can't (ADR 0017). Approved, it leads to the
usual sign-in, once more as before (D31); a pass the instance knows no
more ends the wait. The start screen says where new accounts wait for
approval, and offers no Create an account where the operator takes none;
both refusals (closed, too many waiting) have their words, en and de.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-26 07:17:05 +01:00

2015 lines
68 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 'halkyon_app_localizations_de.dart';
import 'halkyon_app_localizations_en.dart';
// ignore_for_file: type=lint
/// Callers can lookup localized strings with an instance of HalkyonAppLocalizations
/// returned by `HalkyonAppLocalizations.of(context)`.
///
/// Applications need to include `HalkyonAppLocalizations.delegate()` in their app's
/// `localizationDelegates` list, and the locales they support in the app's
/// `supportedLocales` list. For example:
///
/// ```dart
/// import 'l10n/halkyon_app_localizations.dart';
///
/// return MaterialApp(
/// localizationsDelegates: HalkyonAppLocalizations.localizationsDelegates,
/// supportedLocales: HalkyonAppLocalizations.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 HalkyonAppLocalizations.supportedLocales
/// property.
abstract class HalkyonAppLocalizations {
HalkyonAppLocalizations(String locale)
: localeName = intl.Intl.canonicalizedLocale(locale.toString());
final String localeName;
static HalkyonAppLocalizations of(BuildContext context) {
return Localizations.of<HalkyonAppLocalizations>(
context,
HalkyonAppLocalizations,
)!;
}
static const LocalizationsDelegate<HalkyonAppLocalizations> delegate =
_HalkyonAppLocalizationsDelegate();
/// 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('de'),
Locale('en'),
Locale('en', 'GB'),
Locale('en', 'US'),
];
/// No description provided for @tryAgain.
///
/// In en, this message translates to:
/// **'Try again'**
String get tryAgain;
/// Screen readers hear it for the wordmark on the first start.
///
/// In en, this message translates to:
/// **'Welcome to {app}'**
String instanceWelcome(String app);
/// No description provided for @instanceBuiltInTagline.
///
/// In en, this message translates to:
/// **'Comes with the app'**
String get instanceBuiltInTagline;
/// No description provided for @instanceAnother.
///
/// In en, this message translates to:
/// **'Another instance'**
String get instanceAnother;
/// No description provided for @instanceAnotherTagline.
///
/// In en, this message translates to:
/// **'Enter its address'**
String get instanceAnotherTagline;
/// No description provided for @instanceAddress.
///
/// In en, this message translates to:
/// **'Instance address'**
String get instanceAddress;
/// No description provided for @instanceAddressInvalid.
///
/// In en, this message translates to:
/// **'This isn\'t an address.'**
String get instanceAddressInvalid;
/// No description provided for @instanceAddressInsecure.
///
/// In en, this message translates to:
/// **'{app} reaches instances over HTTPS only, so that nobody on the way reads or changes what it sends. Ask for the instance\'s HTTPS address.'**
String instanceAddressInsecure(String app);
/// No description provided for @instanceInsecure.
///
/// In en, this message translates to:
/// **'{name} is reached over plain HTTP, where anyone on the way could read and change what {app} sends, so {app} no longer opens it. Its account stays on {name} and on this device. Use another instance, or remove it from this device.'**
String instanceInsecure(String name, String app);
/// No description provided for @instanceInsecureUseAnother.
///
/// In en, this message translates to:
/// **'Use another instance'**
String get instanceInsecureUseAnother;
/// No description provided for @instanceInsecureRemove.
///
/// In en, this message translates to:
/// **'Remove from this device'**
String get instanceInsecureRemove;
/// No description provided for @instanceAddressRequired.
///
/// In en, this message translates to:
/// **'Enter the address of an instance.'**
String get instanceAddressRequired;
/// No description provided for @instanceContinue.
///
/// In en, this message translates to:
/// **'Continue'**
String get instanceContinue;
/// No description provided for @instanceUnreachable.
///
/// In en, this message translates to:
/// **'No instance of {app} answers at {name}.'**
String instanceUnreachable(String app, String name);
/// No description provided for @instanceUseBuiltIn.
///
/// In en, this message translates to:
/// **'Use {name}'**
String instanceUseBuiltIn(String name);
/// No description provided for @instanceOpenFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t open the app on {name}.'**
String instanceOpenFailed(String name);
/// No description provided for @instanceDataAndBackupsIn.
///
/// In en, this message translates to:
/// **'Data and backups: {place}'**
String instanceDataAndBackupsIn(String place);
/// No description provided for @instanceDataIn.
///
/// In en, this message translates to:
/// **'Data: {place}'**
String instanceDataIn(String place);
/// No description provided for @instanceBackupsIn.
///
/// In en, this message translates to:
/// **'Backups: {place}'**
String instanceBackupsIn(String place);
/// No description provided for @instanceNoBackups.
///
/// In en, this message translates to:
/// **'No backups'**
String get instanceNoBackups;
/// No description provided for @instanceEuropeanUnion.
///
/// In en, this message translates to:
/// **'European Union'**
String get instanceEuropeanUnion;
/// A country of the European Union, where an instance keeps data: Germany (EU).
///
/// In en, this message translates to:
/// **'{country} (EU)'**
String instanceCountryInEu(String country);
/// A state or region with its country, where an instance keeps data: California, United States.
///
/// In en, this message translates to:
/// **'{subdivision}, {country}'**
String instanceSubdivisionOf(String subdivision, String country);
/// No description provided for @accountsTitle.
///
/// In en, this message translates to:
/// **'Accounts'**
String get accountsTitle;
/// No description provided for @accountAdd.
///
/// In en, this message translates to:
/// **'Add account'**
String get accountAdd;
/// No description provided for @accountAddSubtitle.
///
/// In en, this message translates to:
/// **'Choose the instance for the account to add.'**
String get accountAddSubtitle;
/// No description provided for @accountSignedIn.
///
/// In en, this message translates to:
/// **'Signed in'**
String get accountSignedIn;
/// No description provided for @accountRemoveTooltip.
///
/// In en, this message translates to:
/// **'Remove account'**
String get accountRemoveTooltip;
/// No description provided for @accountRemoveTitle.
///
/// In en, this message translates to:
/// **'Remove account?'**
String get accountRemoveTitle;
/// No description provided for @accountRemoveMessage.
///
/// In en, this message translates to:
/// **'Removes the account on {name} from this device, with all the device holds of it. What it synced stays on {name}: sign in there again to have it.'**
String accountRemoveMessage(String name);
/// No description provided for @accountRemoveConfirm.
///
/// In en, this message translates to:
/// **'Remove'**
String get accountRemoveConfirm;
/// No description provided for @accountSignedInOn.
///
/// In en, this message translates to:
/// **'Signed in on {instance}'**
String accountSignedInOn(String instance);
/// No description provided for @accountSwitch.
///
/// In en, this message translates to:
/// **'Switch account'**
String get accountSwitch;
/// No description provided for @accountSignOut.
///
/// In en, this message translates to:
/// **'Sign out'**
String get accountSignOut;
/// No description provided for @accountDelete.
///
/// In en, this message translates to:
/// **'Delete account'**
String get accountDelete;
/// No description provided for @accountDeleteTitle.
///
/// In en, this message translates to:
/// **'Delete your account?'**
String get accountDeleteTitle;
/// No description provided for @accountSignOutFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t sign out on this device. Try again.'**
String get accountSignOutFailed;
/// No description provided for @accountDeleteFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t delete your account: the instance wasn\'t reached. Try again.'**
String get accountDeleteFailed;
/// No description provided for @aboutSourceCode.
///
/// In en, this message translates to:
/// **'The source of what this instance runs:'**
String get aboutSourceCode;
/// No description provided for @aboutSourceUnreachable.
///
/// In en, this message translates to:
/// **'Couldn\'t reach this instance to ask where its source is.'**
String get aboutSourceUnreachable;
/// No description provided for @sessionUnreachable.
///
/// In en, this message translates to:
/// **'Couldn\'t reach the server.'**
String get sessionUnreachable;
/// No description provided for @personDataFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t open this device\'s data.'**
String get personDataFailed;
/// No description provided for @startSignedOut.
///
/// In en, this message translates to:
/// **'Signed out'**
String get startSignedOut;
/// No description provided for @startOn.
///
/// In en, this message translates to:
/// **'Start on {instance}:'**
String startOn(String instance);
/// No description provided for @startOtherInstance.
///
/// In en, this message translates to:
/// **'Use another instance'**
String get startOtherInstance;
/// On the start screen, where the instance offers neither SimpleLogin nor a password (ADR 0020, D4): nobody can make an account there.
///
/// In en, this message translates to:
/// **'{instance} offers no way to create an account.'**
String startNoWay(String instance);
/// On the start screen, where new accounts wait for the operator's approval (Halkyon Learn's ADR 0021, D19).
///
/// In en, this message translates to:
/// **'New accounts on {instance} wait until its operator approves them.'**
String startSignUpsApproved(String instance);
/// On the start screen, where the operator takes no new accounts (D19); Create an account is gone.
///
/// In en, this message translates to:
/// **'{instance} takes no new accounts: sign in with yours.'**
String startSignUpsClosed(String instance);
/// No description provided for @syncTitle.
///
/// In en, this message translates to:
/// **'Sync'**
String get syncTitle;
/// No description provided for @syncNow.
///
/// In en, this message translates to:
/// **'Sync now'**
String get syncNow;
/// No description provided for @syncStateSyncing.
///
/// In en, this message translates to:
/// **'Syncing…'**
String get syncStateSyncing;
/// No description provided for @syncStateSynced.
///
/// In en, this message translates to:
/// **'Everything synced'**
String get syncStateSynced;
/// No description provided for @syncStateFailing.
///
/// In en, this message translates to:
/// **'Sync is failing'**
String get syncStateFailing;
/// No description provided for @syncStateNotYet.
///
/// In en, this message translates to:
/// **'Not synced yet'**
String get syncStateNotYet;
/// No description provided for @syncStateMismatch.
///
/// In en, this message translates to:
/// **'This app can\'t sync with {server}'**
String syncStateMismatch(String server);
/// No description provided for @syncMismatchDetail.
///
/// In en, this message translates to:
/// **'Update the app. If it is up to date, the server needs an update. What you do meanwhile stays on this device and syncs afterwards.'**
String get syncMismatchDetail;
/// No description provided for @syncLastCompleted.
///
/// In en, this message translates to:
/// **'Last completed at {time}'**
String syncLastCompleted(String time);
/// No description provided for @syncLastFailed.
///
/// In en, this message translates to:
/// **'Last attempt failed at {time}'**
String syncLastFailed(String time);
/// No description provided for @syncNoRunYet.
///
/// In en, this message translates to:
/// **'No sync has completed since the app started'**
String get syncNoRunYet;
/// No description provided for @syncPending.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 change waits to sync} other{{count} changes wait to sync}}'**
String syncPending(int count);
/// No description provided for @syncTroubleLabel.
///
/// In en, this message translates to:
/// **'Sync needs attention'**
String get syncTroubleLabel;
/// No description provided for @syncMismatchBanner.
///
/// In en, this message translates to:
/// **'This app can\'t sync with {server} any more. Update it to keep syncing.'**
String syncMismatchBanner(String server);
/// No description provided for @syncMismatchMore.
///
/// In en, this message translates to:
/// **'More'**
String get syncMismatchMore;
/// No description provided for @startSignIn.
///
/// In en, this message translates to:
/// **'Sign in'**
String get startSignIn;
/// No description provided for @startCreateAccount.
///
/// In en, this message translates to:
/// **'Create an account'**
String get startCreateAccount;
/// On the wait screen of a new account (D31), under its handle.
///
/// In en, this message translates to:
/// **'Your account waits until the operator of {instance} approves it.'**
String waitWaiting(String instance);
/// On the wait screen of a suspended account (D31).
///
/// In en, this message translates to:
/// **'The operator of {instance} has suspended your account. Only they can lift it.'**
String waitSuspended(String instance);
/// On the wait screen once the account is approved (D31), above Sign in.
///
/// In en, this message translates to:
/// **'The operator of {instance} has approved your account. Sign in once more, as you did before.'**
String waitApproved(String instance);
/// On the wait screen once the instance knows the wait no more: refused, past its 14 days, or its pass past its 30 (D31).
///
/// In en, this message translates to:
/// **'This sign-up has ended: the operator of {instance} refused it, or it waited too long.'**
String waitEnded(String instance);
/// The button of an ended wait: the start screen.
///
/// In en, this message translates to:
/// **'Back to the start'**
String get waitBack;
/// Above the four words the operator reads out for the person to match (D33).
///
/// In en, this message translates to:
/// **'Matching code'**
String get waitMatchingCode;
/// Under the matching code (D33): the operator reads, the person confirms, so nobody posing as the operator learns the words.
///
/// In en, this message translates to:
/// **'When the operator of {instance} reads you four words, check that they are these. Never read them out yourself: Halkyon never asks anyone to.'**
String waitMatchingNote(String instance);
/// Asks the instance at once where the wait stands; it asks every 30 seconds by itself.
///
/// In en, this message translates to:
/// **'Check now'**
String get waitCheckNow;
/// On the wait screen, when asking where the wait stands failed.
///
/// In en, this message translates to:
/// **'{instance} couldn\'t be reached. It\'s asked again every 30 seconds.'**
String waitUnreachable(String instance);
/// On the wait screen of a new account: deletes it with its pass (D31).
///
/// In en, this message translates to:
/// **'Delete this account'**
String get waitDelete;
/// The question before a waiting account is deleted.
///
/// In en, this message translates to:
/// **'Delete this account?'**
String get waitDeleteTitle;
/// Under that question.
///
/// In en, this message translates to:
/// **'It goes with everything it has, and nobody can sign in to it again.'**
String get waitDeleteMessage;
/// On the wait screen, when deleting the account failed.
///
/// In en, this message translates to:
/// **'Couldn\'t delete the account. Try again.'**
String get waitDeleteFailed;
/// No description provided for @passwordAddress.
///
/// In en, this message translates to:
/// **'Email address'**
String get passwordAddress;
/// No description provided for @passwordPassword.
///
/// In en, this message translates to:
/// **'Password'**
String get passwordPassword;
/// No description provided for @passwordNewPassword.
///
/// In en, this message translates to:
/// **'New password'**
String get passwordNewPassword;
/// No description provided for @passwordCurrent.
///
/// In en, this message translates to:
/// **'Current password'**
String get passwordCurrent;
/// No description provided for @passwordRepeat.
///
/// In en, this message translates to:
/// **'New password again'**
String get passwordRepeat;
/// No description provided for @passwordsDiffer.
///
/// In en, this message translates to:
/// **'The two passwords differ.'**
String get passwordsDiffer;
/// No description provided for @passwordShow.
///
/// In en, this message translates to:
/// **'Show password'**
String get passwordShow;
/// No description provided for @passwordHide.
///
/// In en, this message translates to:
/// **'Hide password'**
String get passwordHide;
/// No description provided for @passwordContinue.
///
/// In en, this message translates to:
/// **'Continue'**
String get passwordContinue;
/// No description provided for @passwordBack.
///
/// In en, this message translates to:
/// **'Back'**
String get passwordBack;
/// No description provided for @passwordDone.
///
/// In en, this message translates to:
/// **'Done'**
String get passwordDone;
/// No description provided for @passwordSave.
///
/// In en, this message translates to:
/// **'Save as a file'**
String get passwordSave;
/// No description provided for @passwordQrCode.
///
/// In en, this message translates to:
/// **'QR code for your authenticator app'**
String get passwordQrCode;
/// No description provided for @passwordMailCode.
///
/// In en, this message translates to:
/// **'Code from the email'**
String get passwordMailCode;
/// No description provided for @passwordMailCodeSent.
///
/// In en, this message translates to:
/// **'We emailed a code to {address}. It\'s valid for 15 minutes.'**
String passwordMailCodeSent(String address);
/// No description provided for @passwordHandleIntro.
///
/// In en, this message translates to:
/// **'A code is on its way to {address}. Meanwhile, choose your handle: others find you by it. It stays private until you publish something or fill in your profile, and can change until your first publish.'**
String passwordHandleIntro(String address);
/// No description provided for @passwordResendCode.
///
/// In en, this message translates to:
/// **'Send a new code'**
String get passwordResendCode;
/// No description provided for @passwordTotpCode.
///
/// In en, this message translates to:
/// **'Code from your authenticator app'**
String get passwordTotpCode;
/// No description provided for @passwordRecoveryCode.
///
/// In en, this message translates to:
/// **'Recovery code'**
String get passwordRecoveryCode;
/// No description provided for @passwordUseRecoveryCode.
///
/// In en, this message translates to:
/// **'Use a recovery code instead'**
String get passwordUseRecoveryCode;
/// No description provided for @passwordUseTotpCode.
///
/// In en, this message translates to:
/// **'Use your authenticator app instead'**
String get passwordUseTotpCode;
/// No description provided for @passwordUnlocking.
///
/// In en, this message translates to:
/// **'Unlocking your password on this device…'**
String get passwordUnlocking;
/// No description provided for @passwordMakingKeys.
///
/// In en, this message translates to:
/// **'Making your keys on this device…'**
String get passwordMakingKeys;
/// No description provided for @passwordSignInTitle.
///
/// In en, this message translates to:
/// **'Sign in'**
String get passwordSignInTitle;
/// No description provided for @passwordSignInAction.
///
/// In en, this message translates to:
/// **'Sign in'**
String get passwordSignInAction;
/// No description provided for @passwordSignInIntro.
///
/// In en, this message translates to:
/// **'With the email address and password of your account on {instance}.'**
String passwordSignInIntro(String instance);
/// No description provided for @passwordSecondFactorIntro.
///
/// In en, this message translates to:
/// **'Enter the code your authenticator app shows for {instance}.'**
String passwordSecondFactorIntro(String instance);
/// No description provided for @passwordRecoveryCodeIntro.
///
/// In en, this message translates to:
/// **'Enter one of the recovery codes you kept. Each signs in once.'**
String get passwordRecoveryCodeIntro;
/// No description provided for @passwordForgot.
///
/// In en, this message translates to:
/// **'Forgot your password?'**
String get passwordForgot;
/// No description provided for @passwordOtherPassword.
///
/// In en, this message translates to:
/// **'Change the address or password'**
String get passwordOtherPassword;
/// No description provided for @passwordLostAuthenticator.
///
/// In en, this message translates to:
/// **'Lost your authenticator?'**
String get passwordLostAuthenticator;
/// No description provided for @passwordLostAuthenticatorTitle.
///
/// In en, this message translates to:
/// **'Lost authenticator'**
String get passwordLostAuthenticatorTitle;
/// No description provided for @passwordLostAuthenticatorIntro.
///
/// In en, this message translates to:
/// **'With a recovery code you sign in as usual. Without one, ask to reset your authenticators: it takes effect 72 hours later, and signing in with a code before then stops it.'**
String get passwordLostAuthenticatorIntro;
/// No description provided for @passwordResetWithMail.
///
/// In en, this message translates to:
/// **'Reset with a code by email'**
String get passwordResetWithMail;
/// No description provided for @passwordResetWithMailHint.
///
/// In en, this message translates to:
/// **'We email a code to {address}.'**
String passwordResetWithMailHint(String address);
/// No description provided for @passwordResetWithPhrase.
///
/// In en, this message translates to:
/// **'Reset with your recovery phrase'**
String get passwordResetWithPhrase;
/// No description provided for @passwordResetWithPhraseHint.
///
/// In en, this message translates to:
/// **'The 24 words you wrote down.'**
String get passwordResetWithPhraseHint;
/// No description provided for @passwordSignInWithoutCode.
///
/// In en, this message translates to:
/// **'Sign in without a code'**
String get passwordSignInWithoutCode;
/// No description provided for @passwordSignInWithoutCodeHint.
///
/// In en, this message translates to:
/// **'Once a reset you asked for has taken effect.'**
String get passwordSignInWithoutCodeHint;
/// No description provided for @passwordResetAction.
///
/// In en, this message translates to:
/// **'Reset'**
String get passwordResetAction;
/// No description provided for @passwordAuthenticatorResetAt.
///
/// In en, this message translates to:
/// **'Your authenticators are reset on {date}. We emailed you: if it wasn\'t you, sign in with a code before then to stop it. After that, sign in with your password alone and set up a new authenticator.'**
String passwordAuthenticatorResetAt(String date);
/// No description provided for @passwordUnfinishedIntro.
///
/// In en, this message translates to:
/// **'Your account was never finished. We emailed a code to {address}: with it, you sign in and set up an authenticator.'**
String passwordUnfinishedIntro(String address);
/// No description provided for @passwordPhraseField.
///
/// In en, this message translates to:
/// **'Recovery phrase'**
String get passwordPhraseField;
/// No description provided for @passwordPhraseFieldHint.
///
/// In en, this message translates to:
/// **'The 24 words, with spaces between them'**
String get passwordPhraseFieldHint;
/// No description provided for @passwordPhraseFieldIntro.
///
/// In en, this message translates to:
/// **'Enter your recovery phrase: it proves the account is yours.'**
String get passwordPhraseFieldIntro;
/// No description provided for @passwordAuthenticatorTitle.
///
/// In en, this message translates to:
/// **'Set up an authenticator'**
String get passwordAuthenticatorTitle;
/// No description provided for @passwordAuthenticatorIntro.
///
/// In en, this message translates to:
/// **'Every sign-in takes a code from an authenticator app, such as Aegis, 2FAS or Proton Authenticator. Scan this code with it, or type in the key.'**
String get passwordAuthenticatorIntro;
/// No description provided for @passwordAuthenticatorKey.
///
/// In en, this message translates to:
/// **'Key'**
String get passwordAuthenticatorKey;
/// No description provided for @passwordAuthenticatorOpen.
///
/// In en, this message translates to:
/// **'Open in your authenticator app'**
String get passwordAuthenticatorOpen;
/// No description provided for @passwordAuthenticatorNoApp.
///
/// In en, this message translates to:
/// **'No app on this device opens it. Scan the code or type in the key.'**
String get passwordAuthenticatorNoApp;
/// No description provided for @passwordAuthenticatorCodeIntro.
///
/// In en, this message translates to:
/// **'Then enter the code it shows.'**
String get passwordAuthenticatorCodeIntro;
/// No description provided for @passwordAuthenticatorOwnerIntro.
///
/// In en, this message translates to:
/// **'To add it, confirm it is you: your password and a code from an authenticator you added before.'**
String get passwordAuthenticatorOwnerIntro;
/// No description provided for @passwordExistingCode.
///
/// In en, this message translates to:
/// **'Code from an authenticator you added before'**
String get passwordExistingCode;
/// No description provided for @passwordRecoveryCodesTitle.
///
/// In en, this message translates to:
/// **'Recovery codes'**
String get passwordRecoveryCodesTitle;
/// No description provided for @passwordRecoveryCodesIntro.
///
/// In en, this message translates to:
/// **'Each signs in once in place of a code from your authenticator, should you lose it. Keep them where only you find them: they\'re shown only now.'**
String get passwordRecoveryCodesIntro;
/// No description provided for @passwordCodesKept.
///
/// In en, this message translates to:
/// **'I\'ve kept them'**
String get passwordCodesKept;
/// No description provided for @passwordPhraseTitle.
///
/// In en, this message translates to:
/// **'Your recovery phrase'**
String get passwordPhraseTitle;
/// No description provided for @passwordPhraseIntro.
///
/// In en, this message translates to:
/// **'These 24 words open your account\'s keys should you forget your password: without them, what\'s encrypted is lost. Write them down in order, and keep them where only you find them. They\'re shown only now.'**
String get passwordPhraseIntro;
/// No description provided for @passwordPhraseWrittenDown.
///
/// In en, this message translates to:
/// **'I\'ve written it down'**
String get passwordPhraseWrittenDown;
/// No description provided for @passwordPhraseCheckTitle.
///
/// In en, this message translates to:
/// **'Check your recovery phrase'**
String get passwordPhraseCheckTitle;
/// No description provided for @passwordPhraseCheckIntro.
///
/// In en, this message translates to:
/// **'Type the words asked for, from what you wrote down.'**
String get passwordPhraseCheckIntro;
/// No description provided for @passwordPhraseWord.
///
/// In en, this message translates to:
/// **'Word {number}'**
String passwordPhraseWord(int number);
/// No description provided for @passwordPhraseWrong.
///
/// In en, this message translates to:
/// **'These aren\'t the words. Look again at what you wrote down.'**
String get passwordPhraseWrong;
/// No description provided for @passwordPhraseShowAgain.
///
/// In en, this message translates to:
/// **'Show the phrase again'**
String get passwordPhraseShowAgain;
/// No description provided for @passwordCreateTitle.
///
/// In en, this message translates to:
/// **'Create an account'**
String get passwordCreateTitle;
/// No description provided for @passwordCreateIntro.
///
/// In en, this message translates to:
/// **'On {instance}, with your email address, a password, and an authenticator app for the code every sign-in takes.'**
String passwordCreateIntro(String instance);
/// No description provided for @passwordSetUpTitle.
///
/// In en, this message translates to:
/// **'Set up a password'**
String get passwordSetUpTitle;
/// No description provided for @passwordSetUpIntro.
///
/// In en, this message translates to:
/// **'Sign in with your email address, a password and an authenticator app, on this device and others. Everything you have stays.'**
String get passwordSetUpIntro;
/// No description provided for @passwordChooseIntro.
///
/// In en, this message translates to:
/// **'Choose a password. It never leaves this device: the instance can\'t read it, and can\'t reset it without what it protects being lost.'**
String get passwordChooseIntro;
/// No description provided for @passwordFinishResetTitle.
///
/// In en, this message translates to:
/// **'Finish the reset'**
String get passwordFinishResetTitle;
/// No description provided for @passwordFinishResetIntro.
///
/// In en, this message translates to:
/// **'72 hours after you asked to reset your account, finish it here with a new code by email.'**
String get passwordFinishResetIntro;
/// No description provided for @passwordFinishResetHavePhrase.
///
/// In en, this message translates to:
/// **'I have my recovery phrase'**
String get passwordFinishResetHavePhrase;
/// No description provided for @passwordFinishResetKeepsKeys.
///
/// In en, this message translates to:
/// **'Your account keeps its keys: nothing encrypted is lost.'**
String get passwordFinishResetKeepsKeys;
/// No description provided for @passwordFinishResetNewKeys.
///
/// In en, this message translates to:
/// **'Without your recovery phrase, your account gets new keys: what was encrypted with the old ones is lost.'**
String get passwordFinishResetNewKeys;
/// No description provided for @passwordRecoveryTitle.
///
/// In en, this message translates to:
/// **'Get back into your account'**
String get passwordRecoveryTitle;
/// No description provided for @passwordRecoveryWithPhrase.
///
/// In en, this message translates to:
/// **'I have my recovery phrase'**
String get passwordRecoveryWithPhrase;
/// No description provided for @passwordRecoveryWithPhraseHint.
///
/// In en, this message translates to:
/// **'Set a new password at once. Everything stays.'**
String get passwordRecoveryWithPhraseHint;
/// No description provided for @passwordRecoveryWithPhraseIntro.
///
/// In en, this message translates to:
/// **'Your recovery phrase opens your account\'s keys, which your new password then protects. A code from your authenticator, or a recovery code, confirms it.'**
String get passwordRecoveryWithPhraseIntro;
/// No description provided for @passwordRecoveryNoCodeHint.
///
/// In en, this message translates to:
/// **'Lost your authenticator as well? Reset your account 72 hours later with your recovery phrase: it keeps everything.'**
String get passwordRecoveryNoCodeHint;
/// No description provided for @passwordRecoveryWithoutPhrase.
///
/// In en, this message translates to:
/// **'Reset my account'**
String get passwordRecoveryWithoutPhrase;
/// No description provided for @passwordRecoveryWithoutPhraseHint.
///
/// In en, this message translates to:
/// **'Takes effect 72 hours later. Without your recovery phrase, what\'s encrypted is lost.'**
String get passwordRecoveryWithoutPhraseHint;
/// No description provided for @passwordRecoveryStartIntro.
///
/// In en, this message translates to:
/// **'We email a code to your address. Your account can then be reset 72 hours later; signing in with your password before then stops it.'**
String get passwordRecoveryStartIntro;
/// No description provided for @passwordRecoveryFinish.
///
/// In en, this message translates to:
/// **'Finish a reset'**
String get passwordRecoveryFinish;
/// No description provided for @passwordRecoveryFinishHint.
///
/// In en, this message translates to:
/// **'72 hours after you asked for it.'**
String get passwordRecoveryFinishHint;
/// No description provided for @passwordResetStarted.
///
/// In en, this message translates to:
/// **'Your account can be reset from {date}. We emailed you: if it wasn\'t you, sign in with your password before then to stop it.'**
String passwordResetStarted(String date);
/// No description provided for @passwordSectionTitle.
///
/// In en, this message translates to:
/// **'Password and authenticator'**
String get passwordSectionTitle;
/// No description provided for @passwordSectionFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t read how your account signs in.'**
String get passwordSectionFailed;
/// No description provided for @passwordSectionSetUp.
///
/// In en, this message translates to:
/// **'Set up a password'**
String get passwordSectionSetUp;
/// No description provided for @passwordSectionSetUpHint.
///
/// In en, this message translates to:
/// **'Sign in with your email address, a password and an authenticator app.'**
String get passwordSectionSetUpHint;
/// No description provided for @passwordSectionUnfinished.
///
/// In en, this message translates to:
/// **'Finish setting up: add an authenticator'**
String get passwordSectionUnfinished;
/// No description provided for @passwordSectionUnfinishedHint.
///
/// In en, this message translates to:
/// **'Your password signs in once an authenticator is set up.'**
String get passwordSectionUnfinishedHint;
/// No description provided for @passwordSectionChange.
///
/// In en, this message translates to:
/// **'Change password'**
String get passwordSectionChange;
/// No description provided for @passwordSectionKeysMissing.
///
/// In en, this message translates to:
/// **'Sign in on this device with your password to change it.'**
String get passwordSectionKeysMissing;
/// No description provided for @passwordSectionNotConfirmed.
///
/// In en, this message translates to:
/// **'Not set up yet'**
String get passwordSectionNotConfirmed;
/// No description provided for @passwordSectionRemove.
///
/// In en, this message translates to:
/// **'Remove {name}?'**
String passwordSectionRemove(String name);
/// No description provided for @passwordSectionRemoveIntro.
///
/// In en, this message translates to:
/// **'Enter your password and a code from one of your authenticators to confirm.'**
String get passwordSectionRemoveIntro;
/// No description provided for @passwordSectionRemoveAction.
///
/// In en, this message translates to:
/// **'Remove'**
String get passwordSectionRemoveAction;
/// No description provided for @passwordSectionAddAuthenticator.
///
/// In en, this message translates to:
/// **'Add an authenticator'**
String get passwordSectionAddAuthenticator;
/// No description provided for @passwordSectionRecoveryCodes.
///
/// In en, this message translates to:
/// **'New recovery codes'**
String get passwordSectionRecoveryCodes;
/// No description provided for @passwordSectionRecoveryCodesHint.
///
/// In en, this message translates to:
/// **'The old ones stop working.'**
String get passwordSectionRecoveryCodesHint;
/// No description provided for @passwordSectionNewPhrase.
///
/// In en, this message translates to:
/// **'New recovery phrase'**
String get passwordSectionNewPhrase;
/// No description provided for @passwordSectionPhraseHint.
///
/// In en, this message translates to:
/// **'Your old phrase stops working.'**
String get passwordSectionPhraseHint;
/// No description provided for @passwordChangeTitle.
///
/// In en, this message translates to:
/// **'Change password'**
String get passwordChangeTitle;
/// No description provided for @passwordChangeIntro.
///
/// In en, this message translates to:
/// **'Your other devices are signed out. Your keys stay: nothing is lost.'**
String get passwordChangeIntro;
/// No description provided for @passwordChangeAction.
///
/// In en, this message translates to:
/// **'Change password'**
String get passwordChangeAction;
/// No description provided for @passwordChanged.
///
/// In en, this message translates to:
/// **'Password changed. Your other devices are signed out.'**
String get passwordChanged;
/// No description provided for @passwordNewCodesIntro.
///
/// In en, this message translates to:
/// **'Enter your password and a code from your authenticator app. Your old recovery codes stop working.'**
String get passwordNewCodesIntro;
/// No description provided for @passwordNewPhraseIntro.
///
/// In en, this message translates to:
/// **'Your new recovery phrase. Write the 24 words down in order: once you confirm it, your old phrase opens nothing any more.'**
String get passwordNewPhraseIntro;
/// No description provided for @passwordPhraseKept.
///
/// In en, this message translates to:
/// **'New recovery phrase set. The old one no longer works.'**
String get passwordPhraseKept;
/// No description provided for @passwordWrongCredentials.
///
/// In en, this message translates to:
/// **'The address, the password or the code isn\'t right.'**
String get passwordWrongCredentials;
/// No description provided for @passwordTooManyAttempts.
///
/// In en, this message translates to:
/// **'Too many attempts. Try again in an hour.'**
String get passwordTooManyAttempts;
/// No description provided for @passwordSetupIncomplete.
///
/// In en, this message translates to:
/// **'Your account was never finished: set up an authenticator.'**
String get passwordSetupIncomplete;
/// No description provided for @passwordNotDue.
///
/// In en, this message translates to:
/// **'This takes effect on {date}.'**
String passwordNotDue(String date);
/// No description provided for @passwordNotDueYet.
///
/// In en, this message translates to:
/// **'This hasn\'t taken effect yet.'**
String get passwordNotDueYet;
/// No description provided for @passwordNoReset.
///
/// In en, this message translates to:
/// **'No reset waits for this address.'**
String get passwordNoReset;
/// No description provided for @passwordExists.
///
/// In en, this message translates to:
/// **'This address\'s account has a password already. Sign in with it, or get back in if you\'ve forgotten it.'**
String get passwordExists;
/// No description provided for @passwordAddressTaken.
///
/// In en, this message translates to:
/// **'This address belongs to another account.'**
String get passwordAddressTaken;
/// No description provided for @passwordNoPassword.
///
/// In en, this message translates to:
/// **'This account has no password.'**
String get passwordNoPassword;
/// No description provided for @passwordWrongCode.
///
/// In en, this message translates to:
/// **'This code isn\'t right. Enter the one your app shows now.'**
String get passwordWrongCode;
/// No description provided for @passwordLastAuthenticator.
///
/// In en, this message translates to:
/// **'Your last authenticator can\'t go: every sign-in needs one.'**
String get passwordLastAuthenticator;
/// No description provided for @passwordTooManyAuthenticators.
///
/// In en, this message translates to:
/// **'Your account has as many authenticators as it may. Remove one first.'**
String get passwordTooManyAuthenticators;
/// No description provided for @passwordUnknownAuthenticator.
///
/// In en, this message translates to:
/// **'This authenticator is gone.'**
String get passwordUnknownAuthenticator;
/// No description provided for @passwordInvalidSetup.
///
/// In en, this message translates to:
/// **'The instance didn\'t accept what this device made. Update the app, or try again.'**
String get passwordInvalidSetup;
/// No description provided for @passwordChallengeExpired.
///
/// In en, this message translates to:
/// **'That took too long. Try again.'**
String get passwordChallengeExpired;
/// No description provided for @passwordUnavailable.
///
/// In en, this message translates to:
/// **'This instance offers no password sign-in.'**
String get passwordUnavailable;
/// No description provided for @passwordNotAnAddress.
///
/// In en, this message translates to:
/// **'This isn\'t an email address.'**
String get passwordNotAnAddress;
/// No description provided for @passwordTooManyCodes.
///
/// In en, this message translates to:
/// **'Too many codes asked for. Try again in an hour.'**
String get passwordTooManyCodes;
/// No description provided for @passwordWrongMailCode.
///
/// In en, this message translates to:
/// **'This code isn\'t right.'**
String get passwordWrongMailCode;
/// No description provided for @passwordTooManyMailTries.
///
/// In en, this message translates to:
/// **'Too many wrong codes. Ask for a new one.'**
String get passwordTooManyMailTries;
/// No description provided for @passwordMailCodeExpired.
///
/// In en, this message translates to:
/// **'This code is no longer valid. Ask for a new one.'**
String get passwordMailCodeExpired;
/// No description provided for @passwordMailFailed.
///
/// In en, this message translates to:
/// **'The instance couldn\'t send the email. Try again later.'**
String get passwordMailFailed;
/// No description provided for @passwordOtherAddressLinked.
///
/// In en, this message translates to:
/// **'Your account has another email address.'**
String get passwordOtherAddressLinked;
/// No description provided for @passwordNotAPhrase.
///
/// In en, this message translates to:
/// **'This isn\'t a recovery phrase: check every word and their number.'**
String get passwordNotAPhrase;
/// No description provided for @passwordPhraseDoesNotFit.
///
/// In en, this message translates to:
/// **'The address or the recovery phrase isn\'t right.'**
String get passwordPhraseDoesNotFit;
/// No description provided for @passwordUnusable.
///
/// In en, this message translates to:
/// **'This password can\'t be used: it\'s empty, or holds characters that aren\'t text.'**
String get passwordUnusable;
/// No description provided for @passwordInstanceUnproven.
///
/// In en, this message translates to:
/// **'The instance couldn\'t prove it knows your password, so this device trusts nothing it says. Try again; if it happens again, the instance isn\'t the one it claims to be.'**
String get passwordInstanceUnproven;
/// No description provided for @passwordKeysMissing.
///
/// In en, this message translates to:
/// **'Your account\'s keys aren\'t on this device. Sign out and in again with your password here.'**
String get passwordKeysMissing;
/// A sign-up refused: the operator takes no new accounts (D19).
///
/// In en, this message translates to:
/// **'This instance takes no new accounts.'**
String get signUpsClosed;
/// A sign-up refused: ten new accounts wait for the operator's approval already (D19).
///
/// In en, this message translates to:
/// **'As many new accounts wait for approval as may. Try again later.'**
String get signUpsTooManyWaiting;
/// No description provided for @passwordUnsafeCosts.
///
/// In en, this message translates to:
/// **'The instance asked for your password to be checked in a way no account uses, so nothing was sent. If it happens again, the instance isn\'t the one it claims to be.'**
String get passwordUnsafeCosts;
/// No description provided for @passwordFailed.
///
/// In en, this message translates to:
/// **'Couldn\'t reach the instance. Check the connection and try again.'**
String get passwordFailed;
/// No description provided for @passwordMinLength.
///
/// In en, this message translates to:
/// **'At least {count} characters'**
String passwordMinLength(int count);
/// No description provided for @passwordTooShort.
///
/// In en, this message translates to:
/// **'A new password needs at least {count} characters: should the instance\'s database ever leak, a short one is guessed first.'**
String passwordTooShort(int count);
/// No description provided for @passwordCodesWait.
///
/// In en, this message translates to:
/// **'Too many wrong codes in a row: no code is taken until {date}. If they weren\'t yours, someone knows your password: change it then.'**
String passwordCodesWait(String date);
/// No description provided for @passwordDeleteIntro.
///
/// In en, this message translates to:
/// **'Your account goes with everything in it, in every service of this instance. To confirm, type your password and a code from your authenticator app.'**
String get passwordDeleteIntro;
/// No description provided for @passwordSessionEnded.
///
/// In en, this message translates to:
/// **'Too many wrong codes in a row from this device: it was signed out. Sign in again with your password and a code.'**
String get passwordSessionEnded;
/// No description provided for @passwordAddressUnknown.
///
/// In en, this message translates to:
/// **'Enter your account\'s email address: the code goes there.'**
String get passwordAddressUnknown;
/// No description provided for @passwordDeleteIntroByMail.
///
/// In en, this message translates to:
/// **'Your account goes with everything in it, in every service of this instance. None of its authenticators works now, so a code by mail confirms it: type your password, then the code we email to your address.'**
String get passwordDeleteIntroByMail;
/// No description provided for @passwordDeleteSendCode.
///
/// In en, this message translates to:
/// **'Email me a code'**
String get passwordDeleteSendCode;
/// No description provided for @passwordAuthenticatorPasswordIntro.
///
/// In en, this message translates to:
/// **'To add it, confirm it is you with your password.'**
String get passwordAuthenticatorPasswordIntro;
/// No description provided for @passwordWarningTitle.
///
/// In en, this message translates to:
/// **'Someone tried your password'**
String get passwordWarningTitle;
/// No description provided for @passwordWarningBody.
///
/// In en, this message translates to:
/// **'On {date}, a device signed in to your account sent a wrong password or code ten times in a row, and was signed out. If that wasn\'t you, someone else may have that device or its session: change your password.'**
String passwordWarningBody(String date);
/// No description provided for @passwordWarningDismiss.
///
/// In en, this message translates to:
/// **'Dismiss'**
String get passwordWarningDismiss;
/// No description provided for @passwordWarningLater.
///
/// In en, this message translates to:
/// **'Remind me later'**
String get passwordWarningLater;
/// No description provided for @passwordResetsTitle.
///
/// In en, this message translates to:
/// **'A reset is waiting'**
String get passwordResetsTitle;
/// No description provided for @passwordResetsAuthenticator.
///
/// In en, this message translates to:
/// **'Your authenticators will be removed on {date}: someone asked with your password. If that wasn\'t you, call it off and change your password.'**
String passwordResetsAuthenticator(String date);
/// No description provided for @passwordResetsAccount.
///
/// In en, this message translates to:
/// **'Your account will get a new password and new keys on {date}, and what is encrypted under the old ones will be lost: someone asked with a code by mail. If that wasn\'t you, call it off.'**
String passwordResetsAccount(String date);
/// No description provided for @passwordResetsCallOff.
///
/// In en, this message translates to:
/// **'Call it off'**
String get passwordResetsCallOff;
/// No description provided for @passwordCallOffTitle.
///
/// In en, this message translates to:
/// **'Call off the reset'**
String get passwordCallOffTitle;
/// No description provided for @passwordCallOffIntro.
///
/// In en, this message translates to:
/// **'Your password and a code call off every reset waiting.'**
String get passwordCallOffIntro;
/// No description provided for @passwordSignedInBefore.
///
/// In en, this message translates to:
/// **'Only a device signed in since then can dismiss this warning: sign in again on this one, or change your password.'**
String get passwordSignedInBefore;
/// No description provided for @simpleLoginContinue.
///
/// In en, this message translates to:
/// **'Continue with SimpleLogin'**
String get simpleLoginContinue;
/// No description provided for @simpleLoginNote.
///
/// In en, this message translates to:
/// **'SimpleLogin is Proton\'s sign-in, and a Proton account works there too. It learns that you use {instance}, which keeps only your SimpleLogin ID: your name suggests a handle once, and nothing else is kept.'**
String simpleLoginNote(String instance);
/// No description provided for @simpleLoginTitle.
///
/// In en, this message translates to:
/// **'Sign in with SimpleLogin'**
String get simpleLoginTitle;
/// No description provided for @simpleLoginAddTitle.
///
/// In en, this message translates to:
/// **'Add SimpleLogin'**
String get simpleLoginAddTitle;
/// No description provided for @simpleLoginInBrowser.
///
/// In en, this message translates to:
/// **'Continue in your browser.'**
String get simpleLoginInBrowser;
/// No description provided for @simpleLoginNewcomerTitle.
///
/// In en, this message translates to:
/// **'New here?'**
String get simpleLoginNewcomerTitle;
/// No description provided for @simpleLoginNewcomerIntro.
///
/// In en, this message translates to:
/// **'Your SimpleLogin account has no account on {instance} yet.'**
String simpleLoginNewcomerIntro(String instance);
/// No description provided for @simpleLoginCreateHint.
///
/// In en, this message translates to:
/// **'Choose a handle and a password; you get a recovery phrase.'**
String get simpleLoginCreateHint;
/// No description provided for @simpleLoginHaveOne.
///
/// In en, this message translates to:
/// **'I already have one'**
String get simpleLoginHaveOne;
/// No description provided for @simpleLoginHaveOneHint.
///
/// In en, this message translates to:
/// **'Link it again with your handle and your recovery phrase.'**
String get simpleLoginHaveOneHint;
/// No description provided for @handleIntro.
///
/// In en, this message translates to:
/// **'Others find you by your handle. It stays private until you publish something or fill in your profile, and can change until your first publish.'**
String get handleIntro;
/// No description provided for @handleLabel.
///
/// In en, this message translates to:
/// **'Handle'**
String get handleLabel;
/// No description provided for @handleFree.
///
/// In en, this message translates to:
/// **'@{handle} is free'**
String handleFree(String handle);
/// No description provided for @handleChecking.
///
/// In en, this message translates to:
/// **'Checking…'**
String get handleChecking;
/// No description provided for @simpleLoginPasswordIntro.
///
/// In en, this message translates to:
/// **'Choose a password: you type it when you sign in on another device. It never leaves this device: the instance can\'t read it, and can\'t reset it without what it protects being lost.'**
String get simpleLoginPasswordIntro;
/// No description provided for @simpleLoginCreate.
///
/// In en, this message translates to:
/// **'Create the account'**
String get simpleLoginCreate;
/// No description provided for @simpleLoginUnlockTitle.
///
/// In en, this message translates to:
/// **'Your password'**
String get simpleLoginUnlockTitle;
/// No description provided for @simpleLoginUnlockIntroAs.
///
/// In en, this message translates to:
/// **'Signed in with SimpleLogin as @{handle}. Your password opens your keys on this device.'**
String simpleLoginUnlockIntroAs(String handle);
/// No description provided for @simpleLoginUnlockIntro.
///
/// In en, this message translates to:
/// **'Signed in with SimpleLogin. Your password opens your keys on this device.'**
String get simpleLoginUnlockIntro;
/// No description provided for @simpleLoginOpen.
///
/// In en, this message translates to:
/// **'Open'**
String get simpleLoginOpen;
/// No description provided for @simpleLoginMendTitle.
///
/// In en, this message translates to:
/// **'Link your account'**
String get simpleLoginMendTitle;
/// No description provided for @simpleLoginMendIntro.
///
/// In en, this message translates to:
/// **'Your SimpleLogin account isn\'t the one your account knows any more. Link them again with your handle and your recovery phrase: your other devices are then signed out.'**
String get simpleLoginMendIntro;
/// No description provided for @simpleLoginMend.
///
/// In en, this message translates to:
/// **'Link'**
String get simpleLoginMend;
/// No description provided for @simpleLoginWrongPassword.
///
/// In en, this message translates to:
/// **'The password isn\'t right.'**
String get simpleLoginWrongPassword;
/// No description provided for @simpleLoginMendDoesNotFit.
///
/// In en, this message translates to:
/// **'The handle or the recovery phrase isn\'t right.'**
String get simpleLoginMendDoesNotFit;
/// No description provided for @simpleLoginForgotTitle.
///
/// In en, this message translates to:
/// **'A new password'**
String get simpleLoginForgotTitle;
/// No description provided for @simpleLoginForgotIntro.
///
/// In en, this message translates to:
/// **'Your recovery phrase opens your keys, which your new password then protects. Everything stays; your other devices are signed out.'**
String get simpleLoginForgotIntro;
/// No description provided for @simpleLoginForgotDoesNotFit.
///
/// In en, this message translates to:
/// **'The recovery phrase isn\'t right.'**
String get simpleLoginForgotDoesNotFit;
/// No description provided for @simpleLoginResetWaiting.
///
/// In en, this message translates to:
/// **'New keys were asked for: from {date}, a SimpleLogin sign-in can set them up. Your password opening your keys calls it off.'**
String simpleLoginResetWaiting(String date);
/// No description provided for @simpleLoginPhraseLost.
///
/// In en, this message translates to:
/// **'Lost your recovery phrase too?'**
String get simpleLoginPhraseLost;
/// No description provided for @simpleLoginResetTitle.
///
/// In en, this message translates to:
/// **'New keys'**
String get simpleLoginResetTitle;
/// No description provided for @simpleLoginResetIntro.
///
/// In en, this message translates to:
/// **'Without your password or your recovery phrase, nobody can open your keys, not even {instance}. New ones can be set up 72 hours from now, when you sign in with SimpleLogin again. Your handle, your profile and what you published stay; what was encrypted under your old keys is lost, unless you finish on a device still signed in, which keeps them.'**
String simpleLoginResetIntro(String instance);
/// No description provided for @simpleLoginResetIntroDevices.
///
/// In en, this message translates to:
/// **'Meanwhile your signed-in devices show the reset, and your password calls it off there, should someone else have asked for it.'**
String get simpleLoginResetIntroDevices;
/// No description provided for @simpleLoginResetAsk.
///
/// In en, this message translates to:
/// **'Ask for new keys'**
String get simpleLoginResetAsk;
/// No description provided for @simpleLoginResetAskedTitle.
///
/// In en, this message translates to:
/// **'New keys asked for'**
String get simpleLoginResetAskedTitle;
/// No description provided for @simpleLoginResetAskedIntro.
///
/// In en, this message translates to:
/// **'From {date}, sign in with SimpleLogin again to set them up. Should you find your password or your recovery phrase before then, opening your keys with it calls the reset off.'**
String simpleLoginResetAskedIntro(String date);
/// No description provided for @simpleLoginResetDueTitle.
///
/// In en, this message translates to:
/// **'Your new keys'**
String get simpleLoginResetDueTitle;
/// No description provided for @simpleLoginResetDueIntro.
///
/// In en, this message translates to:
/// **'The new keys you asked for can be set up now. Or open your old keys with your password, which calls the reset off.'**
String get simpleLoginResetDueIntro;
/// No description provided for @simpleLoginResetNewKeys.
///
/// In en, this message translates to:
/// **'Set up new keys'**
String get simpleLoginResetNewKeys;
/// No description provided for @simpleLoginResetNewKeysHint.
///
/// In en, this message translates to:
/// **'A new password and recovery phrase. What was encrypted under your old keys is lost, unless you finish on a device still signed in.'**
String get simpleLoginResetNewKeysHint;
/// No description provided for @simpleLoginResetHavePassword.
///
/// In en, this message translates to:
/// **'I have my password'**
String get simpleLoginResetHavePassword;
/// No description provided for @simpleLoginResetHavePasswordHint.
///
/// In en, this message translates to:
/// **'Your keys open, and stay.'**
String get simpleLoginResetHavePasswordHint;
/// No description provided for @simpleLoginResetKeepIntro.
///
/// In en, this message translates to:
/// **'Choose a new password: your keys stay, under it and a new recovery phrase, so nothing is lost. Your other devices are signed out.'**
String get simpleLoginResetKeepIntro;
/// No description provided for @simpleLoginResetFinish.
///
/// In en, this message translates to:
/// **'Set up the keys'**
String get simpleLoginResetFinish;
/// No description provided for @simpleLoginProofKeyTitle.
///
/// In en, this message translates to:
/// **'Your password and a code'**
String get simpleLoginProofKeyTitle;
/// No description provided for @simpleLoginProofKeyIntroAs.
///
/// In en, this message translates to:
/// **'Signed in with SimpleLogin as @{handle}. Your account also signs in with a password: type it and a code from your authenticator once, and your password opens your keys after SimpleLogin from then on.'**
String simpleLoginProofKeyIntroAs(String handle);
/// No description provided for @simpleLoginProofKeyIntro.
///
/// In en, this message translates to:
/// **'Your account also signs in with a password: type it and a code from your authenticator once, and your password opens your keys after SimpleLogin from then on.'**
String get simpleLoginProofKeyIntro;
/// No description provided for @simpleLoginResetBanner.
///
/// In en, this message translates to:
/// **'New keys were asked for with your SimpleLogin account: from {date}, whoever has it can set them up. Unless that was you, call it off with your password.'**
String simpleLoginResetBanner(String date);
/// No description provided for @simpleLoginResetBannerDue.
///
/// In en, this message translates to:
/// **'New keys were asked for with your SimpleLogin account, and whoever has it can set them up now. Unless that was you, call it off with your password.'**
String get simpleLoginResetBannerDue;
/// No description provided for @simpleLoginResetBannerDueHere.
///
/// In en, this message translates to:
/// **'New keys were asked for with your SimpleLogin account and can be set up now. If that was you, finish here: your keys stay. If not, call it off with your password.'**
String get simpleLoginResetBannerDueHere;
/// No description provided for @simpleLoginResetFinishHere.
///
/// In en, this message translates to:
/// **'Finish here'**
String get simpleLoginResetFinishHere;
/// No description provided for @simpleLoginCallOffIntro.
///
/// In en, this message translates to:
/// **'Your password calls off the reset of your keys.'**
String get simpleLoginCallOffIntro;
/// No description provided for @simpleLoginResetCalledOff.
///
/// In en, this message translates to:
/// **'Reset called off.'**
String get simpleLoginResetCalledOff;
/// No description provided for @simpleLoginResetFinished.
///
/// In en, this message translates to:
/// **'New password and recovery phrase set.'**
String get simpleLoginResetFinished;
/// No description provided for @simpleLoginUnavailable.
///
/// In en, this message translates to:
/// **'This instance doesn\'t offer sign-in with SimpleLogin.'**
String get simpleLoginUnavailable;
/// No description provided for @simpleLoginDenied.
///
/// In en, this message translates to:
/// **'SimpleLogin\'s sign-in was declined, so nothing was shared.'**
String get simpleLoginDenied;
/// No description provided for @simpleLoginNoBrowser.
///
/// In en, this message translates to:
/// **'There\'s no browser to open SimpleLogin\'s page in.'**
String get simpleLoginNoBrowser;
/// No description provided for @simpleLoginStartAgain.
///
/// In en, this message translates to:
/// **'The sign-in took too long, or another one took its place. Begin it again.'**
String get simpleLoginStartAgain;
/// No description provided for @simpleLoginRejected.
///
/// In en, this message translates to:
/// **'SimpleLogin didn\'t confirm the sign-in. Begin it again.'**
String get simpleLoginRejected;
/// No description provided for @simpleLoginProviderUnavailable.
///
/// In en, this message translates to:
/// **'The instance can\'t reach SimpleLogin right now. Try again later.'**
String get simpleLoginProviderUnavailable;
/// No description provided for @simpleLoginTakenByAnotherPerson.
///
/// In en, this message translates to:
/// **'This SimpleLogin account belongs to another account here.'**
String get simpleLoginTakenByAnotherPerson;
/// No description provided for @simpleLoginOtherIdentityLinked.
///
/// In en, this message translates to:
/// **'Your account has another SimpleLogin account already.'**
String get simpleLoginOtherIdentityLinked;
/// No description provided for @simpleLoginTooManyAttempts.
///
/// In en, this message translates to:
/// **'Too many sign-ins began from this network. Try again in an hour.'**
String get simpleLoginTooManyAttempts;
/// No description provided for @handleInvalid.
///
/// In en, this message translates to:
/// **'A handle is 1 to 30 letters (a to z), digits or underscores.'**
String get handleInvalid;
/// No description provided for @handleReserved.
///
/// In en, this message translates to:
/// **'This handle is kept for the instance.'**
String get handleReserved;
/// No description provided for @handleTaken.
///
/// In en, this message translates to:
/// **'Someone else has this handle.'**
String get handleTaken;
/// No description provided for @handleTooManyChecks.
///
/// In en, this message translates to:
/// **'Too many handles were tried. Try again in an hour.'**
String get handleTooManyChecks;
/// No description provided for @simpleLoginSectionTitle.
///
/// In en, this message translates to:
/// **'SimpleLogin'**
String get simpleLoginSectionTitle;
/// No description provided for @simpleLoginSignsYouIn.
///
/// In en, this message translates to:
/// **'Signs you in'**
String get simpleLoginSignsYouIn;
/// No description provided for @simpleLoginAddHint.
///
/// In en, this message translates to:
/// **'Sign in with SimpleLogin, or with your Proton account.'**
String get simpleLoginAddHint;
/// No description provided for @simpleLoginAdded.
///
/// In en, this message translates to:
/// **'SimpleLogin added.'**
String get simpleLoginAdded;
}
class _HalkyonAppLocalizationsDelegate
extends LocalizationsDelegate<HalkyonAppLocalizations> {
const _HalkyonAppLocalizationsDelegate();
@override
Future<HalkyonAppLocalizations> load(Locale locale) {
return SynchronousFuture<HalkyonAppLocalizations>(
lookupHalkyonAppLocalizations(locale),
);
}
@override
bool isSupported(Locale locale) =>
<String>['de', 'en'].contains(locale.languageCode);
@override
bool shouldReload(_HalkyonAppLocalizationsDelegate old) => false;
}
HalkyonAppLocalizations lookupHalkyonAppLocalizations(Locale locale) {
// Lookup logic when language+country codes are specified.
switch (locale.languageCode) {
case 'en':
{
switch (locale.countryCode) {
case 'GB':
return HalkyonAppLocalizationsEnGb();
case 'US':
return HalkyonAppLocalizationsEnUs();
}
break;
}
}
// Lookup logic when only language code is specified.
switch (locale.languageCode) {
case 'de':
return HalkyonAppLocalizationsDe();
case 'en':
return HalkyonAppLocalizationsEn();
}
throw FlutterError(
'HalkyonAppLocalizations.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.',
);
}