halkyon/packages/halkyon_app/lib/l10n/halkyon_app_localizations.dart
Tizian 「ティツィアーン」 cc87120bc8
feat(app): the operator's overview of screens, grants to several people at once with one budget each, assistants by provider
Halkyon Learn's ADR 0021, D57 to D63, on halkyon_base's budgets and
effort:

- The operator's screen is an overview (Waiting, Operators, Accounts,
  Assistants, each with its count) whose rows open screens of their own,
  read 50 at a time as they scroll (OperatorListCubit, OperatorPage), so
  hundreds of accounts push nothing else down (D62).
- A handle is picked among the accounts there are (AccountSuggestionField):
  appointing an operator and granting take no other (D61).
- AssistantGrantsScreen replaces AssistantGrantsCard: the assistants set
  up by provider, with their efforts and prices; the people granted, found
  by their handle's start; one sheet granting several assistants, a
  provider's at once, to several people, each with one budget in money and
  tokens a day and a month, or changing one person's (D58, D59).
- Assistants are grouped by provider wherever they are listed, each under
  its name with a dot in its colour (ProviderLabel, D60).
- AssistantsCard shows what is left of the person's budget for all their
  assistants together; the months of the figures run oldest first (D57).
- AssistantChoice says the efforts a question may ask at and the ceiling
  on output each asks for (D63); a person's own key gets none and keeps
  4,096 tokens.

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

2813 lines
92 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:
/// **'Too many new accounts already wait for approval. 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;
/// The card and screen for whoever operates the instance (ADR 0021, D34).
///
/// In en, this message translates to:
/// **'This instance'**
String get operatorTitle;
/// The tile leading to the operator's screen.
///
/// In en, this message translates to:
/// **'Accounts and operators'**
String get operatorAccounts;
/// How many accounts wait for the operator; also the badge's label.
///
/// In en, this message translates to:
/// **'{count, plural, =0{Nobody waits for approval} =1{1 account waits for approval} other{{count} accounts wait for approval}}'**
String operatorWaitingCount(int count);
/// The card of accounts that wait for approval, new or suspended.
///
/// In en, this message translates to:
/// **'Waiting'**
String get operatorWaitingTitle;
/// How many operate the instance, in the overview's row.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 operator} other{{count} operators}}'**
String operatorOperatorsCount(int count);
/// The overview's row leading to every account, and that screen's title.
///
/// In en, this message translates to:
/// **'Accounts'**
String get operatorAccountsTitle;
/// How many accounts the instance has.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 account} other{{count} accounts}}'**
String operatorAccountsCount(int count);
/// The waiting card, empty.
///
/// In en, this message translates to:
/// **'Nobody waits.'**
String get operatorNobodyWaits;
/// An account without a handle, where its handle would be.
///
/// In en, this message translates to:
/// **'No handle yet'**
String get operatorNoHandle;
/// A new account that waits, and since when.
///
/// In en, this message translates to:
/// **'New, waiting since {date}'**
String operatorNewSince(String date);
/// A suspended account, and since when.
///
/// In en, this message translates to:
/// **'Suspended since {date}'**
String operatorSuspendedSince(String date);
/// Before approving: the words prove it is their account that waits (D33).
///
/// In en, this message translates to:
/// **'Read them these four words, and approve only once they confirm these are on their screen.'**
String get operatorApproveNote;
/// Approves a waiting account.
///
/// In en, this message translates to:
/// **'Approve'**
String get operatorApprove;
/// Refuses a new account: deleted.
///
/// In en, this message translates to:
/// **'Refuse'**
String get operatorRefuse;
/// The question before refusing.
///
/// In en, this message translates to:
/// **'Refuse this account?'**
String get operatorRefuseTitle;
/// What refusing does.
///
/// In en, this message translates to:
/// **'It is deleted with everything it has. They can sign up again.'**
String get operatorRefuseMessage;
/// The card of who operates the instance.
///
/// In en, this message translates to:
/// **'Operators'**
String get operatorOperatorsTitle;
/// Takes back the operator's role.
///
/// In en, this message translates to:
/// **'Take back'**
String get operatorTakeBack;
/// The question before taking the role back.
///
/// In en, this message translates to:
/// **'Take back the role?'**
String get operatorTakeBackTitle;
/// What taking the role back does.
///
/// In en, this message translates to:
/// **'They keep their account, but no longer approve, refuse or suspend accounts here.'**
String get operatorTakeBackMessage;
/// Names an account an operator, by its handle.
///
/// In en, this message translates to:
/// **'Name an operator'**
String get operatorAppoint;
/// What an operator may do.
///
/// In en, this message translates to:
/// **'They approve, refuse and suspend accounts here, and name operators, as you do.'**
String get operatorAppointMessage;
/// Confirms naming an operator.
///
/// In en, this message translates to:
/// **'Name'**
String get operatorAppointConfirm;
/// The field for an account's handle.
///
/// In en, this message translates to:
/// **'Handle'**
String get operatorHandle;
/// Below a field suggesting handles as they are typed.
///
/// In en, this message translates to:
/// **'Only handles there are here are suggested.'**
String get operatorHandleSuggested;
/// A search that found nothing.
///
/// In en, this message translates to:
/// **'No account\'s handle starts like this.'**
String get operatorFoundNone;
/// When an account was made.
///
/// In en, this message translates to:
/// **'Since {date}'**
String operatorMadeOn(String date);
/// A tag: the account operates the instance.
///
/// In en, this message translates to:
/// **'Operator'**
String get operatorIsOperator;
/// A tag: the account waits for approval.
///
/// In en, this message translates to:
/// **'Waiting'**
String get operatorIsWaiting;
/// A tag: the account is suspended.
///
/// In en, this message translates to:
/// **'Suspended'**
String get operatorIsSuspended;
/// Suspends an account.
///
/// In en, this message translates to:
/// **'Suspend'**
String get operatorSuspend;
/// The question before suspending.
///
/// In en, this message translates to:
/// **'Suspend this account?'**
String get operatorSuspendTitle;
/// What suspending does.
///
/// In en, this message translates to:
/// **'They are signed out everywhere and can\'t sign in until you approve them again. Nothing they have is deleted.'**
String get operatorSuspendMessage;
/// Names a found account an operator.
///
/// In en, this message translates to:
/// **'Name as operator'**
String get operatorMakeOperator;
/// Refused: no such account, or it doesn't wait.
///
/// In en, this message translates to:
/// **'That account isn\'t there any more, or doesn\'t wait.'**
String get operatorNotFound;
/// Refused: suspending an operator.
///
/// In en, this message translates to:
/// **'An operator can\'t be suspended. Take back their role first.'**
String get operatorIsOperatorProblem;
/// Refused: taking back the last operator's role.
///
/// In en, this message translates to:
/// **'The instance needs at least one operator.'**
String get operatorLastOperator;
/// Refused: the person doesn't operate the instance.
///
/// In en, this message translates to:
/// **'Only the instance\'s operators can do this.'**
String get operatorNotAllowed;
/// Any other failure.
///
/// In en, this message translates to:
/// **'That didn\'t work. Try again.'**
String get operatorFailed;
/// The assistant asked for is no longer in deploy/assistants.env.
///
/// In en, this message translates to:
/// **'That assistant isn\'t set up here any more.'**
String get operatorAssistantNotSet;
/// A limit below 0 was refused.
///
/// In en, this message translates to:
/// **'A limit can\'t be below zero.'**
String get operatorInvalidLimit;
/// The operator's card of the assistants granted (Halkyon Learn's ADR 0021).
///
/// In en, this message translates to:
/// **'Assistants'**
String get assistantGrantsTitle;
/// No assistant is granted to anyone.
///
/// In en, this message translates to:
/// **'Nobody has an assistant yet.'**
String get assistantGrantsNone;
/// How many assistants are set up, in the overview's row.
///
/// In en, this message translates to:
/// **'{count, plural, =0{None set up} =1{1 assistant} other{{count} assistants}}'**
String assistantSetCount(int count);
/// How many people have an assistant, after how many are set up.
///
/// In en, this message translates to:
/// **'{count, plural, =0{nobody granted} =1{1 person} other{{count} people}}'**
String assistantPeopleCount(int count);
/// The card of the assistants set up in deploy/assistants.env.
///
/// In en, this message translates to:
/// **'Set up here'**
String get assistantSetUpTitle;
/// The card, and the sheet section, of the people granted assistants.
///
/// In en, this message translates to:
/// **'People'**
String get assistantPeopleTitle;
/// No person granted one matches the start of a handle typed.
///
/// In en, this message translates to:
/// **'Nobody with an assistant has a handle starting like this.'**
String get assistantGranteesFoundNone;
/// An assistant set up without prices, which a budget counts in tokens alone.
///
/// In en, this message translates to:
/// **'No prices: counts its tokens only'**
String get assistantUnpriced;
/// How much a model thinks before it answers, as a word in a sentence.
///
/// In en, this message translates to:
/// **'{effort, select, low{low} medium{medium} high{high} xhigh{extra high} max{max} other{{effort}}}'**
String assistantEffort(String effort);
/// How much a model thinks before it answers, as a name standing alone, as in a menu.
///
/// In en, this message translates to:
/// **'{effort, select, low{Low} medium{Medium} high{High} xhigh{Extra high} max{Max} other{{effort}}}'**
String assistantEffortName(String effort);
/// An assistant's effort unless asked otherwise, and the highest a question may ask.
///
/// In en, this message translates to:
/// **'Effort {effort}, up to {max}'**
String assistantEffortSetUp(String effort, String max);
/// An assistant's effort, the only one it takes.
///
/// In en, this message translates to:
/// **'Effort {effort}'**
String assistantEffortFixed(String effort);
/// An assistant granted that is no longer set up.
///
/// In en, this message translates to:
/// **'{name} (no longer set up)'**
String assistantNameUnset(String name);
/// How many of a person's assistants they haven't agreed to yet.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 not agreed to yet} other{{count} not agreed to yet}}'**
String assistantNotAgreedCount(int count);
/// Opens the sheet granting an assistant to an account.
///
/// In en, this message translates to:
/// **'Grant assistants'**
String get assistantGrant;
/// The grant sheet's button.
///
/// In en, this message translates to:
/// **'Grant'**
String get assistantGrantSave;
/// The sheet changing a person's assistants and budget, and a person's menu item.
///
/// In en, this message translates to:
/// **'Change assistants'**
String get assistantGrantChange;
/// Under the limit fields: the instance counts by UTC days and months (D42).
///
/// In en, this message translates to:
/// **'Empty for none. Days and months are UTC\'s.'**
String get assistantGrantLimitHelper;
/// The sheet's section of a person's budget.
///
/// In en, this message translates to:
/// **'Budget, for all of them together'**
String get assistantGrantBudget;
/// A budget field.
///
/// In en, this message translates to:
/// **'Money a day'**
String get assistantGrantMoneyDaily;
/// A budget field.
///
/// In en, this message translates to:
/// **'Money a month'**
String get assistantGrantMoneyMonthly;
/// A budget field.
///
/// In en, this message translates to:
/// **'Tokens a day'**
String get assistantGrantTokensDaily;
/// A budget field.
///
/// In en, this message translates to:
/// **'Tokens a month'**
String get assistantGrantTokensMonthly;
/// Below the budget fields.
///
/// In en, this message translates to:
/// **'Money counts the assistants with prices, tokens count every one. Whichever runs out first stops them.'**
String get assistantGrantMoneyNote;
/// Before the people whose budget a grant replaces, each with theirs.
///
/// In en, this message translates to:
/// **'{count, plural, =1{Granting replaces the budget this person has:} other{Granting replaces the budgets these people have:}}'**
String assistantGrantReplaces(int count);
/// Changing a person's assistants drops those no longer set up.
///
/// In en, this message translates to:
/// **'Saving takes back what is no longer set up: {names}.'**
String assistantGrantUnsetDropped(String names);
/// A limit typed that is no amount or number of tokens.
///
/// In en, this message translates to:
/// **'Not a number this takes'**
String get assistantGrantLimitInvalid;
/// After a limit in tokens, for an assistant without prices.
///
/// In en, this message translates to:
/// **'tokens'**
String get assistantGrantTokens;
/// In the grant sheet: consent (D40) and what the operator sees (D3).
///
/// In en, this message translates to:
/// **'They agree once to what goes where before they ask one. Assistants they have already stay. You see how much they use, never what they ask.'**
String get assistantGrantNote;
/// A daily limit.
///
/// In en, this message translates to:
/// **'{amount} a day'**
String assistantPerDay(String amount);
/// A monthly limit.
///
/// In en, this message translates to:
/// **'{amount} a month'**
String assistantPerMonth(String amount);
/// A grant without limits.
///
/// In en, this message translates to:
/// **'No limits'**
String get assistantNoLimits;
/// A grant's menu item.
///
/// In en, this message translates to:
/// **'Take back'**
String get assistantRevoke;
/// Asks before taking every assistant back from a person.
///
/// In en, this message translates to:
/// **'Take back every assistant?'**
String get assistantRevokeAllTitle;
/// Under the question taking a grant back.
///
/// In en, this message translates to:
/// **'They can no longer ask any of them, and their budget goes. What they used stays counted.'**
String get assistantRevokeMessage;
/// Opens everyone's figures (D3).
///
/// In en, this message translates to:
/// **'Use by month'**
String get assistantUseByMonth;
/// The title of the figures' screen and sheet.
///
/// In en, this message translates to:
/// **'Use of assistants'**
String get assistantUseTitle;
/// A month without use.
///
/// In en, this message translates to:
/// **'Nothing used in this month.'**
String get assistantUseNone;
/// Under the figures: what is counted and for how long (D41, D42).
///
/// In en, this message translates to:
/// **'Counted per UTC day, kept for this month and the two before. Never what was asked.'**
String get assistantUseKept;
/// How many requests were counted.
///
/// In en, this message translates to:
/// **'{count, plural, =1{1 request} other{{count} requests}}'**
String assistantRequests(int count);
/// How many tokens were counted, the number formatted.
///
/// In en, this message translates to:
/// **'{amount} tokens'**
String assistantTokens(String amount);
/// Settings' card of the assistants a person may ask (Halkyon Learn's ADR 0021, point 9).
///
/// In en, this message translates to:
/// **'Assistants'**
String get assistantsTitle;
/// Which model answers, and the host that receives what is asked.
///
/// In en, this message translates to:
/// **'{model} at {host}'**
String assistantModelAt(String model, String host);
/// What is left of a day's limit.
///
/// In en, this message translates to:
/// **'{left} of {limit} left today'**
String assistantLeftToday(String left, String limit);
/// What is left of a month's limit.
///
/// In en, this message translates to:
/// **'{left} of {limit} left this month'**
String assistantLeftThisMonth(String left, String limit);
/// The person's budget for all their assistants.
///
/// In en, this message translates to:
/// **'Your budget, for all of them'**
String get assistantYourBudget;
/// Opens the consent sheet of an assistant not agreed to yet.
///
/// In en, this message translates to:
/// **'Read and agree'**
String get assistantAgree;
/// Opens the person's own figures.
///
/// In en, this message translates to:
/// **'Your use'**
String get assistantYourUse;
/// Opens the instance's privacy page (D39).
///
/// In en, this message translates to:
/// **'What goes where on {instance}'**
String assistantPrivacyPage(String instance);
/// Above a person's own assistants (point 10).
///
/// In en, this message translates to:
/// **'With your own key'**
String get assistantOwnTitle;
/// Opens the sheet adding an assistant with a personal key.
///
/// In en, this message translates to:
/// **'Add an assistant with your own key'**
String get assistantOwnAdd;
/// What a personal key means (D5, D6).
///
/// In en, this message translates to:
/// **'The app asks your provider directly: this instance sees neither your key nor your questions, and counts nothing. The key is kept in your settings, encrypted on your devices.'**
String get assistantOwnNote;
/// The personal key sheet's title.
///
/// In en, this message translates to:
/// **'Your own key'**
String get assistantOwnEdit;
/// The name the person gives their assistant.
///
/// In en, this message translates to:
/// **'Name'**
String get assistantOwnName;
/// Above the choice of protocol.
///
/// In en, this message translates to:
/// **'API'**
String get assistantOwnProtocol;
/// The provider's address field.
///
/// In en, this message translates to:
/// **'Address'**
String get assistantOwnBaseUrl;
/// Under the address field: which services take which address.
///
/// In en, this message translates to:
/// **'Empty for the provider\'s own. Mistral, OpenRouter or a model of your own: its address with /v1.'**
String get assistantOwnBaseUrlHelper;
/// An address the app refuses: keys and questions would travel in the clear.
///
/// In en, this message translates to:
/// **'Only https, or http on your own network'**
String get assistantOwnBaseUrlInvalid;
/// The model's name at the provider.
///
/// In en, this message translates to:
/// **'Model'**
String get assistantOwnModel;
/// The API key field.
///
/// In en, this message translates to:
/// **'Key'**
String get assistantOwnKey;
/// Under the key field.
///
/// In en, this message translates to:
/// **'Empty for a model of your own that takes none.'**
String get assistantOwnKeyHelper;
/// Whether the model reads images (D12).
///
/// In en, this message translates to:
/// **'Reads images'**
String get assistantOwnImages;
/// The personal key sheet's button.
///
/// In en, this message translates to:
/// **'Save'**
String get assistantOwnSave;
/// Removes an assistant with a personal key.
///
/// In en, this message translates to:
/// **'Remove'**
String get assistantOwnRemove;
/// Asks before removing an assistant with a personal key.
///
/// In en, this message translates to:
/// **'Remove {name}?'**
String assistantOwnRemoveTitle(String name);
/// Under the question removing a personal key.
///
/// In en, this message translates to:
/// **'Its key goes from your settings on every device.'**
String get assistantOwnRemoveMessage;
/// A personal key refused, as the settings wouldn't be sealed.
///
/// In en, this message translates to:
/// **'The key wasn\'t kept: this device can\'t encrypt your settings yet. Open your account\'s keys here first.'**
String get assistantOwnRefused;
/// Below the person's own assistants, where the operator doesn't allow them (ADR 0021, D6).
///
/// In en, this message translates to:
/// **'Whoever runs {instance} doesn\'t allow own keys here, so the app doesn\'t ask these.'**
String assistantOwnNotAllowed(String instance);
/// The consent sheet's title (D40).
///
/// In en, this message translates to:
/// **'Before you ask {name}'**
String assistantConsentTitle(String name);
/// Who answers (D27).
///
/// In en, this message translates to:
/// **'It answers with the model {model} at {host}.'**
String assistantConsentModel(String model, String host);
/// What goes to the provider (D27).
///
/// In en, this message translates to:
/// **'Only what you send goes there: your question, what you pick of what it is about, and what it looks up where you let it. The provider\'s own terms apply to it.'**
String get assistantConsentWhatGoes;
/// For an assistant that reads images (D12).
///
/// In en, this message translates to:
/// **'It reads the images you add.'**
String get assistantConsentImages;
/// The instance sees it in passing and keeps nothing (D27).
///
/// In en, this message translates to:
/// **'It passes through {instance} on its way, which keeps none of it.'**
String assistantConsentInstance(String instance);
/// The operator's figures (D3).
///
/// In en, this message translates to:
/// **'Whoever runs {instance} sees how much you use it (requests, tokens, cost), never what you ask.'**
String assistantConsentOperator(String instance);
/// Conversations are sealed on the devices (D13).
///
/// In en, this message translates to:
/// **'Your conversations are kept encrypted: only your devices can read them.'**
String get assistantConsentConversations;
/// The consent sheet's button.
///
/// In en, this message translates to:
/// **'Agree'**
String get assistantConsentAgree;
/// An assistant agreed to, and when.
///
/// In en, this message translates to:
/// **'You agreed on {date}.'**
String assistantConsentAgreedOn(String date);
/// notGranted.
///
/// In en, this message translates to:
/// **'This assistant isn\'t granted to you any more.'**
String get assistantProblemNotGranted;
/// notAgreed.
///
/// In en, this message translates to:
/// **'Agree to what goes where first.'**
String get assistantProblemNotAgreed;
/// A question asked an effort its assistant does not take.
///
/// In en, this message translates to:
/// **'It doesn\'t think at this effort.'**
String get assistantProblemInvalidEffort;
/// limitReached, with when it resets.
///
/// In en, this message translates to:
/// **'Its limit is reached until {time}.'**
String assistantProblemLimitReached(String time);
/// Refused: a limit is reached, the instance not saying until when.
///
/// In en, this message translates to:
/// **'Its limit is reached for now.'**
String get assistantProblemLimitReachedNow;
/// imagesNotRead.
///
/// In en, this message translates to:
/// **'It reads no images.'**
String get assistantProblemImagesNotRead;
/// malformed.
///
/// In en, this message translates to:
/// **'This question can\'t be sent.'**
String get assistantProblemMalformed;
/// tooLarge.
///
/// In en, this message translates to:
/// **'This question is too long, or holds too many or too large images.'**
String get assistantProblemTooLarge;
/// tooManyAtOnce.
///
/// In en, this message translates to:
/// **'Wait for the answers on their way first.'**
String get assistantProblemTooManyAtOnce;
/// providerKey.
///
/// In en, this message translates to:
/// **'The provider refused the key.'**
String get assistantProblemProviderKey;
/// providerBusy.
///
/// In en, this message translates to:
/// **'The provider is busy. Try again in a moment.'**
String get assistantProblemProviderBusy;
/// providerRefused.
///
/// In en, this message translates to:
/// **'The provider refused this question.'**
String get assistantProblemProviderRefused;
/// providerFailed.
///
/// In en, this message translates to:
/// **'The provider failed. Try again.'**
String get assistantProblemProviderFailed;
/// notAllowed.
///
/// In en, this message translates to:
/// **'Only people it is granted to can do this.'**
String get assistantProblemNotAllowed;
/// failed.
///
/// In en, this message translates to:
/// **'That didn\'t work. Try again.'**
String get assistantProblemFailed;
}
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.',
);
}