KTO-01 Kriterien 5, 6 und 7 (01b): LoginController/State/Screen replace the /login placeholder. Generic failure text for wrong email and password, resend via ResendController (ResendOrigin.login), throttle and offline banners, autofill hints, double-submit guard, validated from redirect. Refs #1 Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
248 lines
6.2 KiB
Dart
248 lines
6.2 KiB
Dart
// ignore: unused_import
|
||
import 'package:intl/intl.dart' as intl;
|
||
|
||
import 'app_localizations.dart';
|
||
|
||
// ignore_for_file: type=lint
|
||
|
||
/// The translations for English (`en`).
|
||
class AppLocalizationsEn extends AppLocalizations {
|
||
AppLocalizationsEn([String locale = 'en']) : super(locale);
|
||
|
||
@override
|
||
String get appTitle => 'Shuffle';
|
||
|
||
@override
|
||
String get homePlaceholderMessage =>
|
||
'Welcome to Shuffle. The board game catalog is coming soon.';
|
||
|
||
@override
|
||
String get notFoundTitle => 'Page not found';
|
||
|
||
@override
|
||
String get notFoundMessage => 'This page does not exist or has been moved.';
|
||
|
||
@override
|
||
String get notFoundBackHome => 'Back to start';
|
||
|
||
@override
|
||
String get authErrorInvalidCredentials =>
|
||
'Email address or password is incorrect.';
|
||
|
||
@override
|
||
String get authErrorEmailNotConfirmed =>
|
||
'Please confirm your email address first. We sent you an email for this.';
|
||
|
||
@override
|
||
String get authActionResendConfirmation => 'Resend confirmation email';
|
||
|
||
@override
|
||
String get authErrorRateLimited =>
|
||
'Too many attempts. Please wait a few minutes and try again.';
|
||
|
||
@override
|
||
String get authErrorWeakPasswordLength => 'The password is too short.';
|
||
|
||
@override
|
||
String get authErrorWeakPasswordCharacters =>
|
||
'The password is too simple. Choose a different one.';
|
||
|
||
@override
|
||
String get authErrorWeakPasswordPwned =>
|
||
'This password is very common and easy to guess. Choose a different one.';
|
||
|
||
@override
|
||
String get authErrorSamePassword =>
|
||
'Choose a password different from your current one.';
|
||
|
||
@override
|
||
String get authErrorLinkInvalidOrExpired =>
|
||
'The link has expired or has already been used.';
|
||
|
||
@override
|
||
String get authActionRequestNewLink => 'Request a new link';
|
||
|
||
@override
|
||
String get authErrorEmailInvalid => 'Enter a valid email address.';
|
||
|
||
@override
|
||
String get authErrorRegistrationRejected =>
|
||
'Registration is not possible. Please check your details.';
|
||
|
||
@override
|
||
String get authErrorNetwork =>
|
||
'No connection. You need internet access for this step.';
|
||
|
||
@override
|
||
String get authErrorUnexpected => 'Something went wrong. Please try again.';
|
||
|
||
@override
|
||
String get authActionRetry => 'Try again';
|
||
|
||
@override
|
||
String authPasswordTooShort(int missing) {
|
||
String _temp0 = intl.Intl.pluralLogic(
|
||
missing,
|
||
locale: localeName,
|
||
other: '$missing more characters needed',
|
||
one: '1 more character needed',
|
||
);
|
||
return 'At least 10 characters – $_temp0.';
|
||
}
|
||
|
||
@override
|
||
String get authPasswordCommon =>
|
||
'This password is very common and easy to guess. Choose a different one.';
|
||
|
||
@override
|
||
String get authPasswordRule =>
|
||
'At least 10 characters. Not a very common password.';
|
||
|
||
@override
|
||
String get authPasswordRequired => 'Enter a password.';
|
||
|
||
@override
|
||
String get authDisplayNameEmpty => 'Enter a display name.';
|
||
|
||
@override
|
||
String authDisplayNameTooLong(int max) {
|
||
return 'The display name can be at most $max characters long.';
|
||
}
|
||
|
||
@override
|
||
String get authDisplayNameInvalid =>
|
||
'This display name is not allowed. Use visible characters.';
|
||
|
||
@override
|
||
String authDisplayNameCounter(int count, int max) {
|
||
return '$count/$max';
|
||
}
|
||
|
||
@override
|
||
String get authAgeNotConfirmed => 'Shuffle can only be used from age 16.';
|
||
|
||
@override
|
||
String get authTermsNotAccepted =>
|
||
'Please agree to the privacy policy and the terms of use.';
|
||
|
||
@override
|
||
String get authFieldEmailLabel => 'Email address';
|
||
|
||
@override
|
||
String get authFieldPasswordLabel => 'Password';
|
||
|
||
@override
|
||
String get authFieldDisplayNameLabel => 'Display name';
|
||
|
||
@override
|
||
String get authPasswordShow => 'Show password';
|
||
|
||
@override
|
||
String get authPasswordHide => 'Hide password';
|
||
|
||
@override
|
||
String get authCheckboxAgeLabel => 'I am at least 16 years old';
|
||
|
||
@override
|
||
String get authCheckboxTermsPrefix => 'I have read the';
|
||
|
||
@override
|
||
String get authCheckboxTermsPrivacyLink => 'privacy policy';
|
||
|
||
@override
|
||
String get authCheckboxTermsMiddle => 'and agree to the';
|
||
|
||
@override
|
||
String get authCheckboxTermsTermsLink => 'terms of use';
|
||
|
||
@override
|
||
String get authCheckboxTermsSuffix => '';
|
||
|
||
@override
|
||
String get authBannerTypeError => 'Error';
|
||
|
||
@override
|
||
String get authBannerTypeInfo => 'Note';
|
||
|
||
@override
|
||
String get authSubmitting => 'Please wait …';
|
||
|
||
@override
|
||
String get authRegisterTitle => 'Create account';
|
||
|
||
@override
|
||
String get authRegisterSubmit => 'Create account';
|
||
|
||
@override
|
||
String get authRegisterHaveAccount => 'Already have an account? Sign in';
|
||
|
||
@override
|
||
String get authLoginTitle => 'Sign in';
|
||
|
||
@override
|
||
String get authLoginSubmit => 'Sign in';
|
||
|
||
@override
|
||
String get authLoginForgotPassword => 'Forgot password?';
|
||
|
||
@override
|
||
String get authLoginCreateAccount => 'Create account';
|
||
|
||
@override
|
||
String get authCheckEmailTitle => 'Check your inbox';
|
||
|
||
@override
|
||
String get authCheckEmailBody =>
|
||
'We sent you an email if the address is not registered yet. Follow the link in it to continue.';
|
||
|
||
@override
|
||
String get authCheckEmailDelayHint =>
|
||
'The email can take a few minutes. Also check your spam folder.';
|
||
|
||
@override
|
||
String authCheckEmailValidity(String duration) {
|
||
return 'The link is valid for $duration.';
|
||
}
|
||
|
||
@override
|
||
String get authCheckEmailValidityOneHour => '1 hour';
|
||
|
||
@override
|
||
String get authCheckEmailResend => 'Resend email';
|
||
|
||
@override
|
||
String get authCheckEmailResent =>
|
||
'We resent the email, if there is something to send for this address.';
|
||
|
||
@override
|
||
String get authBackToLogin => 'Back to sign in';
|
||
|
||
@override
|
||
String get authConfirmTitle => 'Confirm email address';
|
||
|
||
@override
|
||
String get authConfirmBody =>
|
||
'One click is enough to confirm your email address.';
|
||
|
||
@override
|
||
String get authConfirmSubmit => 'Confirm email address';
|
||
|
||
@override
|
||
String get authConfirmSuccess => 'Email confirmed.';
|
||
|
||
@override
|
||
String get authConfirmSuccessMobileWeb =>
|
||
'You can now also sign in in the app.';
|
||
|
||
@override
|
||
String get authConfirmContinue => 'Continue';
|
||
|
||
@override
|
||
String get authRecoveryTitle => 'Set a new password';
|
||
|
||
@override
|
||
String get authRecoveryBody => 'One click is enough to set a new password.';
|
||
|
||
@override
|
||
String get authRecoverySubmit => 'Continue to new password';
|
||
}
|