feat(app): the recovery phrase's words typed back are suggested from BIP-39's list (ADR 0017)

Each of the three fields suggests the words of BIP-39's whole English
list beginning with what is typed, never the phrase's own, and refuses a
word not on it as its field is left, so that a typo is caught before the
words are compared.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-10-29 22:34:02 +01:00
commit acb291afcb
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64
5 changed files with 280 additions and 24 deletions

View file

@ -141,6 +141,7 @@
"passwordPhraseCheckIntro": "Tippe die gefragten Wörter aus deiner Notiz ein.",
"passwordPhraseWord": "Wort {number}",
"passwordPhraseWrong": "Das sind nicht die Wörter. Sieh noch einmal in deine Notiz.",
"passwordPhraseNotAWord": "Kein Wort, aus dem eine Wiederherstellungsphrase besteht",
"passwordPhraseShowAgain": "Phrase noch einmal zeigen",
"passwordCreateTitle": "Konto erstellen",
"passwordCreateIntro": "Auf {instance}, mit deiner E-Mail-Adresse, einem Passwort und einer Authenticator-App für den Code, den jede Anmeldung braucht.",

View file

@ -435,6 +435,7 @@
}
},
"passwordPhraseWrong": "These aren't the words. Look again at what you wrote down.",
"passwordPhraseNotAWord": "Not a word a recovery phrase is made of",
"passwordPhraseShowAgain": "Show the phrase again",
"passwordCreateTitle": "Create an account",
"passwordCreateIntro": "On {instance}, with your email address, a password, and an authenticator app for the code every sign-in takes.",

View file

@ -949,6 +949,12 @@ abstract class HalkyonAppLocalizations {
/// **'These aren\'t the words. Look again at what you wrote down.'**
String get passwordPhraseWrong;
/// No description provided for @passwordPhraseNotAWord.
///
/// In en, this message translates to:
/// **'Not a word a recovery phrase is made of'**
String get passwordPhraseNotAWord;
/// No description provided for @passwordPhraseShowAgain.
///
/// In en, this message translates to:

View file

@ -539,6 +539,10 @@ class HalkyonAppLocalizationsDe extends HalkyonAppLocalizations {
String get passwordPhraseWrong =>
'Das sind nicht die Wörter. Sieh noch einmal in deine Notiz.';
@override
String get passwordPhraseNotAWord =>
'Kein Wort, aus dem eine Wiederherstellungsphrase besteht';
@override
String get passwordPhraseShowAgain => 'Phrase noch einmal zeigen';

View file

@ -529,6 +529,10 @@ class HalkyonAppLocalizationsEn extends HalkyonAppLocalizations {
String get passwordPhraseWrong =>
'These aren\'t the words. Look again at what you wrote down.';
@override
String get passwordPhraseNotAWord =>
'Not a word a recovery phrase is made of';
@override
String get passwordPhraseShowAgain => 'Show the phrase again';