An account that signs in with SimpleLogin opens its keys with its password. Where that is lost, the unlock step's "Forgot your password?" opens one step: the recovery phrase, and a new password twice. There is no address and no code: the SimpleLogin sign-in of a moment ago stands for them (D20). - The device opens the keys with the phrase (`keys.beginPhrase`) and wraps them under the new password (`AccountCrypto.newKeysPassword`). It then signs the phrase's proof bound to that password (`signKeysResetProof`), which `keys.resetPassword` takes with the sign-in. The keys stay, and every other session ends. - A phrase that doesn't open the keys is refused on the device, and the instance gets no proof to count. Two passwords that differ are refused before anything is sent. - The gateway's `beginPhrase` and `resetPassword` run on the account's own session, not yet the device's. The repository's `resetPassword` ties them together, and the cubit and sheet have their `forgot` step. Three texts are new, in English and German. - halkyon_base_server exports `isKeysPassword` for the interop test, which checks against the register's checks, with real libsodium, what the device sends. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
1067 lines
33 KiB
Dart
1067 lines
33 KiB
Dart
// ignore: unused_import
|
|
import 'package:intl/intl.dart' as intl;
|
|
|
|
import 'halkyon_app_localizations.dart';
|
|
|
|
// ignore_for_file: type=lint
|
|
|
|
/// The translations for German (`de`).
|
|
class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
|
|
HalkyonAppLocalizationsDe([String locale = 'de']) : super(locale);
|
|
|
|
@override
|
|
String get tryAgain => 'Erneut versuchen';
|
|
|
|
@override
|
|
String instanceWelcome(String app) {
|
|
return 'Willkommen bei $app';
|
|
}
|
|
|
|
@override
|
|
String get instanceBuiltInTagline => 'In der App voreingestellt';
|
|
|
|
@override
|
|
String get instanceAnother => 'Andere Instanz';
|
|
|
|
@override
|
|
String get instanceAnotherTagline => 'Gib ihre Adresse ein';
|
|
|
|
@override
|
|
String get instanceAddress => 'Adresse der Instanz';
|
|
|
|
@override
|
|
String get instanceAddressInvalid => 'Das ist keine Adresse.';
|
|
|
|
@override
|
|
String instanceAddressInsecure(String app) {
|
|
return '$app erreicht Instanzen nur über HTTPS, damit unterwegs niemand mitliest oder verändert, was es sendet. Frag nach der HTTPS-Adresse der Instanz.';
|
|
}
|
|
|
|
@override
|
|
String instanceInsecure(String name, String app) {
|
|
return '$name wird über einfaches HTTP erreicht, wo unterwegs mitgelesen und verändert werden könnte, was $app sendet. Deshalb öffnet $app es nicht mehr. Das Konto bleibt auf $name und auf diesem Gerät. Nutze eine andere Instanz oder entferne diese von diesem Gerät.';
|
|
}
|
|
|
|
@override
|
|
String get instanceInsecureUseAnother => 'Andere Instanz nutzen';
|
|
|
|
@override
|
|
String get instanceInsecureRemove => 'Von diesem Gerät entfernen';
|
|
|
|
@override
|
|
String get instanceAddressRequired => 'Gib die Adresse einer Instanz ein.';
|
|
|
|
@override
|
|
String get instanceContinue => 'Weiter';
|
|
|
|
@override
|
|
String instanceUnreachable(String app, String name) {
|
|
return 'Unter $name antwortet keine Instanz von $app.';
|
|
}
|
|
|
|
@override
|
|
String instanceUseBuiltIn(String name) {
|
|
return '$name verwenden';
|
|
}
|
|
|
|
@override
|
|
String instanceOpenFailed(String name) {
|
|
return 'Die App auf $name konnte nicht geöffnet werden.';
|
|
}
|
|
|
|
@override
|
|
String instanceDataAndBackupsIn(String place) {
|
|
return 'Daten und Sicherungen: $place';
|
|
}
|
|
|
|
@override
|
|
String instanceDataIn(String place) {
|
|
return 'Daten: $place';
|
|
}
|
|
|
|
@override
|
|
String instanceBackupsIn(String place) {
|
|
return 'Sicherungen: $place';
|
|
}
|
|
|
|
@override
|
|
String get instanceNoBackups => 'Keine Sicherungen';
|
|
|
|
@override
|
|
String get instanceEuropeanUnion => 'Europäische Union';
|
|
|
|
@override
|
|
String instanceCountryInEu(String country) {
|
|
return '$country (EU)';
|
|
}
|
|
|
|
@override
|
|
String instanceSubdivisionOf(String subdivision, String country) {
|
|
return '$subdivision, $country';
|
|
}
|
|
|
|
@override
|
|
String get accountsTitle => 'Konten';
|
|
|
|
@override
|
|
String get accountAdd => 'Konto hinzufügen';
|
|
|
|
@override
|
|
String get accountAddSubtitle =>
|
|
'Wähle die Instanz für das Konto, das du hinzufügst.';
|
|
|
|
@override
|
|
String get accountSignedIn => 'Angemeldet';
|
|
|
|
@override
|
|
String get accountRemoveTooltip => 'Konto entfernen';
|
|
|
|
@override
|
|
String get accountRemoveTitle => 'Konto entfernen?';
|
|
|
|
@override
|
|
String accountRemoveMessage(String name) {
|
|
return 'Entfernt das Konto auf $name von diesem Gerät, mit allem, was das Gerät davon hat. Was es synchronisiert hat, bleibt auf $name: Melde dich dort wieder an, um es wiederzuhaben.';
|
|
}
|
|
|
|
@override
|
|
String get accountRemoveConfirm => 'Entfernen';
|
|
|
|
@override
|
|
String accountSignedInOn(String instance) {
|
|
return 'Angemeldet auf $instance';
|
|
}
|
|
|
|
@override
|
|
String get accountSwitch => 'Konto wechseln';
|
|
|
|
@override
|
|
String get accountSignOut => 'Abmelden';
|
|
|
|
@override
|
|
String get accountDelete => 'Konto löschen';
|
|
|
|
@override
|
|
String get accountDeleteTitle => 'Dein Konto löschen?';
|
|
|
|
@override
|
|
String get accountSignOutFailed =>
|
|
'Abmelden auf diesem Gerät hat nicht geklappt. Versuch es noch einmal.';
|
|
|
|
@override
|
|
String get accountDeleteFailed =>
|
|
'Dein Konto wurde nicht gelöscht: Die Instanz war nicht erreichbar. Versuch es noch einmal.';
|
|
|
|
@override
|
|
String get aboutSourceCode =>
|
|
'Der Quellcode dessen, was diese Instanz ausführt:';
|
|
|
|
@override
|
|
String get aboutSourceUnreachable =>
|
|
'Diese Instanz war nicht erreichbar, um nach ihrem Quellcode zu fragen.';
|
|
|
|
@override
|
|
String get sessionUnreachable => 'Der Server war nicht erreichbar.';
|
|
|
|
@override
|
|
String get personDataFailed =>
|
|
'Die Daten dieses Geräts konnten nicht geöffnet werden.';
|
|
|
|
@override
|
|
String get startSignedOut => 'Abgemeldet';
|
|
|
|
@override
|
|
String startOn(String instance) {
|
|
return 'Starte auf $instance:';
|
|
}
|
|
|
|
@override
|
|
String get startWithGitHub => 'Mit GitHub anmelden';
|
|
|
|
@override
|
|
String get startGitHubFailed => 'Anmeldung mit GitHub fehlgeschlagen.';
|
|
|
|
@override
|
|
String get startNoGitHubAccount =>
|
|
'Kein Konto hier meldet sich mit diesem GitHub-Konto an.';
|
|
|
|
@override
|
|
String get gitHubCreateAccountInstead =>
|
|
'Erstelle stattdessen ein Konto mit deiner E-Mail-Adresse und einem Passwort.';
|
|
|
|
@override
|
|
String get gitHubSimpleLoginInstead =>
|
|
'Mit SimpleLogin kannst du stattdessen eins erstellen.';
|
|
|
|
@override
|
|
String get gitHubUsePassword =>
|
|
'Dieses Konto meldet sich jetzt mit seiner E-Mail-Adresse und seinem Passwort an, nicht mehr mit GitHub.';
|
|
|
|
@override
|
|
String get gitHubEnded =>
|
|
'Die Anmeldung mit GitHub ist auf dieser Instanz beendet.';
|
|
|
|
@override
|
|
String get startOtherInstance => 'Andere Instanz verwenden';
|
|
|
|
@override
|
|
String startNoWay(String instance) {
|
|
return '$instance bietet keinen Weg, ein Konto zu erstellen.';
|
|
}
|
|
|
|
@override
|
|
String get syncTitle => 'Synchronisierung';
|
|
|
|
@override
|
|
String get syncNow => 'Jetzt synchronisieren';
|
|
|
|
@override
|
|
String get syncStateSyncing => 'Wird synchronisiert…';
|
|
|
|
@override
|
|
String get syncStateSynced => 'Alles synchronisiert';
|
|
|
|
@override
|
|
String get syncStateFailing => 'Synchronisierung schlägt fehl';
|
|
|
|
@override
|
|
String get syncStateNotYet => 'Noch nicht synchronisiert';
|
|
|
|
@override
|
|
String syncStateMismatch(String server) {
|
|
return 'Diese App kann nicht mit $server synchronisieren';
|
|
}
|
|
|
|
@override
|
|
String get syncMismatchDetail =>
|
|
'Aktualisiere die App. Ist sie schon aktuell, muss der Server aktualisiert werden. Was du bis dahin tust, bleibt auf diesem Gerät und wird danach synchronisiert.';
|
|
|
|
@override
|
|
String syncLastCompleted(String time) {
|
|
return 'Zuletzt abgeschlossen um $time';
|
|
}
|
|
|
|
@override
|
|
String syncLastFailed(String time) {
|
|
return 'Letzter Versuch fehlgeschlagen um $time';
|
|
}
|
|
|
|
@override
|
|
String get syncNoRunYet =>
|
|
'Seit dem Start der App wurde noch keine Synchronisierung abgeschlossen';
|
|
|
|
@override
|
|
String syncPending(int count) {
|
|
String _temp0 = intl.Intl.pluralLogic(
|
|
count,
|
|
locale: localeName,
|
|
other: '$count Änderungen warten auf die Synchronisierung',
|
|
one: '1 Änderung wartet auf die Synchronisierung',
|
|
);
|
|
return '$_temp0';
|
|
}
|
|
|
|
@override
|
|
String get syncTroubleLabel => 'Synchronisierung benötigt Aufmerksamkeit';
|
|
|
|
@override
|
|
String syncMismatchBanner(String server) {
|
|
return 'Diese App kann nicht mehr mit $server synchronisieren. Aktualisiere sie, um weiter zu synchronisieren.';
|
|
}
|
|
|
|
@override
|
|
String get syncMismatchMore => 'Mehr';
|
|
|
|
@override
|
|
String get startSignIn => 'Anmelden';
|
|
|
|
@override
|
|
String get startCreateAccount => 'Konto erstellen';
|
|
|
|
@override
|
|
String startGitHubEnds(String date) {
|
|
return 'Die Anmeldung mit GitHub endet am $date.';
|
|
}
|
|
|
|
@override
|
|
String get passwordAddress => 'E-Mail-Adresse';
|
|
|
|
@override
|
|
String get passwordPassword => 'Passwort';
|
|
|
|
@override
|
|
String get passwordNewPassword => 'Neues Passwort';
|
|
|
|
@override
|
|
String get passwordCurrent => 'Aktuelles Passwort';
|
|
|
|
@override
|
|
String get passwordRepeat => 'Neues Passwort wiederholen';
|
|
|
|
@override
|
|
String get passwordsDiffer => 'Die beiden Passwörter stimmen nicht überein.';
|
|
|
|
@override
|
|
String get passwordShow => 'Passwort anzeigen';
|
|
|
|
@override
|
|
String get passwordHide => 'Passwort verbergen';
|
|
|
|
@override
|
|
String get passwordContinue => 'Weiter';
|
|
|
|
@override
|
|
String get passwordBack => 'Zurück';
|
|
|
|
@override
|
|
String get passwordDone => 'Fertig';
|
|
|
|
@override
|
|
String get passwordSave => 'Als Datei speichern';
|
|
|
|
@override
|
|
String get passwordQrCode => 'QR-Code für deine Authenticator-App';
|
|
|
|
@override
|
|
String get passwordMailCode => 'Code aus der E-Mail';
|
|
|
|
@override
|
|
String passwordMailCodeSent(String address) {
|
|
return 'Wir haben dir einen Code an $address geschickt. Er gilt 15 Minuten.';
|
|
}
|
|
|
|
@override
|
|
String passwordHandleIntro(String address) {
|
|
return 'Ein Code ist unterwegs an $address. Wähle inzwischen dein Handle: Darüber finden dich andere. Es bleibt privat, bis du etwas veröffentlichst oder dein Profil ausfüllst, und lässt sich bis zu deiner ersten Veröffentlichung ändern.';
|
|
}
|
|
|
|
@override
|
|
String get passwordResendCode => 'Neuen Code senden';
|
|
|
|
@override
|
|
String get passwordTotpCode => 'Code aus deiner Authenticator-App';
|
|
|
|
@override
|
|
String get passwordRecoveryCode => 'Wiederherstellungscode';
|
|
|
|
@override
|
|
String get passwordUseRecoveryCode =>
|
|
'Stattdessen einen Wiederherstellungscode verwenden';
|
|
|
|
@override
|
|
String get passwordUseTotpCode =>
|
|
'Stattdessen deine Authenticator-App verwenden';
|
|
|
|
@override
|
|
String get passwordUnlocking =>
|
|
'Dein Passwort wird auf diesem Gerät entsperrt …';
|
|
|
|
@override
|
|
String get passwordMakingKeys =>
|
|
'Deine Schlüssel werden auf diesem Gerät erstellt …';
|
|
|
|
@override
|
|
String get passwordSignInTitle => 'Anmelden';
|
|
|
|
@override
|
|
String get passwordSignInAction => 'Anmelden';
|
|
|
|
@override
|
|
String passwordSignInIntro(String instance) {
|
|
return 'Mit der E-Mail-Adresse und dem Passwort deines Kontos auf $instance.';
|
|
}
|
|
|
|
@override
|
|
String passwordSecondFactorIntro(String instance) {
|
|
return 'Gib den Code ein, den deine Authenticator-App für $instance zeigt.';
|
|
}
|
|
|
|
@override
|
|
String get passwordRecoveryCodeIntro =>
|
|
'Gib einen deiner Wiederherstellungscodes ein. Jeder meldet einmal an.';
|
|
|
|
@override
|
|
String get passwordForgot => 'Passwort vergessen?';
|
|
|
|
@override
|
|
String get passwordOtherPassword => 'Adresse oder Passwort ändern';
|
|
|
|
@override
|
|
String get passwordLostAuthenticator => 'Authenticator verloren?';
|
|
|
|
@override
|
|
String get passwordLostAuthenticatorTitle => 'Authenticator verloren';
|
|
|
|
@override
|
|
String get passwordLostAuthenticatorIntro =>
|
|
'Mit einem Wiederherstellungscode meldest du dich wie gewohnt an. Ohne einen kannst du deine Authenticators zurücksetzen lassen: Das wirkt 72 Stunden später, und eine Anmeldung mit einem Code stoppt es bis dahin.';
|
|
|
|
@override
|
|
String get passwordResetWithMail => 'Mit einem Code per E-Mail zurücksetzen';
|
|
|
|
@override
|
|
String passwordResetWithMailHint(String address) {
|
|
return 'Wir schicken einen Code an $address.';
|
|
}
|
|
|
|
@override
|
|
String get passwordResetWithPhrase =>
|
|
'Mit deiner Wiederherstellungsphrase zurücksetzen';
|
|
|
|
@override
|
|
String get passwordResetWithPhraseHint =>
|
|
'Die 24 Wörter, die du dir notiert hast.';
|
|
|
|
@override
|
|
String get passwordSignInWithoutCode => 'Ohne Code anmelden';
|
|
|
|
@override
|
|
String get passwordSignInWithoutCodeHint =>
|
|
'Sobald ein Zurücksetzen, um das du gebeten hast, wirksam ist.';
|
|
|
|
@override
|
|
String get passwordResetAction => 'Zurücksetzen';
|
|
|
|
@override
|
|
String passwordAuthenticatorResetAt(String date) {
|
|
return 'Deine Authenticators werden am $date zurückgesetzt. Wir haben dir eine E-Mail geschickt: Warst du es nicht, melde dich vorher mit einem Code an, um es zu stoppen. Danach meldest du dich nur mit deinem Passwort an und richtest einen neuen Authenticator ein.';
|
|
}
|
|
|
|
@override
|
|
String passwordUnfinishedIntro(String address) {
|
|
return 'Dein Konto wurde nie fertig eingerichtet. Wir haben dir einen Code an $address geschickt: Damit meldest du dich an und richtest einen Authenticator ein.';
|
|
}
|
|
|
|
@override
|
|
String get passwordPhraseField => 'Wiederherstellungsphrase';
|
|
|
|
@override
|
|
String get passwordPhraseFieldHint =>
|
|
'Die 24 Wörter, durch Leerzeichen getrennt';
|
|
|
|
@override
|
|
String get passwordPhraseFieldIntro =>
|
|
'Gib deine Wiederherstellungsphrase ein: Sie beweist, dass das Konto deines ist.';
|
|
|
|
@override
|
|
String get passwordAuthenticatorTitle => 'Authenticator einrichten';
|
|
|
|
@override
|
|
String get passwordAuthenticatorIntro =>
|
|
'Jede Anmeldung braucht einen Code aus einer Authenticator-App wie Aegis, 2FAS oder Proton Authenticator. Scanne diesen Code damit oder tippe den Schlüssel ein.';
|
|
|
|
@override
|
|
String get passwordAuthenticatorKey => 'Schlüssel';
|
|
|
|
@override
|
|
String get passwordAuthenticatorOpen => 'In deiner Authenticator-App öffnen';
|
|
|
|
@override
|
|
String get passwordAuthenticatorNoApp =>
|
|
'Keine App auf diesem Gerät öffnet ihn. Scanne den Code oder tippe den Schlüssel ein.';
|
|
|
|
@override
|
|
String get passwordAuthenticatorCodeIntro =>
|
|
'Gib dann den Code ein, den sie zeigt.';
|
|
|
|
@override
|
|
String get passwordAuthenticatorOwnerIntro =>
|
|
'Bestätige zum Hinzufügen, dass du es bist: mit deinem Passwort und einem Code von einem bisherigen Authenticator.';
|
|
|
|
@override
|
|
String get passwordExistingCode => 'Code von einem bisherigen Authenticator';
|
|
|
|
@override
|
|
String get passwordRecoveryCodesTitle => 'Wiederherstellungscodes';
|
|
|
|
@override
|
|
String get passwordRecoveryCodesIntro =>
|
|
'Jeder meldet dich einmal anstelle eines Codes aus deinem Authenticator an, falls du ihn verlierst. Bewahre sie auf, wo nur du sie findest: Sie werden nur jetzt angezeigt.';
|
|
|
|
@override
|
|
String get passwordCodesKept => 'Ich habe sie aufbewahrt';
|
|
|
|
@override
|
|
String get passwordPhraseTitle => 'Deine Wiederherstellungsphrase';
|
|
|
|
@override
|
|
String get passwordPhraseIntro =>
|
|
'Diese 24 Wörter öffnen die Schlüssel deines Kontos, falls du dein Passwort vergisst: Ohne sie ist Verschlüsseltes verloren. Schreib sie der Reihe nach auf und bewahre sie auf, wo nur du sie findest. Sie werden nur jetzt angezeigt.';
|
|
|
|
@override
|
|
String get passwordPhraseWrittenDown => 'Ich habe sie aufgeschrieben';
|
|
|
|
@override
|
|
String get passwordPhraseCheckTitle => 'Wiederherstellungsphrase prüfen';
|
|
|
|
@override
|
|
String get passwordPhraseCheckIntro =>
|
|
'Tippe die gefragten Wörter aus deiner Notiz ein.';
|
|
|
|
@override
|
|
String passwordPhraseWord(int number) {
|
|
return 'Wort $number';
|
|
}
|
|
|
|
@override
|
|
String get passwordPhraseWrong =>
|
|
'Das sind nicht die Wörter. Sieh noch einmal in deine Notiz.';
|
|
|
|
@override
|
|
String get passwordPhraseShowAgain => 'Phrase noch einmal zeigen';
|
|
|
|
@override
|
|
String get passwordCreateTitle => 'Konto erstellen';
|
|
|
|
@override
|
|
String passwordCreateIntro(String instance) {
|
|
return 'Auf $instance, mit deiner E-Mail-Adresse, einem Passwort und einer Authenticator-App für den Code, den jede Anmeldung braucht.';
|
|
}
|
|
|
|
@override
|
|
String get passwordSetUpTitle => 'Passwort einrichten';
|
|
|
|
@override
|
|
String get passwordSetUpIntro =>
|
|
'Melde dich mit deiner E-Mail-Adresse, einem Passwort und einer Authenticator-App an, auf diesem Gerät und anderen. Alles, was du hast, bleibt.';
|
|
|
|
@override
|
|
String get passwordChooseIntro =>
|
|
'Wähle ein Passwort. Es verlässt dieses Gerät nie: Die Instanz kann es nicht lesen und nicht zurücksetzen, ohne dass verloren geht, was es schützt.';
|
|
|
|
@override
|
|
String get passwordFinishResetTitle => 'Zurücksetzen abschließen';
|
|
|
|
@override
|
|
String get passwordFinishResetIntro =>
|
|
'72 Stunden nachdem du um das Zurücksetzen deines Kontos gebeten hast, schließt du es hier mit einem neuen Code per E-Mail ab.';
|
|
|
|
@override
|
|
String get passwordFinishResetHavePhrase =>
|
|
'Ich habe meine Wiederherstellungsphrase';
|
|
|
|
@override
|
|
String get passwordFinishResetKeepsKeys =>
|
|
'Dein Konto behält seine Schlüssel: Nichts Verschlüsseltes geht verloren.';
|
|
|
|
@override
|
|
String get passwordFinishResetNewKeys =>
|
|
'Ohne deine Wiederherstellungsphrase bekommt dein Konto neue Schlüssel: Was mit den alten verschlüsselt war, ist verloren.';
|
|
|
|
@override
|
|
String get passwordRecoveryTitle => 'Zurück in dein Konto';
|
|
|
|
@override
|
|
String get passwordRecoveryWithPhrase =>
|
|
'Ich habe meine Wiederherstellungsphrase';
|
|
|
|
@override
|
|
String get passwordRecoveryWithPhraseHint =>
|
|
'Setze sofort ein neues Passwort. Alles bleibt.';
|
|
|
|
@override
|
|
String get passwordRecoveryWithPhraseIntro =>
|
|
'Deine Wiederherstellungsphrase öffnet die Schlüssel deines Kontos, die dann dein neues Passwort schützt. Ein Code aus deinem Authenticator oder ein Wiederherstellungscode bestätigt es.';
|
|
|
|
@override
|
|
String get passwordRecoveryNoCodeHint =>
|
|
'Auch deinen Authenticator verloren? Setze dein Konto 72 Stunden später mit deiner Wiederherstellungsphrase zurück: Sie behält alles.';
|
|
|
|
@override
|
|
String get passwordRecoveryWithoutPhrase => 'Mein Konto zurücksetzen';
|
|
|
|
@override
|
|
String get passwordRecoveryWithoutPhraseHint =>
|
|
'Wirkt 72 Stunden später. Ohne deine Wiederherstellungsphrase ist Verschlüsseltes verloren.';
|
|
|
|
@override
|
|
String get passwordRecoveryStartIntro =>
|
|
'Wir schicken einen Code an deine Adresse. Dein Konto kann dann 72 Stunden später zurückgesetzt werden; eine Anmeldung mit deinem Passwort stoppt es bis dahin.';
|
|
|
|
@override
|
|
String get passwordRecoveryFinish => 'Zurücksetzen abschließen';
|
|
|
|
@override
|
|
String get passwordRecoveryFinishHint =>
|
|
'72 Stunden nachdem du darum gebeten hast.';
|
|
|
|
@override
|
|
String passwordResetStarted(String date) {
|
|
return 'Dein Konto kann ab dem $date zurückgesetzt werden. Wir haben dir eine E-Mail geschickt: Warst du es nicht, melde dich vorher mit deinem Passwort an, um es zu stoppen.';
|
|
}
|
|
|
|
@override
|
|
String get passwordSectionTitle => 'Passwort und Authenticator';
|
|
|
|
@override
|
|
String get passwordSectionFailed =>
|
|
'Wie dein Konto sich anmeldet, konnte nicht gelesen werden.';
|
|
|
|
@override
|
|
String passwordSectionGitHubEnds(String date) {
|
|
return 'Die Anmeldung mit GitHub endet am $date. Richte bis dahin ein Passwort ein, um dein Konto zu behalten.';
|
|
}
|
|
|
|
@override
|
|
String get passwordSectionSetUp => 'Passwort einrichten';
|
|
|
|
@override
|
|
String get passwordSectionSetUpHint =>
|
|
'Melde dich mit deiner E-Mail-Adresse, einem Passwort und einer Authenticator-App an.';
|
|
|
|
@override
|
|
String get passwordSectionUnfinished =>
|
|
'Fertig einrichten: Authenticator hinzufügen';
|
|
|
|
@override
|
|
String get passwordSectionUnfinishedHint =>
|
|
'Dein Passwort meldet dich an, sobald ein Authenticator eingerichtet ist.';
|
|
|
|
@override
|
|
String get passwordSectionChange => 'Passwort ändern';
|
|
|
|
@override
|
|
String get passwordSectionKeysMissing =>
|
|
'Melde dich auf diesem Gerät mit deinem Passwort an, um das zu ändern.';
|
|
|
|
@override
|
|
String get passwordSectionNotConfirmed => 'Noch nicht eingerichtet';
|
|
|
|
@override
|
|
String passwordSectionRemove(String name) {
|
|
return '$name entfernen?';
|
|
}
|
|
|
|
@override
|
|
String get passwordSectionRemoveIntro =>
|
|
'Gib zur Bestätigung dein Passwort und einen Code aus einem deiner Authenticators ein.';
|
|
|
|
@override
|
|
String get passwordSectionRemoveAction => 'Entfernen';
|
|
|
|
@override
|
|
String get passwordSectionAddAuthenticator => 'Authenticator hinzufügen';
|
|
|
|
@override
|
|
String get passwordSectionRecoveryCodes => 'Neue Wiederherstellungscodes';
|
|
|
|
@override
|
|
String get passwordSectionRecoveryCodesHint =>
|
|
'Die alten gelten dann nicht mehr.';
|
|
|
|
@override
|
|
String get passwordSectionNewPhrase => 'Neue Wiederherstellungsphrase';
|
|
|
|
@override
|
|
String get passwordSectionPhraseHint =>
|
|
'Deine alte Phrase gilt dann nicht mehr.';
|
|
|
|
@override
|
|
String get passwordChangeTitle => 'Passwort ändern';
|
|
|
|
@override
|
|
String get passwordChangeIntro =>
|
|
'Deine anderen Geräte werden abgemeldet. Deine Schlüssel bleiben: Nichts geht verloren.';
|
|
|
|
@override
|
|
String get passwordChangeAction => 'Passwort ändern';
|
|
|
|
@override
|
|
String get passwordChanged =>
|
|
'Passwort geändert. Deine anderen Geräte sind abgemeldet.';
|
|
|
|
@override
|
|
String get passwordNewCodesIntro =>
|
|
'Gib dein Passwort und einen Code aus deiner Authenticator-App ein. Deine alten Wiederherstellungscodes gelten dann nicht mehr.';
|
|
|
|
@override
|
|
String get passwordNewPhraseIntro =>
|
|
'Deine neue Wiederherstellungsphrase. Schreib die 24 Wörter der Reihe nach auf: Sobald du sie bestätigst, öffnet deine alte Phrase nichts mehr.';
|
|
|
|
@override
|
|
String get passwordPhraseKept =>
|
|
'Neue Wiederherstellungsphrase gesetzt. Die alte gilt nicht mehr.';
|
|
|
|
@override
|
|
String get passwordWrongCredentials =>
|
|
'Die Adresse, das Passwort oder der Code stimmt nicht.';
|
|
|
|
@override
|
|
String get passwordTooManyAttempts =>
|
|
'Zu viele Versuche. Versuch es in einer Stunde wieder.';
|
|
|
|
@override
|
|
String get passwordSetupIncomplete =>
|
|
'Dein Konto wurde nie fertig eingerichtet: Richte einen Authenticator ein.';
|
|
|
|
@override
|
|
String passwordNotDue(String date) {
|
|
return 'Das wirkt am $date.';
|
|
}
|
|
|
|
@override
|
|
String get passwordNotDueYet => 'Das wirkt noch nicht.';
|
|
|
|
@override
|
|
String get passwordNoReset => 'Für diese Adresse wartet kein Zurücksetzen.';
|
|
|
|
@override
|
|
String get passwordExists =>
|
|
'Das Konto dieser Adresse hat schon ein Passwort. Melde dich damit an oder komm zurück in dein Konto, falls du es vergessen hast.';
|
|
|
|
@override
|
|
String get passwordAddressTaken =>
|
|
'Diese Adresse gehört zu einem anderen Konto.';
|
|
|
|
@override
|
|
String get passwordNoAddress => 'Dein Konto hat noch keine E-Mail-Adresse.';
|
|
|
|
@override
|
|
String get passwordNoPassword => 'Dieses Konto hat kein Passwort.';
|
|
|
|
@override
|
|
String get passwordWrongCode =>
|
|
'Dieser Code stimmt nicht. Gib den ein, den deine App gerade zeigt.';
|
|
|
|
@override
|
|
String get passwordLastAuthenticator =>
|
|
'Dein letzter Authenticator kann nicht weg: Jede Anmeldung braucht einen.';
|
|
|
|
@override
|
|
String get passwordTooManyAuthenticators =>
|
|
'Dein Konto hat so viele Authenticators, wie es darf. Entferne zuerst einen.';
|
|
|
|
@override
|
|
String get passwordUnknownAuthenticator => 'Dieser Authenticator ist weg.';
|
|
|
|
@override
|
|
String get passwordInvalidSetup =>
|
|
'Die Instanz hat nicht angenommen, was dieses Gerät erstellt hat. Aktualisiere die App oder versuch es noch einmal.';
|
|
|
|
@override
|
|
String get passwordChallengeExpired =>
|
|
'Das hat zu lange gedauert. Versuch es noch einmal.';
|
|
|
|
@override
|
|
String get passwordUnavailable =>
|
|
'Diese Instanz bietet keine Anmeldung mit Passwort.';
|
|
|
|
@override
|
|
String get passwordNotAnAddress => 'Das ist keine E-Mail-Adresse.';
|
|
|
|
@override
|
|
String get passwordTooManyCodes =>
|
|
'Zu viele Codes angefordert. Versuch es in einer Stunde wieder.';
|
|
|
|
@override
|
|
String get passwordWrongMailCode => 'Dieser Code stimmt nicht.';
|
|
|
|
@override
|
|
String get passwordTooManyMailTries =>
|
|
'Zu viele falsche Codes. Fordere einen neuen an.';
|
|
|
|
@override
|
|
String get passwordMailCodeExpired =>
|
|
'Dieser Code gilt nicht mehr. Fordere einen neuen an.';
|
|
|
|
@override
|
|
String get passwordMailFailed =>
|
|
'Die Instanz konnte die E-Mail nicht senden. Versuch es später noch einmal.';
|
|
|
|
@override
|
|
String get passwordOtherAddressLinked =>
|
|
'Dein Konto hat eine andere E-Mail-Adresse.';
|
|
|
|
@override
|
|
String get passwordNotAPhrase =>
|
|
'Das ist keine Wiederherstellungsphrase: Prüf jedes Wort und ihre Anzahl.';
|
|
|
|
@override
|
|
String get passwordPhraseDoesNotFit =>
|
|
'Die Adresse oder die Wiederherstellungsphrase stimmt nicht.';
|
|
|
|
@override
|
|
String get passwordUnusable =>
|
|
'Dieses Passwort geht nicht: Es ist leer oder enthält Zeichen, die kein Text sind.';
|
|
|
|
@override
|
|
String get passwordInstanceUnproven =>
|
|
'Die Instanz konnte nicht beweisen, dass sie dein Passwort kennt, daher vertraut dieses Gerät ihr nicht. Versuch es noch einmal; passiert es wieder, ist die Instanz nicht die, die sie zu sein behauptet.';
|
|
|
|
@override
|
|
String get passwordKeysMissing =>
|
|
'Die Schlüssel deines Kontos sind nicht auf diesem Gerät. Melde dich hier ab und mit deinem Passwort wieder an.';
|
|
|
|
@override
|
|
String get passwordUnsafeCosts =>
|
|
'Die Instanz wollte dein Passwort auf eine Weise prüfen lassen, die kein Konto nutzt, daher wurde nichts gesendet. Passiert es wieder, ist die Instanz nicht die, die sie zu sein behauptet.';
|
|
|
|
@override
|
|
String get passwordFailed =>
|
|
'Die Instanz war nicht erreichbar. Prüf die Verbindung und versuch es noch einmal.';
|
|
|
|
@override
|
|
String passwordMinLength(int count) {
|
|
return 'Mindestens $count Zeichen';
|
|
}
|
|
|
|
@override
|
|
String passwordTooShort(int count) {
|
|
return 'Ein neues Passwort braucht mindestens $count Zeichen: Sollte die Datenbank der Instanz je nach außen gelangen, wird ein kurzes zuerst erraten.';
|
|
}
|
|
|
|
@override
|
|
String passwordCodesWait(String date) {
|
|
return 'Zu viele falsche Codes hintereinander: Bis $date wird kein Code angenommen. Waren es nicht deine, kennt jemand dein Passwort: Ändere es dann.';
|
|
}
|
|
|
|
@override
|
|
String get passwordDeleteIntro =>
|
|
'Dein Konto wird mit allem darin gelöscht, in jedem Dienst dieser Instanz. Gib zur Bestätigung dein Passwort und einen Code deiner Authenticator-App ein.';
|
|
|
|
@override
|
|
String get passwordSessionEnded =>
|
|
'Zu viele falsche Codes hintereinander von diesem Gerät: Es wurde abgemeldet. Melde dich wieder mit deinem Passwort und einem Code an.';
|
|
|
|
@override
|
|
String get passwordAddressUnknown =>
|
|
'Gib die E-Mail-Adresse deines Kontos ein: Dorthin geht der Code.';
|
|
|
|
@override
|
|
String get passwordDeleteIntroByMail =>
|
|
'Dein Konto wird mit allem darin gelöscht, in jedem Dienst dieser Instanz. Keiner seiner Authenticators funktioniert gerade, daher bestätigt es ein Code per E-Mail: Gib dein Passwort ein, dann den Code, den wir an deine Adresse schicken.';
|
|
|
|
@override
|
|
String get passwordDeleteSendCode => 'Code per E-Mail schicken';
|
|
|
|
@override
|
|
String get passwordSignInAgain =>
|
|
'Um einem Konto, das sich mit GitHub anmeldet, ein Passwort zu geben, melde dich erst wieder mit GitHub an: Es ist mehr als ein paar Minuten her.';
|
|
|
|
@override
|
|
String get passwordSignInWithGitHubAgain => 'Wieder mit GitHub anmelden';
|
|
|
|
@override
|
|
String get passwordOfferTitle => 'Richte ein Passwort ein';
|
|
|
|
@override
|
|
String get passwordOfferBody =>
|
|
'Die Anmeldung mit GitHub endet. Richte ein Passwort und eine Authenticator-App ein, um dein Konto zu behalten.';
|
|
|
|
@override
|
|
String get passwordOfferLater => 'Später';
|
|
|
|
@override
|
|
String get passwordAuthenticatorPasswordIntro =>
|
|
'Bestätige zum Hinzufügen mit deinem Passwort, dass du es bist.';
|
|
|
|
@override
|
|
String get passwordWarningTitle => 'Jemand hat dein Passwort ausprobiert';
|
|
|
|
@override
|
|
String passwordWarningBody(String date) {
|
|
return 'Am $date hat ein bei deinem Konto angemeldetes Gerät zehnmal hintereinander ein falsches Passwort oder einen falschen Code gesendet und wurde abgemeldet. Warst du das nicht, hat vielleicht jemand anderes dieses Gerät oder seine Sitzung: Ändere dein Passwort.';
|
|
}
|
|
|
|
@override
|
|
String get passwordWarningDismiss => 'Ausblenden';
|
|
|
|
@override
|
|
String get passwordWarningLater => 'Später erinnern';
|
|
|
|
@override
|
|
String get passwordResetsTitle => 'Ein Zurücksetzen steht an';
|
|
|
|
@override
|
|
String passwordResetsAuthenticator(String date) {
|
|
return 'Am $date werden deine Authenticator-Apps entfernt: Jemand hat es mit deinem Passwort angefordert. Warst du das nicht, sag es ab und ändere dein Passwort.';
|
|
}
|
|
|
|
@override
|
|
String passwordResetsAccount(String date) {
|
|
return 'Am $date bekommt dein Konto ein neues Passwort und neue Schlüssel, und was mit den alten verschlüsselt ist, geht verloren: Jemand hat es mit einem Code per Mail angefordert. Warst du das nicht, sag es ab.';
|
|
}
|
|
|
|
@override
|
|
String get passwordResetsCallOff => 'Absagen';
|
|
|
|
@override
|
|
String get passwordCallOffTitle => 'Zurücksetzen absagen';
|
|
|
|
@override
|
|
String get passwordCallOffIntro =>
|
|
'Dein Passwort und ein Code sagen jedes anstehende Zurücksetzen ab.';
|
|
|
|
@override
|
|
String passwordSectionGitHubEndsDeletes(String date) {
|
|
return 'Die Anmeldung mit GitHub endet am $date. Richte bis dahin ein Passwort ein: Ein Konto ohne wird 30 Tage später mit allem darin gelöscht.';
|
|
}
|
|
|
|
@override
|
|
String get passwordSignedInBefore =>
|
|
'Nur ein seitdem angemeldetes Gerät kann diese Warnung ausblenden: Melde dich auf diesem neu an oder ändere dein Passwort.';
|
|
|
|
@override
|
|
String get simpleLoginContinue => 'Weiter mit SimpleLogin';
|
|
|
|
@override
|
|
String simpleLoginNote(String instance) {
|
|
return 'SimpleLogin ist die Anmeldung von Proton, und ein Proton-Konto funktioniert dort auch. SimpleLogin erfährt, dass du $instance nutzt, und $instance speichert nur deine SimpleLogin-ID: Dein Name schlägt einmal ein Handle vor, sonst wird nichts gespeichert.';
|
|
}
|
|
|
|
@override
|
|
String get simpleLoginTitle => 'Mit SimpleLogin anmelden';
|
|
|
|
@override
|
|
String get simpleLoginAddTitle => 'SimpleLogin hinzufügen';
|
|
|
|
@override
|
|
String get simpleLoginInBrowser => 'Mach in deinem Browser weiter.';
|
|
|
|
@override
|
|
String get simpleLoginNewcomerTitle => 'Neu hier?';
|
|
|
|
@override
|
|
String simpleLoginNewcomerIntro(String instance) {
|
|
return 'Zu deinem SimpleLogin-Konto gibt es auf $instance noch kein Konto.';
|
|
}
|
|
|
|
@override
|
|
String get simpleLoginCreateHint =>
|
|
'Wähle ein Handle und ein Passwort; du bekommst eine Wiederherstellungsphrase.';
|
|
|
|
@override
|
|
String get simpleLoginHaveOne => 'Ich habe schon eins';
|
|
|
|
@override
|
|
String get simpleLoginHaveOneHint =>
|
|
'Verknüpfe es wieder mit deinem Handle und deiner Wiederherstellungsphrase.';
|
|
|
|
@override
|
|
String get handleIntro =>
|
|
'Andere finden dich über dein Handle. Es bleibt privat, bis du etwas veröffentlichst oder dein Profil ausfüllst, und lässt sich bis zu deiner ersten Veröffentlichung ändern.';
|
|
|
|
@override
|
|
String get handleLabel => 'Handle';
|
|
|
|
@override
|
|
String handleFree(String handle) {
|
|
return '@$handle ist frei';
|
|
}
|
|
|
|
@override
|
|
String get handleChecking => 'Wird geprüft …';
|
|
|
|
@override
|
|
String get simpleLoginPasswordIntro =>
|
|
'Wähle ein Passwort: Du gibst es ein, wenn du dich auf einem anderen Gerät anmeldest. Es verlässt dieses Gerät nie: Die Instanz kann es nicht lesen und nicht zurücksetzen, ohne dass verloren geht, was es schützt.';
|
|
|
|
@override
|
|
String get simpleLoginCreate => 'Konto erstellen';
|
|
|
|
@override
|
|
String get simpleLoginUnlockTitle => 'Dein Passwort';
|
|
|
|
@override
|
|
String simpleLoginUnlockIntroAs(String handle) {
|
|
return 'Mit SimpleLogin als @$handle angemeldet. Dein Passwort öffnet deine Schlüssel auf diesem Gerät.';
|
|
}
|
|
|
|
@override
|
|
String get simpleLoginUnlockIntro =>
|
|
'Mit SimpleLogin angemeldet. Dein Passwort öffnet deine Schlüssel auf diesem Gerät.';
|
|
|
|
@override
|
|
String get simpleLoginOpen => 'Öffnen';
|
|
|
|
@override
|
|
String get simpleLoginMendTitle => 'Konto verknüpfen';
|
|
|
|
@override
|
|
String get simpleLoginMendIntro =>
|
|
'Dein SimpleLogin-Konto ist nicht mehr das, das dein Konto kennt. Verknüpfe sie wieder mit deinem Handle und deiner Wiederherstellungsphrase: Deine anderen Geräte werden dann abgemeldet.';
|
|
|
|
@override
|
|
String get simpleLoginMend => 'Verknüpfen';
|
|
|
|
@override
|
|
String get simpleLoginWrongPassword => 'Das Passwort stimmt nicht.';
|
|
|
|
@override
|
|
String get simpleLoginMendDoesNotFit =>
|
|
'Das Handle oder die Wiederherstellungsphrase stimmt nicht.';
|
|
|
|
@override
|
|
String get simpleLoginForgotTitle => 'Ein neues Passwort';
|
|
|
|
@override
|
|
String get simpleLoginForgotIntro =>
|
|
'Deine Wiederherstellungsphrase öffnet deine Schlüssel, die dann dein neues Passwort schützt. Alles bleibt; deine anderen Geräte werden abgemeldet.';
|
|
|
|
@override
|
|
String get simpleLoginForgotDoesNotFit =>
|
|
'Die Wiederherstellungsphrase stimmt nicht.';
|
|
|
|
@override
|
|
String get simpleLoginUnavailable =>
|
|
'Diese Instanz bietet die Anmeldung mit SimpleLogin nicht an.';
|
|
|
|
@override
|
|
String get simpleLoginDenied =>
|
|
'Die Anmeldung bei SimpleLogin wurde abgelehnt, also wurde nichts geteilt.';
|
|
|
|
@override
|
|
String get simpleLoginNoBrowser =>
|
|
'Es gibt keinen Browser, der die Seite von SimpleLogin öffnen kann.';
|
|
|
|
@override
|
|
String get simpleLoginStartAgain =>
|
|
'Die Anmeldung hat zu lange gedauert, oder eine andere ist an ihre Stelle getreten. Beginne sie noch einmal.';
|
|
|
|
@override
|
|
String get simpleLoginRejected =>
|
|
'SimpleLogin hat die Anmeldung nicht bestätigt. Beginne sie noch einmal.';
|
|
|
|
@override
|
|
String get simpleLoginProviderUnavailable =>
|
|
'Die Instanz erreicht SimpleLogin gerade nicht. Versuch es später noch einmal.';
|
|
|
|
@override
|
|
String get simpleLoginTakenByAnotherPerson =>
|
|
'Dieses SimpleLogin-Konto gehört hier zu einem anderen Konto.';
|
|
|
|
@override
|
|
String get simpleLoginOtherIdentityLinked =>
|
|
'Dein Konto hat schon ein anderes SimpleLogin-Konto.';
|
|
|
|
@override
|
|
String get simpleLoginTooManyAttempts =>
|
|
'Von diesem Netz aus wurden zu viele Anmeldungen begonnen. Versuch es in einer Stunde noch einmal.';
|
|
|
|
@override
|
|
String get handleInvalid =>
|
|
'Ein Handle besteht aus 1 bis 30 Buchstaben (a bis z), Ziffern oder Unterstrichen.';
|
|
|
|
@override
|
|
String get handleReserved => 'Dieses Handle ist der Instanz vorbehalten.';
|
|
|
|
@override
|
|
String get handleTaken => 'Dieses Handle hat schon jemand anderes.';
|
|
|
|
@override
|
|
String get handleTooManyChecks =>
|
|
'Es wurden zu viele Handles ausprobiert. Versuch es in einer Stunde noch einmal.';
|
|
|
|
@override
|
|
String get simpleLoginSectionTitle => 'SimpleLogin';
|
|
|
|
@override
|
|
String get simpleLoginSignsYouIn => 'Meldet dich an';
|
|
|
|
@override
|
|
String get simpleLoginAddHint =>
|
|
'Melde dich mit SimpleLogin an, oder mit deinem Proton-Konto.';
|
|
|
|
@override
|
|
String get simpleLoginAdded => 'SimpleLogin hinzugefügt.';
|
|
}
|