Skip to content

Refactor and fix private key reminder screen - #1537

Merged
0xh3rman merged 3 commits into
mainfrom
hm/private-key-reminder
Oct 14, 2026
Merged

0xh3rman merged 3 commits into
mainfrom
hm/private-key-reminder

Conversation

@0xh3rman

@0xh3rman 0xh3rman commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

It also closes #1394

android-key-reminder android-phrase-reminder ios-key-reminder

Why new strings instead of reusing the Secret Phrase ones with a placeholder

The private key reminder mirrors the Secret Phrase reminder card for card, with its own private_key_reminder_* strings rather than one shared string with %@ for "secret phrase" / "private key":

  1. Translation is cheap with an agent: each key string is the phrase string with the noun swapped, so the job is keeping the two sets consistent, not writing new copy.
  2. Language nuance: the words around the noun change with it. Russian "вашу секретную фразу" vs "ваш приватный ключ", German "Ihre geheime Phrase" vs "Ihren privaten Schlüssel", and the title pronouns follow gender (Spanish "No lo/la compartas", French "Ne le/la partagez").
  3. Some translations name the secret even where English doesn't: the Chinese and Japanese titles say 助记词 / リカバリーフレーズ, which is how a key wallet ended up showing Secret Phrase wording (Bug: Private key page incorrectly displays seed phrase warnings #1394).
  4. Our Fluent → iOS/Android generator has no select expressions, so per-kind variants need separate keys anyway
  5. The copy can drift later without touching the other screen, e.g. the upcoming per-account export (Add ability to export specific private key per chain #1217) needs different wording, since there the Secret Phrase still backs the account up.

1. Private key reminder intro, card titles and descriptions, and the reveal warning in every language
2. Regenerate the iOS catalog and Android resources, with the iOS keys grouped under PrivateKey
1. Core picks the reminder cards for each secret kind: a wallet imported from a private key gets the Secret Phrase reminder's three cards and emoji, worded for the key, instead of the Secret Phrase reminder itself
2. The reveal warns "Do not share your Private Key!" instead of naming the Secret Phrase
3. Both apps keep one reminder screen and pass it the secret kind; Android's reminder uses body-size descriptions and the same card spacing as iOS
4. iOS no longer hyphenates a private key where it wraps
5. Add the rule to the product doc
@0xh3rman
0xh3rman force-pushed the hm/private-key-reminder branch from 06d8e85 to ffe9a61 Compare October 13, 2026 01:28
@0xh3rman
0xh3rman marked this pull request as ready for review October 13, 2026 01:33
Comment thread ios/Packages/PrimitivesComponents/Sources/Extensions/Gemstone+Localized.swift Outdated
1. GemSecurityReminderItem is KeepSafe, DoNotShare and NoRecovery with a kind, instead of separate private key cases
2. Apps pick each card's text by kind and its emoji by card alone
@0xh3rman
0xh3rman merged commit 913b0a8 into main Oct 14, 2026
6 checks passed
@0xh3rman
0xh3rman deleted the hm/private-key-reminder branch October 14, 2026 00:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: Private key page incorrectly displays seed phrase warnings

2 participants