fix(l10n): updating and fixing English strings - fewer versions per different layout - added period in places where it was missing - new description string for PIN reenter on Delizia [no changelog]
What changed, and why it matters
This commit only changes user-visible text strings in the Trezor firmware. It updates English translations, removes duplicate layout-specific versions of the same phrase, adds missing periods, and introduces a new description string shown when re-entering a PIN on the Delizia device layout. There is no code behavior change that would affect security.
No security action required; this is a routine localization and UI text cleanup commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff modifies two files: a Python UI layout file and an English translation JSON file. In core/src/trezor/ui/layouts/delizia/__init__.py, the pin_mismatch_popup function now references TR.pin__reenter_new_description instead of TR.pin__reenter_new for the non-wipe-code case. In core/translations/en.json, several strings are consolidated across device layouts, punctuation is added, and the new pin__reenter_new_description key is defined. No logic, cryptography, authentication, or access-control code is altered.
Changed components
core/src/trezor/ui/layouts/delizia/__init__.pycore/translations/en.jsonInspect captured patch +19 / −21
diff --git a/core/src/trezor/ui/layouts/delizia/__init__.py b/core/src/trezor/ui/layouts/delizia/__init__.py
index f3c25f17..1bcdf046 100644
--- a/core/src/trezor/ui/layouts/delizia/__init__.py
+++ b/core/src/trezor/ui/layouts/delizia/__init__.py
@@ -2239,7 +2239,9 @@ async def confirm_reenter_pin(is_wipe_code: bool = False) -> None:
async def pin_mismatch_popup(is_wipe_code: bool = False) -> None:
title = TR.wipe_code__mismatch if is_wipe_code else TR.pin__mismatch
- description = TR.wipe_code__enter_new if is_wipe_code else TR.pin__reenter_new
+ description = (
+ TR.wipe_code__enter_new if is_wipe_code else TR.pin__reenter_new_description
+ )
br_name = "wipe_code_mismatch" if is_wipe_code else "pin_mismatch"
with error_popup(
diff --git a/core/translations/en.json b/core/translations/en.json
index f7066d36..041e3341 100644
--- a/core/translations/en.json
+++ b/core/translations/en.json
@@ -91,7 +91,7 @@
"backup__create_backup_to_prevent_loss": {
"Bolt": "Create a backup to avoid losing access to your funds",
"Caesar": "Create a backup to avoid losing access to your funds",
- "Delizia": "Create a backup to avoid losing access to your funds",
+ "Delizia": "Create a wallet backup to avoid losing access to your funds.",
"Eckhart": "Create a wallet backup to avoid losing access to your funds."
},
"backup__info_multi_share_backup": "Your wallet backup contains multiple lists of words in a specific order (shares).",
@@ -915,12 +915,7 @@
"fido__device_already_registered": "This device is already registered with this application.",
"fido__device_already_registered_with_template": "This device is already registered with {0}.",
"fido__device_not_registered": "This device is not registered with this application.",
- "fido__does_not_belong": {
- "Bolt": "The credential you are trying to import does\nnot belong to this authenticator.",
- "Caesar": "The credential you are trying to import does\nnot belong to this authenticator.",
- "Delizia": "The credential you are trying to import does\nnot belong to this authenticator.",
- "Eckhart": "The credential you are trying to import does not belong to this authenticator."
- },
+ "fido__does_not_belong": "The credential you are trying to import does not belong to this authenticator.",
"fido__erase_credentials": {
"Bolt": "erase all credentials?",
"Caesar": "",
@@ -1086,7 +1081,7 @@
"instructions__continue_holding": {
"Bolt": "",
"Caesar": "",
- "Delizia": "Continue\nholding",
+ "Delizia": "Keep holding",
"Eckhart": "Keep holding"
},
"instructions__continue_in_app": {
@@ -1773,6 +1768,12 @@
},
"pin__reenter": "Re-enter PIN",
"pin__reenter_new": "Re-enter new PIN",
+ "pin__reenter_new_description": {
+ "Bolt": "",
+ "Caesar": "",
+ "Delizia": "Re-enter new PIN.",
+ "Eckhart": ""
+ },
"pin__reenter_to_confirm": {
"Bolt": "",
"Caesar": "Please re-enter PIN to confirm.",
@@ -1862,7 +1863,7 @@
"recovery__dry_run_bip39_valid_mismatch": "The entered wallet backup is valid but doesn't match the one on this device.",
"recovery__dry_run_slip39_valid_match": "The entered wallet backup is valid and matches the one on this device.",
"recovery__dry_run_slip39_valid_mismatch": "The entered wallet backup is valid but doesn't match the one on this device.",
- "recovery__enter_any_share": "Enter any share",
+ "recovery__enter_any_share": "Enter any share.",
"recovery__enter_backup": "Enter your backup.",
"recovery__enter_different_share": {
"Bolt": "Enter a different share.",
@@ -1929,12 +1930,7 @@
"recovery__wanna_cancel_dry_run": "Are you sure you want to cancel the backup check?",
"recovery__wanna_cancel_recovery": "Are you sure you want to cancel the recovery process?",
"recovery__word_count_template": "({0} words)",
- "recovery__word_x_of_y_template": {
- "Bolt": "Word {0} of {1}",
- "Caesar": "Word {0} of {1}",
- "Delizia": "Word {0} of {1}",
- "Eckhart": "Word {0}\nof {1}"
- },
+ "recovery__word_x_of_y_template": "Word {0} of {1}",
"recovery__x_more_items_starting_template_plural": {
"Bolt": "{count} more {plural} starting",
"Caesar": "",
@@ -2211,7 +2207,7 @@
"Bolt": "",
"Caesar": "",
"Delizia": "",
- "Eckhart": "Select word {0} from\nshare {1}"
+ "Eckhart": "Select word {0} from share {1}"
},
"reset__select_word_template": {
"Bolt": "",
@@ -2448,7 +2444,7 @@
},
"reset__your_backup_is_done": "Your backup is done.",
"ripple__account_deletion_warning": "Delete Ripple account?",
- "ripple__account_to_be_deleted": "To be deleted:",
+ "ripple__account_to_be_deleted": "To be deleted",
"ripple__confirm_tag": "Confirm tag",
"ripple__destination_tag_missing": "Destination tag is not set. Typically needed when sending to exchanges.",
"ripple__destination_tag_template": "Destination tag:\n{0}",
@@ -3270,13 +3266,13 @@
"words__outputs": "outputs",
"words__pay_attention": "Pay attention",
"words__please_check_again": {
- "Bolt": "Please check again",
- "Caesar": "Please check again",
+ "Bolt": "Please check again.",
+ "Caesar": "Please check again.",
"Delizia": "",
"Eckhart": ""
},
"words__please_try_again": {
- "Bolt": "Please try again",
+ "Bolt": "Please try again.",
"Caesar": "Please try again",
"Delizia": "Please try again",
"Eckhart": ""
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.