From 9ec8bc652483cf9f1c2d7febf1b79bae667d532a Mon Sep 17 00:00:00 2001 From: obrusvit Date: Sun, 7 Apr 2024 22:31:57 +0200 Subject: [PATCH] refactor(core): upper titles and buttons for TT/TR New models might not have titles or button labels in all uppercase as TT and TR do so the translation strings must be written in normal case. Instead we uppercases the strings during generation. In the future, we might want to get rid of separated translated_string.rs and instead modify the font data. [no changelog] refactor(core): upper titles and buttons for TT/TR WIP New models might not have titles or button labels in all uppercase as TT and TR do so the translation strings must be written in normal case. Instead we uppercases the strings during generation. In the future, we might want to get rid of separated translated_string.rs and instead modify the font data. [no changelog] --- core/embed/rust/librust_qstr.h | 34 +- core/embed/rust/open_docs.sh | 1 + .../rust/src/translations/generated/mod.rs | 10 +- .../generated/translated_string.rs | 774 ++-- .../generated/translated_string_upper.rs | 3708 +++++++++++++++++ .../generated/translated_string_upper.rs.mako | 75 + .../src/translations/translated_string.rs | 2 +- core/embed/rust/src/ui/display/font.rs | 2 +- core/mocks/trezortranslate_keys.pyi | 370 +- core/src/apps/base.py | 2 +- core/src/apps/cardano/get_public_key.py | 2 +- core/src/apps/ethereum/layout.py | 18 +- core/src/apps/solana/layout.py | 4 +- core/src/trezor/ui/layouts/progress.py | 23 +- core/src/trezor/ui/layouts/tr/__init__.py | 18 +- core/src/trezor/ui/layouts/tr/recovery.py | 2 +- core/src/trezor/ui/layouts/tr/reset.py | 2 +- core/src/trezor/ui/layouts/tt/__init__.py | 71 +- core/src/trezor/ui/layouts/tt/fido.py | 2 +- core/src/trezor/ui/layouts/tt/recovery.py | 4 +- core/src/trezor/ui/layouts/tt/reset.py | 4 +- core/tools/codegen/gen_font.py | 2 +- core/tools/translations/rules.json | 14 +- core/translations/cs.json | 34 +- core/translations/de.json | 34 +- core/translations/en.json | 370 +- core/translations/es.json | 34 +- core/translations/fr.json | 34 +- core/translations/order.json | 34 +- core/translations/signatures.json | 6 +- .../src/trezorlib/_internal/translations.py | 67 +- tests/input_flows_helpers.py | 16 +- 32 files changed, 4808 insertions(+), 965 deletions(-) create mode 100755 core/embed/rust/open_docs.sh create mode 100644 core/embed/rust/src/translations/generated/translated_string_upper.rs create mode 100644 core/embed/rust/src/translations/generated/translated_string_upper.rs.mako diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h index bd7a90819..0b682a460 100644 --- a/core/embed/rust/librust_qstr.h +++ b/core/embed/rust/librust_qstr.h @@ -30,8 +30,8 @@ static void _librust_qstrs(void) { MP_QSTR_addr_mismatch__wrong_derivation_path; MP_QSTR_addr_mismatch__xpub_mismatch; MP_QSTR_address; - MP_QSTR_address__public_key; MP_QSTR_address__title_cosigner; + MP_QSTR_address__title_public_key; MP_QSTR_address__title_receive_address; MP_QSTR_address__title_yours; MP_QSTR_address_details__derivation_path; @@ -328,10 +328,10 @@ static void _librust_qstrs(void) { MP_QSTR_progress__loading_transaction; MP_QSTR_progress__locking_device; MP_QSTR_progress__one_second_left; - MP_QSTR_progress__please_wait; MP_QSTR_progress__refreshing; MP_QSTR_progress__signing_transaction; MP_QSTR_progress__syncing; + MP_QSTR_progress__title_please_wait; MP_QSTR_progress__x_seconds_left_template; MP_QSTR_progress_event; MP_QSTR_prompt; @@ -374,7 +374,7 @@ static void _librust_qstrs(void) { MP_QSTR_recovery__wanna_cancel_dry_run; MP_QSTR_recovery__wanna_cancel_recovery; MP_QSTR_recovery__word_count_template; - MP_QSTR_recovery__word_x_of_y_template; + MP_QSTR_recovery__word_x_of_y_title_template; MP_QSTR_recovery__x_more_items_starting_template_plural; MP_QSTR_recovery__x_more_shares_needed_template_plural; MP_QSTR_recovery__x_of_y_entered_template; @@ -421,7 +421,7 @@ static void _librust_qstrs(void) { MP_QSTR_reset__recovery_share_title_template; MP_QSTR_reset__required_number_of_groups; MP_QSTR_reset__select_correct_word; - MP_QSTR_reset__select_word_template; + MP_QSTR_reset__select_word_title_template; MP_QSTR_reset__select_word_x_of_y_template; MP_QSTR_reset__set_it_to_count_template; MP_QSTR_reset__share_checked_successfully_template; @@ -531,16 +531,16 @@ static void _librust_qstrs(void) { MP_QSTR_show_warning; MP_QSTR_sign; MP_QSTR_sign_message__bytes_template; - MP_QSTR_sign_message__confirm_address; - MP_QSTR_sign_message__confirm_message; MP_QSTR_sign_message__message_size; - MP_QSTR_sign_message__verify_address; + MP_QSTR_sign_message__title_confirm_address; + MP_QSTR_sign_message__title_confirm_message; + MP_QSTR_sign_message__title_verify_address; MP_QSTR_skip_first_paint; MP_QSTR_spending_amount; - MP_QSTR_storage_msg__processing; - MP_QSTR_storage_msg__starting; - MP_QSTR_storage_msg__verifying_pin; - MP_QSTR_storage_msg__wrong_pin; + MP_QSTR_storage_msg__title_processing; + MP_QSTR_storage_msg__title_starting; + MP_QSTR_storage_msg__title_verifying_pin; + MP_QSTR_storage_msg__title_wrong_pin; MP_QSTR_subprompt; MP_QSTR_subtitle; MP_QSTR_text_mono; @@ -623,12 +623,12 @@ static void _librust_qstrs(void) { MP_QSTR_words__please_check_again; MP_QSTR_words__please_try_again; MP_QSTR_words__really_wanna; - MP_QSTR_words__recipient; MP_QSTR_words__sign; MP_QSTR_words__signer; MP_QSTR_words__title_check; MP_QSTR_words__title_group; MP_QSTR_words__title_information; + MP_QSTR_words__title_recipient; MP_QSTR_words__title_remember; MP_QSTR_words__title_share; MP_QSTR_words__title_shares; @@ -819,13 +819,13 @@ static void _librust_qstrs(void) { MP_QSTR_ethereum__show_full_message; MP_QSTR_ethereum__show_full_struct; MP_QSTR_ethereum__sign_eip712; - MP_QSTR_ethereum__staking_claim; - MP_QSTR_ethereum__staking_claim_address; MP_QSTR_ethereum__staking_claim_intro; - MP_QSTR_ethereum__staking_stake; - MP_QSTR_ethereum__staking_stake_address; MP_QSTR_ethereum__staking_stake_intro; - MP_QSTR_ethereum__staking_unstake; + MP_QSTR_ethereum__staking_title_claim; + MP_QSTR_ethereum__staking_title_claim_address; + MP_QSTR_ethereum__staking_title_stake; + MP_QSTR_ethereum__staking_title_stake_address; + MP_QSTR_ethereum__staking_title_unstake; MP_QSTR_ethereum__staking_unstake_intro; MP_QSTR_ethereum__title_confirm_data; MP_QSTR_ethereum__title_confirm_domain; diff --git a/core/embed/rust/open_docs.sh b/core/embed/rust/open_docs.sh new file mode 100755 index 000000000..e4ac651a0 --- /dev/null +++ b/core/embed/rust/open_docs.sh @@ -0,0 +1 @@ +cargo doc --features ui,model_mercury,micropython,translations,dma2d,ui_debug,touch --no-default-features --open diff --git a/core/embed/rust/src/translations/generated/mod.rs b/core/embed/rust/src/translations/generated/mod.rs index 6a08560b1..f9c924f9b 100644 --- a/core/embed/rust/src/translations/generated/mod.rs +++ b/core/embed/rust/src/translations/generated/mod.rs @@ -1 +1,9 @@ -pub mod translated_string; +#[cfg(feature = "model_mercury")] +mod translated_string; +#[cfg(feature = "model_mercury")] +pub use translated_string::TranslatedString; + +#[cfg(any(feature = "model_tr", feature = "model_tt"))] +mod translated_string_upper; +#[cfg(any(feature = "model_tr", feature = "model_tt"))] +pub use translated_string_upper::TranslatedString; diff --git a/core/embed/rust/src/translations/generated/translated_string.rs b/core/embed/rust/src/translations/generated/translated_string.rs index 337b403c7..b28717ad7 100644 --- a/core/embed/rust/src/translations/generated/translated_string.rs +++ b/core/embed/rust/src/translations/generated/translated_string.rs @@ -16,25 +16,25 @@ pub enum TranslatedString { addr_mismatch__support_url = 3, // "trezor.io/support" addr_mismatch__wrong_derivation_path = 4, // "Wrong derivation path for selected account." addr_mismatch__xpub_mismatch = 5, // "XPUB mismatch?" - address__public_key = 6, // "Public key" - address__title_cosigner = 7, // "COSIGNER" - address__title_receive_address = 8, // "RECEIVE ADDRESS" - address__title_yours = 9, // "YOURS" + address__title_public_key = 6, // "Public key" + address__title_cosigner = 7, // "Cosigner" + address__title_receive_address = 8, // "Receive address" + address__title_yours = 9, // "Yours" address_details__derivation_path = 10, // "Derivation path:" - address_details__title_receive_address = 11, // "RECEIVE ADDRESS" - address_details__title_receiving_to = 12, // "RECEIVING TO" + address_details__title_receive_address = 11, // "Receive address" + address_details__title_receiving_to = 12, // "Receiving to" authenticate__confirm_template = 13, // "Allow connected computer to confirm your {0} is genuine?" authenticate__header = 14, // "Authenticate device" auto_lock__change_template = 15, // "Auto-lock your Trezor after {0} of inactivity?" - auto_lock__title = 16, // "AUTO-LOCK DELAY" + auto_lock__title = 16, // "Auto-lock delay" backup__can_back_up_anytime = 17, // "You can back up your Trezor once, at any time." backup__it_should_be_backed_up = 18, // "You should back up your new wallet right now." backup__it_should_be_backed_up_now = 19, // "It should be backed up now!" backup__new_wallet_created = 20, // "New wallet created.\n" backup__new_wallet_successfully_created = 21, // "New wallet created successfully." backup__recover_anytime = 22, // "You can use your backup to recover your wallet at any time." - backup__title_backup_wallet = 23, // "BACK UP WALLET" - backup__title_skip = 24, // "SKIP BACKUP" + backup__title_backup_wallet = 23, // "Back up wallet" + backup__title_skip = 24, // "Skip backup" backup__want_to_skip = 25, // "Are you sure you want to skip the backup?" #[cfg(feature = "universal_fw")] binance__buy = 26, // "Buy" @@ -72,59 +72,59 @@ pub enum TranslatedString { bitcoin__new_fee_rate = 47, // "New fee rate:" bitcoin__simple_send_of = 48, // "Simple send of" bitcoin__ticket_amount = 49, // "Ticket amount:" - bitcoin__title_confirm_details = 50, // "CONFIRM DETAILS" - bitcoin__title_finalize_transaction = 51, // "FINALIZE TRANSACTION" - bitcoin__title_high_mining_fee = 52, // "HIGH MINING FEE" - bitcoin__title_meld_transaction = 53, // "MELD TRANSACTIONS" - bitcoin__title_modify_amount = 54, // "MODIFY AMOUNT" - bitcoin__title_payjoin = 55, // "PAYJOIN" - bitcoin__title_proof_of_ownership = 56, // "PROOF OF OWNERSHIP" - bitcoin__title_purchase_ticket = 57, // "PURCHASE TICKET" - bitcoin__title_update_transaction = 58, // "UPDATE TRANSACTION" + bitcoin__title_confirm_details = 50, // "Confirm details" + bitcoin__title_finalize_transaction = 51, // "Finalize transaction" + bitcoin__title_high_mining_fee = 52, // "High mining fee" + bitcoin__title_meld_transaction = 53, // "Meld transactions" + bitcoin__title_modify_amount = 54, // "Modify amount" + bitcoin__title_payjoin = 55, // "Payjoin" + bitcoin__title_proof_of_ownership = 56, // "Proof of ownership" + bitcoin__title_purchase_ticket = 57, // "Purchase ticket" + bitcoin__title_update_transaction = 58, // "Update transaction" bitcoin__unknown_path = 59, // "Unknown path" bitcoin__unknown_transaction = 60, // "Unknown transaction" bitcoin__unusually_high_fee = 61, // "Unusually high fee." bitcoin__unverified_external_inputs = 62, // "The transaction contains unverified external inputs." bitcoin__valid_signature = 63, // "The signature is valid." bitcoin__voting_rights = 64, // "Voting rights to:" - buttons__abort = 65, // "ABORT" - buttons__access = 66, // "ACCESS" - buttons__again = 67, // "AGAIN" - buttons__allow = 68, // "ALLOW" - buttons__back = 69, // "BACK" - buttons__back_up = 70, // "BACK UP" - buttons__cancel = 71, // "CANCEL" - buttons__change = 72, // "CHANGE" - buttons__check = 73, // "CHECK" - buttons__check_again = 74, // "CHECK AGAIN" - buttons__close = 75, // "CLOSE" - buttons__confirm = 76, // "CONFIRM" - buttons__continue = 77, // "CONTINUE" - buttons__details = 78, // "DETAILS" - buttons__enable = 79, // "ENABLE" - buttons__enter = 80, // "ENTER" - buttons__enter_share = 81, // "ENTER SHARE" - buttons__export = 82, // "EXPORT" - buttons__format = 83, // "FORMAT" - buttons__go_back = 84, // "GO BACK" - buttons__hold_to_confirm = 85, // "HOLD TO CONFIRM" - buttons__info = 86, // "INFO" - buttons__install = 87, // "INSTALL" - buttons__more_info = 88, // "MORE INFO" - buttons__ok_i_understand = 89, // "OK, I UNDERSTAND" - buttons__purchase = 90, // "PURCHASE" - buttons__quit = 91, // "QUIT" - buttons__restart = 92, // "RESTART" - buttons__retry = 93, // "RETRY" - buttons__select = 94, // "SELECT" - buttons__set = 95, // "SET" - buttons__show_all = 96, // "SHOW ALL" - buttons__show_details = 97, // "SHOW DETAILS" - buttons__show_words = 98, // "SHOW WORDS" - buttons__skip = 99, // "SKIP" - buttons__try_again = 100, // "TRY AGAIN" - buttons__turn_off = 101, // "TURN OFF" - buttons__turn_on = 102, // "TURN ON" + buttons__abort = 65, // "Abort" + buttons__access = 66, // "Access" + buttons__again = 67, // "Again" + buttons__allow = 68, // "Allow" + buttons__back = 69, // "Back" + buttons__back_up = 70, // "Back up" + buttons__cancel = 71, // "Cancel" + buttons__change = 72, // "Change" + buttons__check = 73, // "Check" + buttons__check_again = 74, // "Check again" + buttons__close = 75, // "Close" + buttons__confirm = 76, // "Confirm" + buttons__continue = 77, // "Continue" + buttons__details = 78, // "Details" + buttons__enable = 79, // "Enable" + buttons__enter = 80, // "Enter" + buttons__enter_share = 81, // "Enter share" + buttons__export = 82, // "Export" + buttons__format = 83, // "Format" + buttons__go_back = 84, // "Go back" + buttons__hold_to_confirm = 85, // "Hold to confirm" + buttons__info = 86, // "Info" + buttons__install = 87, // "Install" + buttons__more_info = 88, // "More info" + buttons__ok_i_understand = 89, // "Ok, i understand" + buttons__purchase = 90, // "Purchase" + buttons__quit = 91, // "Quit" + buttons__restart = 92, // "Restart" + buttons__retry = 93, // "Retry" + buttons__select = 94, // "Select" + buttons__set = 95, // "Set" + buttons__show_all = 96, // "Show all" + buttons__show_details = 97, // "Show details" + buttons__show_words = 98, // "Show words" + buttons__skip = 99, // "Skip" + buttons__try_again = 100, // "Try again" + buttons__turn_off = 101, // "Turn off" + buttons__turn_on = 102, // "Turn on" #[cfg(feature = "universal_fw")] cardano__addr_base = 103, // "Base" #[cfg(feature = "universal_fw")] @@ -347,21 +347,21 @@ pub enum TranslatedString { coinjoin__do_not_disconnect = 213, // "Do not disconnect your Trezor!" coinjoin__max_mining_fee = 214, // "Max mining fee" coinjoin__max_rounds = 215, // "Max rounds" - coinjoin__title = 216, // "AUTHORIZE COINJOIN" - coinjoin__title_do_not_disconnect = 217, // "DO NOT DISCONNECT YOUR TREZOR!" - coinjoin__title_progress = 218, // "COINJOIN IN PROGRESS" + coinjoin__title = 216, // "Authorize coinjoin" + coinjoin__title_do_not_disconnect = 217, // "Do not disconnect your trezor!" + coinjoin__title_progress = 218, // "Coinjoin in progress" coinjoin__waiting_for_others = 219, // "Waiting for others" confirm_total__fee_rate = 220, // "Fee rate:" confirm_total__sending_from_account = 221, // "Sending from account:" - confirm_total__title_fee = 222, // "FEE INFORMATION" - confirm_total__title_sending_from = 223, // "SENDING FROM" + confirm_total__title_fee = 222, // "Fee information" + confirm_total__title_sending_from = 223, // "Sending from" debug__loading_seed = 224, // "Loading seed" debug__loading_seed_not_recommended = 225, // "Loading private seed is not recommended." device_name__change_template = 226, // "Change device name to {0}?" - device_name__title = 227, // "DEVICE NAME" + device_name__title = 227, // "Device name" entropy__send = 228, // "Do you really want to send entropy?" - entropy__title = 229, // "INTERNAL ENTROPY" - entropy__title_confirm = 230, // "CONFIRM ENTROPY" + entropy__title = 229, // "Internal entropy" + entropy__title_confirm = 230, // "Confirm entropy" #[cfg(feature = "universal_fw")] eos__about_to_sign_template = 231, // "You are about to sign {0}." #[cfg(feature = "universal_fw")] @@ -473,17 +473,17 @@ pub enum TranslatedString { #[cfg(feature = "universal_fw")] ethereum__sign_eip712 = 285, // "Really sign EIP-712 typed data?" #[cfg(feature = "universal_fw")] - ethereum__title_confirm_data = 286, // "CONFIRM DATA" + ethereum__title_confirm_data = 286, // "Confirm data" #[cfg(feature = "universal_fw")] - ethereum__title_confirm_domain = 287, // "CONFIRM DOMAIN" + ethereum__title_confirm_domain = 287, // "Confirm domain" #[cfg(feature = "universal_fw")] - ethereum__title_confirm_message = 288, // "CONFIRM MESSAGE" + ethereum__title_confirm_message = 288, // "Confirm message" #[cfg(feature = "universal_fw")] - ethereum__title_confirm_struct = 289, // "CONFIRM STRUCT" + ethereum__title_confirm_struct = 289, // "Confirm struct" #[cfg(feature = "universal_fw")] - ethereum__title_confirm_typed_data = 290, // "CONFIRM TYPED DATA" + ethereum__title_confirm_typed_data = 290, // "Confirm typed data" #[cfg(feature = "universal_fw")] - ethereum__title_signing_address = 291, // "SIGNING ADDRESS" + ethereum__title_signing_address = 291, // "Signing address" #[cfg(feature = "universal_fw")] ethereum__units_template = 292, // "{0} units" #[cfg(feature = "universal_fw")] @@ -492,7 +492,7 @@ pub enum TranslatedString { ethereum__valid_signature = 294, // "The signature is valid." experimental_mode__enable = 295, // "Enable experimental features?" experimental_mode__only_for_dev = 296, // "Only for development and beta testing!" - experimental_mode__title = 297, // "EXPERIMENTAL MODE" + experimental_mode__title = 297, // "Experimental mode" #[cfg(feature = "universal_fw")] fido__already_registered = 298, // "Already registered" #[cfg(feature = "universal_fw")] @@ -514,70 +514,70 @@ pub enum TranslatedString { #[cfg(feature = "universal_fw")] fido__please_enable_pin_protection = 307, // "Please enable PIN protection." #[cfg(feature = "universal_fw")] - fido__title_authenticate = 308, // "FIDO2 AUTHENTICATE" + fido__title_authenticate = 308, // "Fido2 authenticate" #[cfg(feature = "universal_fw")] - fido__title_import_credential = 309, // "IMPORT CREDENTIAL" + fido__title_import_credential = 309, // "Import credential" #[cfg(feature = "universal_fw")] - fido__title_list_credentials = 310, // "LIST CREDENTIALS" + fido__title_list_credentials = 310, // "List credentials" #[cfg(feature = "universal_fw")] - fido__title_register = 311, // "FIDO2 REGISTER" + fido__title_register = 311, // "Fido2 register" #[cfg(feature = "universal_fw")] - fido__title_remove_credential = 312, // "REMOVE CREDENTIAL" + fido__title_remove_credential = 312, // "Remove credential" #[cfg(feature = "universal_fw")] - fido__title_reset = 313, // "FIDO2 RESET" + fido__title_reset = 313, // "FIDO2 reset" #[cfg(feature = "universal_fw")] - fido__title_u2f_auth = 314, // "U2F AUTHENTICATE" + fido__title_u2f_auth = 314, // "U2F authenticate" #[cfg(feature = "universal_fw")] - fido__title_u2f_register = 315, // "U2F REGISTER" + fido__title_u2f_register = 315, // "U2F register" #[cfg(feature = "universal_fw")] - fido__title_verify_user = 316, // "FIDO2 VERIFY USER" + fido__title_verify_user = 316, // "FIDO2 verify user" #[cfg(feature = "universal_fw")] fido__unable_to_verify_user = 317, // "Unable to verify user." #[cfg(feature = "universal_fw")] fido__wanna_erase_credentials = 318, // "Do you really want to erase all credentials?" - firmware_update__title = 319, // "UPDATE FIRMWARE" - firmware_update__title_fingerprint = 320, // "FW FINGERPRINT" + firmware_update__title = 319, // "Update firmware" + firmware_update__title_fingerprint = 320, // "FW fingerprint" homescreen__click_to_connect = 321, // "Click to Connect" homescreen__click_to_unlock = 322, // "Click to Unlock" - homescreen__title_backup_failed = 323, // "BACKUP FAILED" - homescreen__title_backup_needed = 324, // "BACKUP NEEDED" - homescreen__title_coinjoin_authorized = 325, // "COINJOIN AUTHORIZED" - homescreen__title_experimental_mode = 326, // "EXPERIMENTAL MODE" - homescreen__title_no_usb_connection = 327, // "NO USB CONNECTION" - homescreen__title_pin_not_set = 328, // "PIN NOT SET" - homescreen__title_seedless = 329, // "SEEDLESS" - homescreen__title_set = 330, // "CHANGE HOMESCREEN?" - inputs__back = 331, // "BACK" - inputs__cancel = 332, // "CANCEL" - inputs__delete = 333, // "DELETE" - inputs__enter = 334, // "ENTER" - inputs__return = 335, // "RETURN" - inputs__show = 336, // "SHOW" - inputs__space = 337, // "SPACE" - joint__title = 338, // "JOINT TRANSACTION" + homescreen__title_backup_failed = 323, // "Backup failed" + homescreen__title_backup_needed = 324, // "Backup needed" + homescreen__title_coinjoin_authorized = 325, // "Coinjoin authorized" + homescreen__title_experimental_mode = 326, // "Experimental mode" + homescreen__title_no_usb_connection = 327, // "No USB connection" + homescreen__title_pin_not_set = 328, // "PIN not set" + homescreen__title_seedless = 329, // "Seedless" + homescreen__title_set = 330, // "Change homescreen?" + inputs__back = 331, // "Back" + inputs__cancel = 332, // "Cancel" + inputs__delete = 333, // "Delete" + inputs__enter = 334, // "Enter" + inputs__return = 335, // "Return" + inputs__show = 336, // "Show" + inputs__space = 337, // "Space" + joint__title = 338, // "Joint transaction" joint__to_the_total_amount = 339, // "To the total amount:" joint__you_are_contributing = 340, // "You are contributing:" language__change_to_template = 341, // "Change language to {0}?" language__changed = 342, // "Language changed successfully" language__progress = 343, // "Changing language" - language__title = 344, // "LANGUAGE SETTINGS" + language__title = 344, // "Language settings" lockscreen__tap_to_connect = 345, // "Tap to connect" lockscreen__tap_to_unlock = 346, // "Tap to unlock" - lockscreen__title_locked = 347, // "LOCKED" - lockscreen__title_not_connected = 348, // "NOT CONNECTED" + lockscreen__title_locked = 347, // "Locked" + lockscreen__title_not_connected = 348, // "Not connected" misc__decrypt_value = 349, // "Decrypt value" misc__encrypt_value = 350, // "Encrypt value" - misc__title_suite_labeling = 351, // "SUITE LABELING" + misc__title_suite_labeling = 351, // "Suite labeling" modify_amount__decrease_amount = 352, // "Decrease amount by:" modify_amount__increase_amount = 353, // "Increase amount by:" modify_amount__new_amount = 354, // "New amount:" - modify_amount__title = 355, // "MODIFY AMOUNT" + modify_amount__title = 355, // "Modify amount" modify_fee__decrease_fee = 356, // "Decrease fee by:" modify_fee__fee_rate = 357, // "Fee rate:" modify_fee__increase_fee = 358, // "Increase fee by:" modify_fee__new_transaction_fee = 359, // "New transaction fee:" modify_fee__no_change = 360, // "Fee did not change.\n" - modify_fee__title = 361, // "MODIFY FEE" + modify_fee__title = 361, // "Modify fee" modify_fee__transaction_fee = 362, // "Transaction fee:" #[cfg(feature = "universal_fw")] monero__confirm_export = 363, // "Confirm export" @@ -725,11 +725,11 @@ pub enum TranslatedString { passphrase__next_screen_will_show_passphrase = 437, // "Next screen will show the passphrase." passphrase__please_enter = 438, // "Please enter your passphrase." passphrase__revoke_on_device = 439, // "Do you want to revoke the passphrase on device setting?" - passphrase__title_confirm = 440, // "CONFIRM PASSPHRASE" - passphrase__title_enter = 441, // "ENTER PASSPHRASE" - passphrase__title_hide = 442, // "HIDE PASSPHRASE" - passphrase__title_settings = 443, // "PASSPHRASE SETTINGS" - passphrase__title_source = 444, // "PASSPHRASE SOURCE" + passphrase__title_confirm = 440, // "Confirm passphrase" + passphrase__title_enter = 441, // "Enter passphrase" + passphrase__title_hide = 442, // "Hide passphrase" + passphrase__title_settings = 443, // "Passphrase settings" + passphrase__title_source = 444, // "Passphrase source" passphrase__turn_off = 445, // "Turn off passphrase protection?" passphrase__turn_on = 446, // "Turn on passphrase protection?" pin__change = 447, // "Change PIN?" @@ -750,9 +750,9 @@ pub enum TranslatedString { pin__reenter_new = 462, // "Re-enter new PIN" pin__reenter_to_confirm = 463, // "Please re-enter PIN to confirm." pin__should_be_long = 464, // "PIN should be 4-50 digits long." - pin__title_check_pin = 465, // "CHECK PIN" - pin__title_settings = 466, // "PIN SETTINGS" - pin__title_wrong_pin = 467, // "WRONG PIN" + pin__title_check_pin = 465, // "Check PIN" + pin__title_settings = 466, // "PIN settings" + pin__title_wrong_pin = 467, // "Wrong PIN" pin__tries_left = 468, // "tries left" pin__turn_off = 469, // "Are you sure you want to turn off PIN protection?" pin__turn_on = 470, // "Turn on PIN protection?" @@ -771,14 +771,14 @@ pub enum TranslatedString { progress__loading_transaction = 483, // "Loading transaction..." progress__locking_device = 484, // "Locking the device..." progress__one_second_left = 485, // "1 second left" - progress__please_wait = 486, // "PLEASE WAIT" - storage_msg__processing = 487, // "PROCESSING" + progress__title_please_wait = 486, // "Please wait" + storage_msg__title_processing = 487, // "Processing" progress__refreshing = 488, // "Refreshing..." progress__signing_transaction = 489, // "Signing transaction..." progress__syncing = 490, // "Syncing..." progress__x_seconds_left_template = 491, // "{0} seconds left" reboot_to_bootloader__restart = 492, // "Trezor will restart in bootloader mode." - reboot_to_bootloader__title = 493, // "GO TO BOOTLOADER" + reboot_to_bootloader__title = 493, // "Go to bootloader" reboot_to_bootloader__version_by_template = 494, // "Firmware version {0}\nby {1}" recovery__cancel_dry_run = 495, // "Cancel backup check" recovery__check_dry_run = 496, // "Check your backup?" @@ -803,18 +803,18 @@ pub enum TranslatedString { recovery__share_already_entered = 515, // "Share already entered" recovery__share_from_another_shamir = 516, // "You have entered a share from another Shamir Backup." recovery__share_num_template = 517, // "Share {0}" - recovery__title = 518, // "RECOVER WALLET" - recovery__title_cancel_dry_run = 519, // "CANCEL BACKUP CHECK" - recovery__title_cancel_recovery = 520, // "CANCEL RECOVERY" - recovery__title_dry_run = 521, // "BACKUP CHECK" - recovery__title_recover = 522, // "RECOVER WALLET" - recovery__title_remaining_shares = 523, // "REMAINING SHARES" + recovery__title = 518, // "Recover wallet" + recovery__title_cancel_dry_run = 519, // "Cancel backup check" + recovery__title_cancel_recovery = 520, // "Cancel recovery" + recovery__title_dry_run = 521, // "Backup check" + recovery__title_recover = 522, // "Recover wallet" + recovery__title_remaining_shares = 523, // "Remaining shares" recovery__type_word_x_of_y_template = 524, // "Type word {0} of {1}" recovery__wallet_recovered = 525, // "Wallet recovered successfully" recovery__wanna_cancel_dry_run = 526, // "Are you sure you want to cancel the backup check?" recovery__wanna_cancel_recovery = 527, // "Are you sure you want to cancel the recovery process?" recovery__word_count_template = 528, // "({0} words)" - recovery__word_x_of_y_template = 529, // "WORD {0} OF {1}" + recovery__word_x_of_y_title_template = 529, // "Word {0} of {1}" recovery__x_more_items_starting_template_plural = 530, // "{count} more {plural} starting" recovery__x_more_shares_needed_template_plural = 531, // "{count} more {plural} needed." recovery__x_of_y_entered_template = 532, // "{0} of {1} shares entered successfully." @@ -822,13 +822,13 @@ pub enum TranslatedString { reset__advanced_group_threshold_info = 534, // "The group threshold specifies the number of groups required to recover your wallet." reset__all_x_of_y_template = 535, // "all {0} of {1} shares" reset__any_x_of_y_template = 536, // "any {0} of {1} shares" - reset__button_create = 537, // "CREATE WALLET" - reset__button_recover = 538, // "RECOVER WALLET" + reset__button_create = 537, // "Create wallet" + reset__button_recover = 538, // "Recover wallet" reset__by_continuing = 539, // "By continuing you agree to Trezor Company's terms and conditions." - reset__check_backup_title = 540, // "CHECK BACKUP" - reset__check_group_share_title_template = 541, // "CHECK G{0} - SHARE {1}" - reset__check_seed_title = 542, // "CHECK SEED" - reset__check_share_title_template = 543, // "CHECK SHARE #{0}" + reset__check_backup_title = 540, // "Check backup" + reset__check_group_share_title_template = 541, // "Check g{0} - share {1}" + reset__check_seed_title = 542, // "Check seed" + reset__check_share_title_template = 543, // "Check share #{0}" reset__continue_with_next_share = 544, // "Continue with the next share." reset__continue_with_share_template = 545, // "Continue with share #{0}." reset__finished_verifying_group_template = 546, // "You have finished verifying your recovery shares for group {0}." @@ -837,7 +837,7 @@ pub enum TranslatedString { reset__group_description = 549, // "A group is made up of recovery shares." reset__group_info = 550, // "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds." reset__group_share_checked_successfully_template = 551, // "Group {0} - Share {1} checked successfully." - reset__group_share_title_template = 552, // "GROUP {0} - SHARE {1}" + reset__group_share_title_template = 552, // "Group {0} - share {1}" reset__more_info_at = 553, // "More info at" reset__need_all_share_template = 554, // "For recovery you need all {0} of the shares." reset__need_any_share_template = 555, // "For recovery you need any {0} of the shares." @@ -851,15 +851,15 @@ pub enum TranslatedString { reset__number_of_shares_info = 563, // "= total number of unique word lists used for wallet backup." reset__one_share = 564, // "1 share" reset__only_one_share_will_be_created = 565, // "Only one share will be created." - reset__recovery_seed_title = 566, // "RECOVERY SEED" - reset__recovery_share_title_template = 567, // "RECOVERY SHARE #{0}" + reset__recovery_seed_title = 566, // "Recovery seed" + reset__recovery_share_title_template = 567, // "Recovery share #{0}" reset__required_number_of_groups = 568, // "The required number of groups for recovery." reset__select_correct_word = 569, // "Select the correct word for each position." - reset__select_word_template = 570, // "SELECT {0} WORD" + reset__select_word_title_template = 570, // "Select {0} word" reset__select_word_x_of_y_template = 571, // "Select word {0} of {1}:" reset__set_it_to_count_template = 572, // "Set it to {0} and you will need " reset__share_checked_successfully_template = 573, // "Recovery share #{0} checked successfully." - reset__share_words_title = 574, // "STANDARD BACKUP" + reset__share_words_title = 574, // "Standard backup" reset__slip39_checklist_num_groups = 575, // "Number of groups" reset__slip39_checklist_num_shares = 576, // "Number of shares" reset__slip39_checklist_set_num_groups = 577, // "Set number of groups" @@ -867,21 +867,21 @@ pub enum TranslatedString { reset__slip39_checklist_set_sizes = 579, // "Set sizes and thresholds" reset__slip39_checklist_set_sizes_longer = 580, // "Set size and threshold for each group" reset__slip39_checklist_set_threshold = 581, // "Set threshold" - reset__slip39_checklist_title = 582, // "BACKUP CHECKLIST" + reset__slip39_checklist_title = 582, // "Backup checklist" reset__slip39_checklist_write_down = 583, // "Write down and check all shares" reset__slip39_checklist_write_down_recovery = 584, // "Write down and check all recovery shares" reset__the_threshold_sets_the_number_of_shares = 585, // "The threshold sets the number of shares " reset__threshold_info = 586, // "= minimum number of unique word lists used for recovery." - reset__title_backup_is_done = 587, // "BACKUP IS DONE" - reset__title_create_wallet = 588, // "CREATE WALLET" - reset__title_create_wallet_shamir = 589, // "CREATE WALLET (SHAMIR)" - reset__title_group_threshold = 590, // "GROUP THRESHOLD" - reset__title_number_of_groups = 591, // "NUMBER OF GROUPS" - reset__title_number_of_shares = 592, // "NUMBER OF SHARES" - reset__title_set_group_threshold = 593, // "SET GROUP THRESHOLD" - reset__title_set_number_of_groups = 594, // "SET NUMBER OF GROUPS" - reset__title_set_number_of_shares = 595, // "SET NUMBER OF SHARES" - reset__title_set_threshold = 596, // "SET THRESHOLD" + reset__title_backup_is_done = 587, // "Backup is done" + reset__title_create_wallet = 588, // "Create wallet" + reset__title_create_wallet_shamir = 589, // "Create wallet (shamir)" + reset__title_group_threshold = 590, // "Group threshold" + reset__title_number_of_groups = 591, // "Number of groups" + reset__title_number_of_shares = 592, // "Number of shares" + reset__title_set_group_threshold = 593, // "Set group threshold" + reset__title_set_number_of_groups = 594, // "Set number of groups" + reset__title_set_number_of_shares = 595, // "Set number of shares" + reset__title_set_threshold = 596, // "Set threshold" reset__to_form_group_template = 597, // "to form Group {0}." reset__tos_link = 598, // "trezor.io/tos" reset__total_number_of_shares_in_group_template = 599, // "Set the total number of shares in Group {0}." @@ -898,13 +898,13 @@ pub enum TranslatedString { rotation__east = 608, // "east" rotation__north = 609, // "north" rotation__south = 610, // "south" - rotation__title_change = 611, // "CHANGE ROTATION" + rotation__title_change = 611, // "Change rotation" rotation__west = 612, // "west" safety_checks__approve_unsafe_always = 613, // "Trezor will allow you to approve some actions which might be unsafe." safety_checks__approve_unsafe_temporary = 614, // "Trezor will temporarily allow you to approve some actions which might be unsafe." safety_checks__enforce_strict = 615, // "Do you really want to enforce strict safety checks (recommended)?" - safety_checks__title = 616, // "SAFETY CHECKS" - safety_checks__title_safety_override = 617, // "SAFETY OVERRIDE" + safety_checks__title = 616, // "Safety checks" + safety_checks__title_safety_override = 617, // "Safety override" sd_card__all_data_will_be_lost = 618, // "All data on the SD card will be lost." sd_card__card_required = 619, // "SD card required." sd_card__disable = 620, // "Do you really want to remove SD card protection from your device?" @@ -920,25 +920,25 @@ pub enum TranslatedString { sd_card__refresh = 630, // "Do you really want to replace the current SD card secret with a newly generated one?" sd_card__refreshed = 631, // "You have successfully refreshed SD protection." sd_card__restart = 632, // "Do you want to restart Trezor in bootloader mode?" - sd_card__title = 633, // "SD CARD PROTECTION" - sd_card__title_problem = 634, // "SD CARD PROBLEM" + sd_card__title = 633, // "SD card protection" + sd_card__title_problem = 634, // "SD card problem" sd_card__unknown_filesystem = 635, // "Unknown filesystem." sd_card__unplug_and_insert_correct = 636, // "Please unplug the device and insert the correct SD card." sd_card__use_different_card = 637, // "Use a different card or format the SD card to the FAT32 filesystem." sd_card__wanna_format = 638, // "Do you really want to format the SD card?" sd_card__wrong_sd_card = 639, // "Wrong SD card." send__address_path = 640, // "address path" - send__confirm_sending = 641, // "SENDING AMOUNT" + send__confirm_sending = 641, // "Sending amount" send__from_multiple_accounts = 642, // "Sending from multiple accounts." send__including_fee = 643, // "Including fee:" send__maximum_fee = 644, // "Maximum fee:" send__receiving_to_multisig = 645, // "Receiving to a multisig address." - send__title_confirm_sending = 646, // "CONFIRM SENDING" - send__title_joint_transaction = 647, // "JOINT TRANSACTION" - send__title_receiving_to = 648, // "RECEIVING TO" - send__title_sending = 649, // "SENDING" - send__title_sending_amount = 650, // "SENDING AMOUNT" - send__title_sending_to = 651, // "SENDING TO" + send__title_confirm_sending = 646, // "Confirm sending" + send__title_joint_transaction = 647, // "Joint transaction" + send__title_receiving_to = 648, // "Receiving to" + send__title_sending = 649, // "Sending" + send__title_sending_amount = 650, // "Sending amount" + send__title_sending_to = 651, // "Sending to" send__to_the_total_amount = 652, // "To the total amount:" send__total_amount = 653, // "Total amount:" send__transaction_id = 654, // "Transaction ID:" @@ -946,10 +946,10 @@ pub enum TranslatedString { share_words__words_in_order = 656, // " words in order." share_words__wrote_down_all = 657, // "I wrote down all " sign_message__bytes_template = 658, // "{0} Bytes" - sign_message__confirm_address = 659, // "SIGNING ADDRESS" - sign_message__confirm_message = 660, // "CONFIRM MESSAGE" + sign_message__title_confirm_address = 659, // "Signing address" + sign_message__title_confirm_message = 660, // "Confirm message" sign_message__message_size = 661, // "Message size:" - sign_message__verify_address = 662, // "VERIFY ADDRESS" + sign_message__title_verify_address = 662, // "Verify address" #[cfg(feature = "universal_fw")] solana__account_index = 663, // "Account index" #[cfg(feature = "universal_fw")] @@ -1152,11 +1152,11 @@ pub enum TranslatedString { #[cfg(feature = "universal_fw")] u2f__set_template = 768, // "Set the U2F counter to {0}?" #[cfg(feature = "universal_fw")] - u2f__title_get = 769, // "GET U2F COUNTER" + u2f__title_get = 769, // "Get U2F counter" #[cfg(feature = "universal_fw")] - u2f__title_set = 770, // "SET U2F COUNTER" + u2f__title_set = 770, // "Set U2F counter" wipe__info = 771, // "All data will be erased." - wipe__title = 772, // "WIPE DEVICE" + wipe__title = 772, // "Wipe device" wipe__want_to_wipe = 773, // "Do you really want to wipe the device?\n" wipe_code__change = 774, // "Change wipe code?" wipe_code__changed = 775, // "Wipe code changed." @@ -1169,13 +1169,13 @@ pub enum TranslatedString { wipe_code__mismatch = 782, // "The wipe codes you entered do not match." wipe_code__reenter = 783, // "Re-enter wipe code" wipe_code__reenter_to_confirm = 784, // "Please re-enter wipe code to confirm." - wipe_code__title_check = 785, // "CHECK WIPE CODE" - wipe_code__title_invalid = 786, // "INVALID WIPE CODE" - wipe_code__title_settings = 787, // "WIPE CODE SETTINGS" + wipe_code__title_check = 785, // "Check wipe code" + wipe_code__title_invalid = 786, // "Invalid wipe code" + wipe_code__title_settings = 787, // "Wipe code settings" wipe_code__turn_off = 788, // "Turn off wipe code protection?" wipe_code__turn_on = 789, // "Turn on wipe code protection?" wipe_code__wipe_code_mismatch = 790, // "Wipe code mismatch" - word_count__title = 791, // "NUMBER OF WORDS" + word_count__title = 791, // "Number of words" words__account = 792, // "Account" words__account_colon = 793, // "Account:" words__address = 794, // "Address" @@ -1200,43 +1200,43 @@ pub enum TranslatedString { words__please_check_again = 813, // "Please check again" words__please_try_again = 814, // "Please try again" words__really_wanna = 815, // "Do you really want to" - words__recipient = 816, // "Recipient" + words__title_recipient = 816, // "Recipient" words__sign = 817, // "Sign" words__signer = 818, // "Signer" - words__title_check = 819, // "CHECK" - words__title_group = 820, // "GROUP" - words__title_information = 821, // "INFORMATION" - words__title_remember = 822, // "REMEMBER" - words__title_share = 823, // "SHARE" - words__title_shares = 824, // "SHARES" - words__title_success = 825, // "SUCCESS" - words__title_summary = 826, // "SUMMARY" - words__title_threshold = 827, // "THRESHOLD" + words__title_check = 819, // "Check" + words__title_group = 820, // "Group" + words__title_information = 821, // "Information" + words__title_remember = 822, // "Remember" + words__title_share = 823, // "Share" + words__title_shares = 824, // "Shares" + words__title_success = 825, // "Success" + words__title_summary = 826, // "Summary" + words__title_threshold = 827, // "Threshold" words__unknown = 828, // "Unknown" words__warning = 829, // "Warning" words__writable = 830, // "Writable" words__yes = 831, // "Yes" reboot_to_bootloader__just_a_moment = 832, // "Just a moment..." - inputs__previous = 833, // "PREVIOUS" + inputs__previous = 833, // "Previous" #[cfg(feature = "universal_fw")] - ethereum__staking_claim = 834, // "CLAIM" + ethereum__staking_title_claim = 834, // "Claim" #[cfg(feature = "universal_fw")] - ethereum__staking_claim_address = 835, // "CLAIM ADDRESS" + ethereum__staking_title_claim_address = 835, // "Claim address" #[cfg(feature = "universal_fw")] ethereum__staking_claim_intro = 836, // "Claim ETH from Everstake?" #[cfg(feature = "universal_fw")] - ethereum__staking_stake = 837, // "STAKE" + ethereum__staking_title_stake = 837, // "Stake" #[cfg(feature = "universal_fw")] - ethereum__staking_stake_address = 838, // "STAKE ADDRESS" + ethereum__staking_title_stake_address = 838, // "Stake address" #[cfg(feature = "universal_fw")] ethereum__staking_stake_intro = 839, // "Stake ETH on Everstake?" #[cfg(feature = "universal_fw")] - ethereum__staking_unstake = 840, // "UNSTAKE" + ethereum__staking_title_unstake = 840, // "Unstake" #[cfg(feature = "universal_fw")] ethereum__staking_unstake_intro = 841, // "Unstake ETH from Everstake?" - storage_msg__starting = 842, // "STARTING UP" - storage_msg__verifying_pin = 843, // "VERIFYING PIN" - storage_msg__wrong_pin = 844, // "WRONG PIN" + storage_msg__title_starting = 842, // "Starting up" + storage_msg__title_verifying_pin = 843, // "Verifying pin" + storage_msg__title_wrong_pin = 844, // "Wrong pin" } impl TranslatedString { @@ -1248,25 +1248,25 @@ impl TranslatedString { Self::addr_mismatch__support_url => "trezor.io/support", Self::addr_mismatch__wrong_derivation_path => "Wrong derivation path for selected account.", Self::addr_mismatch__xpub_mismatch => "XPUB mismatch?", - Self::address__public_key => "Public key", - Self::address__title_cosigner => "COSIGNER", - Self::address__title_receive_address => "RECEIVE ADDRESS", - Self::address__title_yours => "YOURS", + Self::address__title_public_key => "Public key", + Self::address__title_cosigner => "Cosigner", + Self::address__title_receive_address => "Receive address", + Self::address__title_yours => "Yours", Self::address_details__derivation_path => "Derivation path:", - Self::address_details__title_receive_address => "RECEIVE ADDRESS", - Self::address_details__title_receiving_to => "RECEIVING TO", + Self::address_details__title_receive_address => "Receive address", + Self::address_details__title_receiving_to => "Receiving to", Self::authenticate__confirm_template => "Allow connected computer to confirm your {0} is genuine?", Self::authenticate__header => "Authenticate device", Self::auto_lock__change_template => "Auto-lock your Trezor after {0} of inactivity?", - Self::auto_lock__title => "AUTO-LOCK DELAY", + Self::auto_lock__title => "Auto-lock delay", Self::backup__can_back_up_anytime => "You can back up your Trezor once, at any time.", Self::backup__it_should_be_backed_up => "You should back up your new wallet right now.", Self::backup__it_should_be_backed_up_now => "It should be backed up now!", Self::backup__new_wallet_created => "New wallet created.\n", Self::backup__new_wallet_successfully_created => "New wallet created successfully.", Self::backup__recover_anytime => "You can use your backup to recover your wallet at any time.", - Self::backup__title_backup_wallet => "BACK UP WALLET", - Self::backup__title_skip => "SKIP BACKUP", + Self::backup__title_backup_wallet => "Back up wallet", + Self::backup__title_skip => "Skip backup", Self::backup__want_to_skip => "Are you sure you want to skip the backup?", #[cfg(feature = "universal_fw")] Self::binance__buy => "Buy", @@ -1304,59 +1304,59 @@ impl TranslatedString { Self::bitcoin__new_fee_rate => "New fee rate:", Self::bitcoin__simple_send_of => "Simple send of", Self::bitcoin__ticket_amount => "Ticket amount:", - Self::bitcoin__title_confirm_details => "CONFIRM DETAILS", - Self::bitcoin__title_finalize_transaction => "FINALIZE TRANSACTION", - Self::bitcoin__title_high_mining_fee => "HIGH MINING FEE", - Self::bitcoin__title_meld_transaction => "MELD TRANSACTIONS", - Self::bitcoin__title_modify_amount => "MODIFY AMOUNT", - Self::bitcoin__title_payjoin => "PAYJOIN", - Self::bitcoin__title_proof_of_ownership => "PROOF OF OWNERSHIP", - Self::bitcoin__title_purchase_ticket => "PURCHASE TICKET", - Self::bitcoin__title_update_transaction => "UPDATE TRANSACTION", + Self::bitcoin__title_confirm_details => "Confirm details", + Self::bitcoin__title_finalize_transaction => "Finalize transaction", + Self::bitcoin__title_high_mining_fee => "High mining fee", + Self::bitcoin__title_meld_transaction => "Meld transactions", + Self::bitcoin__title_modify_amount => "Modify amount", + Self::bitcoin__title_payjoin => "Payjoin", + Self::bitcoin__title_proof_of_ownership => "Proof of ownership", + Self::bitcoin__title_purchase_ticket => "Purchase ticket", + Self::bitcoin__title_update_transaction => "Update transaction", Self::bitcoin__unknown_path => "Unknown path", Self::bitcoin__unknown_transaction => "Unknown transaction", Self::bitcoin__unusually_high_fee => "Unusually high fee.", Self::bitcoin__unverified_external_inputs => "The transaction contains unverified external inputs.", Self::bitcoin__valid_signature => "The signature is valid.", Self::bitcoin__voting_rights => "Voting rights to:", - Self::buttons__abort => "ABORT", - Self::buttons__access => "ACCESS", - Self::buttons__again => "AGAIN", - Self::buttons__allow => "ALLOW", - Self::buttons__back => "BACK", - Self::buttons__back_up => "BACK UP", - Self::buttons__cancel => "CANCEL", - Self::buttons__change => "CHANGE", - Self::buttons__check => "CHECK", - Self::buttons__check_again => "CHECK AGAIN", - Self::buttons__close => "CLOSE", - Self::buttons__confirm => "CONFIRM", - Self::buttons__continue => "CONTINUE", - Self::buttons__details => "DETAILS", - Self::buttons__enable => "ENABLE", - Self::buttons__enter => "ENTER", - Self::buttons__enter_share => "ENTER SHARE", - Self::buttons__export => "EXPORT", - Self::buttons__format => "FORMAT", - Self::buttons__go_back => "GO BACK", - Self::buttons__hold_to_confirm => "HOLD TO CONFIRM", - Self::buttons__info => "INFO", - Self::buttons__install => "INSTALL", - Self::buttons__more_info => "MORE INFO", - Self::buttons__ok_i_understand => "OK, I UNDERSTAND", - Self::buttons__purchase => "PURCHASE", - Self::buttons__quit => "QUIT", - Self::buttons__restart => "RESTART", - Self::buttons__retry => "RETRY", - Self::buttons__select => "SELECT", - Self::buttons__set => "SET", - Self::buttons__show_all => "SHOW ALL", - Self::buttons__show_details => "SHOW DETAILS", - Self::buttons__show_words => "SHOW WORDS", - Self::buttons__skip => "SKIP", - Self::buttons__try_again => "TRY AGAIN", - Self::buttons__turn_off => "TURN OFF", - Self::buttons__turn_on => "TURN ON", + Self::buttons__abort => "Abort", + Self::buttons__access => "Access", + Self::buttons__again => "Again", + Self::buttons__allow => "Allow", + Self::buttons__back => "Back", + Self::buttons__back_up => "Back up", + Self::buttons__cancel => "Cancel", + Self::buttons__change => "Change", + Self::buttons__check => "Check", + Self::buttons__check_again => "Check again", + Self::buttons__close => "Close", + Self::buttons__confirm => "Confirm", + Self::buttons__continue => "Continue", + Self::buttons__details => "Details", + Self::buttons__enable => "Enable", + Self::buttons__enter => "Enter", + Self::buttons__enter_share => "Enter share", + Self::buttons__export => "Export", + Self::buttons__format => "Format", + Self::buttons__go_back => "Go back", + Self::buttons__hold_to_confirm => "Hold to confirm", + Self::buttons__info => "Info", + Self::buttons__install => "Install", + Self::buttons__more_info => "More info", + Self::buttons__ok_i_understand => "Ok, i understand", + Self::buttons__purchase => "Purchase", + Self::buttons__quit => "Quit", + Self::buttons__restart => "Restart", + Self::buttons__retry => "Retry", + Self::buttons__select => "Select", + Self::buttons__set => "Set", + Self::buttons__show_all => "Show all", + Self::buttons__show_details => "Show details", + Self::buttons__show_words => "Show words", + Self::buttons__skip => "Skip", + Self::buttons__try_again => "Try again", + Self::buttons__turn_off => "Turn off", + Self::buttons__turn_on => "Turn on", #[cfg(feature = "universal_fw")] Self::cardano__addr_base => "Base", #[cfg(feature = "universal_fw")] @@ -1579,21 +1579,21 @@ impl TranslatedString { Self::coinjoin__do_not_disconnect => "Do not disconnect your Trezor!", Self::coinjoin__max_mining_fee => "Max mining fee", Self::coinjoin__max_rounds => "Max rounds", - Self::coinjoin__title => "AUTHORIZE COINJOIN", - Self::coinjoin__title_do_not_disconnect => "DO NOT DISCONNECT YOUR TREZOR!", - Self::coinjoin__title_progress => "COINJOIN IN PROGRESS", + Self::coinjoin__title => "Authorize coinjoin", + Self::coinjoin__title_do_not_disconnect => "Do not disconnect your trezor!", + Self::coinjoin__title_progress => "Coinjoin in progress", Self::coinjoin__waiting_for_others => "Waiting for others", Self::confirm_total__fee_rate => "Fee rate:", Self::confirm_total__sending_from_account => "Sending from account:", - Self::confirm_total__title_fee => "FEE INFORMATION", - Self::confirm_total__title_sending_from => "SENDING FROM", + Self::confirm_total__title_fee => "Fee information", + Self::confirm_total__title_sending_from => "Sending from", Self::debug__loading_seed => "Loading seed", Self::debug__loading_seed_not_recommended => "Loading private seed is not recommended.", Self::device_name__change_template => "Change device name to {0}?", - Self::device_name__title => "DEVICE NAME", + Self::device_name__title => "Device name", Self::entropy__send => "Do you really want to send entropy?", - Self::entropy__title => "INTERNAL ENTROPY", - Self::entropy__title_confirm => "CONFIRM ENTROPY", + Self::entropy__title => "Internal entropy", + Self::entropy__title_confirm => "Confirm entropy", #[cfg(feature = "universal_fw")] Self::eos__about_to_sign_template => "You are about to sign {0}.", #[cfg(feature = "universal_fw")] @@ -1705,17 +1705,17 @@ impl TranslatedString { #[cfg(feature = "universal_fw")] Self::ethereum__sign_eip712 => "Really sign EIP-712 typed data?", #[cfg(feature = "universal_fw")] - Self::ethereum__title_confirm_data => "CONFIRM DATA", + Self::ethereum__title_confirm_data => "Confirm data", #[cfg(feature = "universal_fw")] - Self::ethereum__title_confirm_domain => "CONFIRM DOMAIN", + Self::ethereum__title_confirm_domain => "Confirm domain", #[cfg(feature = "universal_fw")] - Self::ethereum__title_confirm_message => "CONFIRM MESSAGE", + Self::ethereum__title_confirm_message => "Confirm message", #[cfg(feature = "universal_fw")] - Self::ethereum__title_confirm_struct => "CONFIRM STRUCT", + Self::ethereum__title_confirm_struct => "Confirm struct", #[cfg(feature = "universal_fw")] - Self::ethereum__title_confirm_typed_data => "CONFIRM TYPED DATA", + Self::ethereum__title_confirm_typed_data => "Confirm typed data", #[cfg(feature = "universal_fw")] - Self::ethereum__title_signing_address => "SIGNING ADDRESS", + Self::ethereum__title_signing_address => "Signing address", #[cfg(feature = "universal_fw")] Self::ethereum__units_template => "{0} units", #[cfg(feature = "universal_fw")] @@ -1724,7 +1724,7 @@ impl TranslatedString { Self::ethereum__valid_signature => "The signature is valid.", Self::experimental_mode__enable => "Enable experimental features?", Self::experimental_mode__only_for_dev => "Only for development and beta testing!", - Self::experimental_mode__title => "EXPERIMENTAL MODE", + Self::experimental_mode__title => "Experimental mode", #[cfg(feature = "universal_fw")] Self::fido__already_registered => "Already registered", #[cfg(feature = "universal_fw")] @@ -1746,70 +1746,70 @@ impl TranslatedString { #[cfg(feature = "universal_fw")] Self::fido__please_enable_pin_protection => "Please enable PIN protection.", #[cfg(feature = "universal_fw")] - Self::fido__title_authenticate => "FIDO2 AUTHENTICATE", + Self::fido__title_authenticate => "Fido2 authenticate", #[cfg(feature = "universal_fw")] - Self::fido__title_import_credential => "IMPORT CREDENTIAL", + Self::fido__title_import_credential => "Import credential", #[cfg(feature = "universal_fw")] - Self::fido__title_list_credentials => "LIST CREDENTIALS", + Self::fido__title_list_credentials => "List credentials", #[cfg(feature = "universal_fw")] - Self::fido__title_register => "FIDO2 REGISTER", + Self::fido__title_register => "Fido2 register", #[cfg(feature = "universal_fw")] - Self::fido__title_remove_credential => "REMOVE CREDENTIAL", + Self::fido__title_remove_credential => "Remove credential", #[cfg(feature = "universal_fw")] - Self::fido__title_reset => "FIDO2 RESET", + Self::fido__title_reset => "FIDO2 reset", #[cfg(feature = "universal_fw")] - Self::fido__title_u2f_auth => "U2F AUTHENTICATE", + Self::fido__title_u2f_auth => "U2F authenticate", #[cfg(feature = "universal_fw")] - Self::fido__title_u2f_register => "U2F REGISTER", + Self::fido__title_u2f_register => "U2F register", #[cfg(feature = "universal_fw")] - Self::fido__title_verify_user => "FIDO2 VERIFY USER", + Self::fido__title_verify_user => "FIDO2 verify user", #[cfg(feature = "universal_fw")] Self::fido__unable_to_verify_user => "Unable to verify user.", #[cfg(feature = "universal_fw")] Self::fido__wanna_erase_credentials => "Do you really want to erase all credentials?", - Self::firmware_update__title => "UPDATE FIRMWARE", - Self::firmware_update__title_fingerprint => "FW FINGERPRINT", + Self::firmware_update__title => "Update firmware", + Self::firmware_update__title_fingerprint => "FW fingerprint", Self::homescreen__click_to_connect => "Click to Connect", Self::homescreen__click_to_unlock => "Click to Unlock", - Self::homescreen__title_backup_failed => "BACKUP FAILED", - Self::homescreen__title_backup_needed => "BACKUP NEEDED", - Self::homescreen__title_coinjoin_authorized => "COINJOIN AUTHORIZED", - Self::homescreen__title_experimental_mode => "EXPERIMENTAL MODE", - Self::homescreen__title_no_usb_connection => "NO USB CONNECTION", - Self::homescreen__title_pin_not_set => "PIN NOT SET", - Self::homescreen__title_seedless => "SEEDLESS", - Self::homescreen__title_set => "CHANGE HOMESCREEN?", - Self::inputs__back => "BACK", - Self::inputs__cancel => "CANCEL", - Self::inputs__delete => "DELETE", - Self::inputs__enter => "ENTER", - Self::inputs__return => "RETURN", - Self::inputs__show => "SHOW", - Self::inputs__space => "SPACE", - Self::joint__title => "JOINT TRANSACTION", + Self::homescreen__title_backup_failed => "Backup failed", + Self::homescreen__title_backup_needed => "Backup needed", + Self::homescreen__title_coinjoin_authorized => "Coinjoin authorized", + Self::homescreen__title_experimental_mode => "Experimental mode", + Self::homescreen__title_no_usb_connection => "No USB connection", + Self::homescreen__title_pin_not_set => "PIN not set", + Self::homescreen__title_seedless => "Seedless", + Self::homescreen__title_set => "Change homescreen?", + Self::inputs__back => "Back", + Self::inputs__cancel => "Cancel", + Self::inputs__delete => "Delete", + Self::inputs__enter => "Enter", + Self::inputs__return => "Return", + Self::inputs__show => "Show", + Self::inputs__space => "Space", + Self::joint__title => "Joint transaction", Self::joint__to_the_total_amount => "To the total amount:", Self::joint__you_are_contributing => "You are contributing:", Self::language__change_to_template => "Change language to {0}?", Self::language__changed => "Language changed successfully", Self::language__progress => "Changing language", - Self::language__title => "LANGUAGE SETTINGS", + Self::language__title => "Language settings", Self::lockscreen__tap_to_connect => "Tap to connect", Self::lockscreen__tap_to_unlock => "Tap to unlock", - Self::lockscreen__title_locked => "LOCKED", - Self::lockscreen__title_not_connected => "NOT CONNECTED", + Self::lockscreen__title_locked => "Locked", + Self::lockscreen__title_not_connected => "Not connected", Self::misc__decrypt_value => "Decrypt value", Self::misc__encrypt_value => "Encrypt value", - Self::misc__title_suite_labeling => "SUITE LABELING", + Self::misc__title_suite_labeling => "Suite labeling", Self::modify_amount__decrease_amount => "Decrease amount by:", Self::modify_amount__increase_amount => "Increase amount by:", Self::modify_amount__new_amount => "New amount:", - Self::modify_amount__title => "MODIFY AMOUNT", + Self::modify_amount__title => "Modify amount", Self::modify_fee__decrease_fee => "Decrease fee by:", Self::modify_fee__fee_rate => "Fee rate:", Self::modify_fee__increase_fee => "Increase fee by:", Self::modify_fee__new_transaction_fee => "New transaction fee:", Self::modify_fee__no_change => "Fee did not change.\n", - Self::modify_fee__title => "MODIFY FEE", + Self::modify_fee__title => "Modify fee", Self::modify_fee__transaction_fee => "Transaction fee:", #[cfg(feature = "universal_fw")] Self::monero__confirm_export => "Confirm export", @@ -1957,11 +1957,11 @@ impl TranslatedString { Self::passphrase__next_screen_will_show_passphrase => "Next screen will show the passphrase.", Self::passphrase__please_enter => "Please enter your passphrase.", Self::passphrase__revoke_on_device => "Do you want to revoke the passphrase on device setting?", - Self::passphrase__title_confirm => "CONFIRM PASSPHRASE", - Self::passphrase__title_enter => "ENTER PASSPHRASE", - Self::passphrase__title_hide => "HIDE PASSPHRASE", - Self::passphrase__title_settings => "PASSPHRASE SETTINGS", - Self::passphrase__title_source => "PASSPHRASE SOURCE", + Self::passphrase__title_confirm => "Confirm passphrase", + Self::passphrase__title_enter => "Enter passphrase", + Self::passphrase__title_hide => "Hide passphrase", + Self::passphrase__title_settings => "Passphrase settings", + Self::passphrase__title_source => "Passphrase source", Self::passphrase__turn_off => "Turn off passphrase protection?", Self::passphrase__turn_on => "Turn on passphrase protection?", Self::pin__change => "Change PIN?", @@ -1982,9 +1982,9 @@ impl TranslatedString { Self::pin__reenter_new => "Re-enter new PIN", Self::pin__reenter_to_confirm => "Please re-enter PIN to confirm.", Self::pin__should_be_long => "PIN should be 4-50 digits long.", - Self::pin__title_check_pin => "CHECK PIN", - Self::pin__title_settings => "PIN SETTINGS", - Self::pin__title_wrong_pin => "WRONG PIN", + Self::pin__title_check_pin => "Check PIN", + Self::pin__title_settings => "PIN settings", + Self::pin__title_wrong_pin => "Wrong PIN", Self::pin__tries_left => "tries left", Self::pin__turn_off => "Are you sure you want to turn off PIN protection?", Self::pin__turn_on => "Turn on PIN protection?", @@ -2003,14 +2003,14 @@ impl TranslatedString { Self::progress__loading_transaction => "Loading transaction...", Self::progress__locking_device => "Locking the device...", Self::progress__one_second_left => "1 second left", - Self::progress__please_wait => "PLEASE WAIT", - Self::storage_msg__processing => "PROCESSING", + Self::progress__title_please_wait => "Please wait", + Self::storage_msg__title_processing => "Processing", Self::progress__refreshing => "Refreshing...", Self::progress__signing_transaction => "Signing transaction...", Self::progress__syncing => "Syncing...", Self::progress__x_seconds_left_template => "{0} seconds left", Self::reboot_to_bootloader__restart => "Trezor will restart in bootloader mode.", - Self::reboot_to_bootloader__title => "GO TO BOOTLOADER", + Self::reboot_to_bootloader__title => "Go to bootloader", Self::reboot_to_bootloader__version_by_template => "Firmware version {0}\nby {1}", Self::recovery__cancel_dry_run => "Cancel backup check", Self::recovery__check_dry_run => "Check your backup?", @@ -2035,18 +2035,18 @@ impl TranslatedString { Self::recovery__share_already_entered => "Share already entered", Self::recovery__share_from_another_shamir => "You have entered a share from another Shamir Backup.", Self::recovery__share_num_template => "Share {0}", - Self::recovery__title => "RECOVER WALLET", - Self::recovery__title_cancel_dry_run => "CANCEL BACKUP CHECK", - Self::recovery__title_cancel_recovery => "CANCEL RECOVERY", - Self::recovery__title_dry_run => "BACKUP CHECK", - Self::recovery__title_recover => "RECOVER WALLET", - Self::recovery__title_remaining_shares => "REMAINING SHARES", + Self::recovery__title => "Recover wallet", + Self::recovery__title_cancel_dry_run => "Cancel backup check", + Self::recovery__title_cancel_recovery => "Cancel recovery", + Self::recovery__title_dry_run => "Backup check", + Self::recovery__title_recover => "Recover wallet", + Self::recovery__title_remaining_shares => "Remaining shares", Self::recovery__type_word_x_of_y_template => "Type word {0} of {1}", Self::recovery__wallet_recovered => "Wallet recovered successfully", Self::recovery__wanna_cancel_dry_run => "Are you sure you want to cancel the backup check?", Self::recovery__wanna_cancel_recovery => "Are you sure you want to cancel the recovery process?", Self::recovery__word_count_template => "({0} words)", - Self::recovery__word_x_of_y_template => "WORD {0} OF {1}", + Self::recovery__word_x_of_y_title_template => "Word {0} of {1}", Self::recovery__x_more_items_starting_template_plural => "{count} more {plural} starting", Self::recovery__x_more_shares_needed_template_plural => "{count} more {plural} needed.", Self::recovery__x_of_y_entered_template => "{0} of {1} shares entered successfully.", @@ -2054,13 +2054,13 @@ impl TranslatedString { Self::reset__advanced_group_threshold_info => "The group threshold specifies the number of groups required to recover your wallet.", Self::reset__all_x_of_y_template => "all {0} of {1} shares", Self::reset__any_x_of_y_template => "any {0} of {1} shares", - Self::reset__button_create => "CREATE WALLET", - Self::reset__button_recover => "RECOVER WALLET", + Self::reset__button_create => "Create wallet", + Self::reset__button_recover => "Recover wallet", Self::reset__by_continuing => "By continuing you agree to Trezor Company's terms and conditions.", - Self::reset__check_backup_title => "CHECK BACKUP", - Self::reset__check_group_share_title_template => "CHECK G{0} - SHARE {1}", - Self::reset__check_seed_title => "CHECK SEED", - Self::reset__check_share_title_template => "CHECK SHARE #{0}", + Self::reset__check_backup_title => "Check backup", + Self::reset__check_group_share_title_template => "Check g{0} - share {1}", + Self::reset__check_seed_title => "Check seed", + Self::reset__check_share_title_template => "Check share #{0}", Self::reset__continue_with_next_share => "Continue with the next share.", Self::reset__continue_with_share_template => "Continue with share #{0}.", Self::reset__finished_verifying_group_template => "You have finished verifying your recovery shares for group {0}.", @@ -2069,7 +2069,7 @@ impl TranslatedString { Self::reset__group_description => "A group is made up of recovery shares.", Self::reset__group_info => "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds.", Self::reset__group_share_checked_successfully_template => "Group {0} - Share {1} checked successfully.", - Self::reset__group_share_title_template => "GROUP {0} - SHARE {1}", + Self::reset__group_share_title_template => "Group {0} - share {1}", Self::reset__more_info_at => "More info at", Self::reset__need_all_share_template => "For recovery you need all {0} of the shares.", Self::reset__need_any_share_template => "For recovery you need any {0} of the shares.", @@ -2083,15 +2083,15 @@ impl TranslatedString { Self::reset__number_of_shares_info => "= total number of unique word lists used for wallet backup.", Self::reset__one_share => "1 share", Self::reset__only_one_share_will_be_created => "Only one share will be created.", - Self::reset__recovery_seed_title => "RECOVERY SEED", - Self::reset__recovery_share_title_template => "RECOVERY SHARE #{0}", + Self::reset__recovery_seed_title => "Recovery seed", + Self::reset__recovery_share_title_template => "Recovery share #{0}", Self::reset__required_number_of_groups => "The required number of groups for recovery.", Self::reset__select_correct_word => "Select the correct word for each position.", - Self::reset__select_word_template => "SELECT {0} WORD", + Self::reset__select_word_title_template => "Select {0} word", Self::reset__select_word_x_of_y_template => "Select word {0} of {1}:", Self::reset__set_it_to_count_template => "Set it to {0} and you will need ", Self::reset__share_checked_successfully_template => "Recovery share #{0} checked successfully.", - Self::reset__share_words_title => "STANDARD BACKUP", + Self::reset__share_words_title => "Standard backup", Self::reset__slip39_checklist_num_groups => "Number of groups", Self::reset__slip39_checklist_num_shares => "Number of shares", Self::reset__slip39_checklist_set_num_groups => "Set number of groups", @@ -2099,21 +2099,21 @@ impl TranslatedString { Self::reset__slip39_checklist_set_sizes => "Set sizes and thresholds", Self::reset__slip39_checklist_set_sizes_longer => "Set size and threshold for each group", Self::reset__slip39_checklist_set_threshold => "Set threshold", - Self::reset__slip39_checklist_title => "BACKUP CHECKLIST", + Self::reset__slip39_checklist_title => "Backup checklist", Self::reset__slip39_checklist_write_down => "Write down and check all shares", Self::reset__slip39_checklist_write_down_recovery => "Write down and check all recovery shares", Self::reset__the_threshold_sets_the_number_of_shares => "The threshold sets the number of shares ", Self::reset__threshold_info => "= minimum number of unique word lists used for recovery.", - Self::reset__title_backup_is_done => "BACKUP IS DONE", - Self::reset__title_create_wallet => "CREATE WALLET", - Self::reset__title_create_wallet_shamir => "CREATE WALLET (SHAMIR)", - Self::reset__title_group_threshold => "GROUP THRESHOLD", - Self::reset__title_number_of_groups => "NUMBER OF GROUPS", - Self::reset__title_number_of_shares => "NUMBER OF SHARES", - Self::reset__title_set_group_threshold => "SET GROUP THRESHOLD", - Self::reset__title_set_number_of_groups => "SET NUMBER OF GROUPS", - Self::reset__title_set_number_of_shares => "SET NUMBER OF SHARES", - Self::reset__title_set_threshold => "SET THRESHOLD", + Self::reset__title_backup_is_done => "Backup is done", + Self::reset__title_create_wallet => "Create wallet", + Self::reset__title_create_wallet_shamir => "Create wallet (shamir)", + Self::reset__title_group_threshold => "Group threshold", + Self::reset__title_number_of_groups => "Number of groups", + Self::reset__title_number_of_shares => "Number of shares", + Self::reset__title_set_group_threshold => "Set group threshold", + Self::reset__title_set_number_of_groups => "Set number of groups", + Self::reset__title_set_number_of_shares => "Set number of shares", + Self::reset__title_set_threshold => "Set threshold", Self::reset__to_form_group_template => "to form Group {0}.", Self::reset__tos_link => "trezor.io/tos", Self::reset__total_number_of_shares_in_group_template => "Set the total number of shares in Group {0}.", @@ -2130,13 +2130,13 @@ impl TranslatedString { Self::rotation__east => "east", Self::rotation__north => "north", Self::rotation__south => "south", - Self::rotation__title_change => "CHANGE ROTATION", + Self::rotation__title_change => "Change rotation", Self::rotation__west => "west", Self::safety_checks__approve_unsafe_always => "Trezor will allow you to approve some actions which might be unsafe.", Self::safety_checks__approve_unsafe_temporary => "Trezor will temporarily allow you to approve some actions which might be unsafe.", Self::safety_checks__enforce_strict => "Do you really want to enforce strict safety checks (recommended)?", - Self::safety_checks__title => "SAFETY CHECKS", - Self::safety_checks__title_safety_override => "SAFETY OVERRIDE", + Self::safety_checks__title => "Safety checks", + Self::safety_checks__title_safety_override => "Safety override", Self::sd_card__all_data_will_be_lost => "All data on the SD card will be lost.", Self::sd_card__card_required => "SD card required.", Self::sd_card__disable => "Do you really want to remove SD card protection from your device?", @@ -2152,25 +2152,25 @@ impl TranslatedString { Self::sd_card__refresh => "Do you really want to replace the current SD card secret with a newly generated one?", Self::sd_card__refreshed => "You have successfully refreshed SD protection.", Self::sd_card__restart => "Do you want to restart Trezor in bootloader mode?", - Self::sd_card__title => "SD CARD PROTECTION", - Self::sd_card__title_problem => "SD CARD PROBLEM", + Self::sd_card__title => "SD card protection", + Self::sd_card__title_problem => "SD card problem", Self::sd_card__unknown_filesystem => "Unknown filesystem.", Self::sd_card__unplug_and_insert_correct => "Please unplug the device and insert the correct SD card.", Self::sd_card__use_different_card => "Use a different card or format the SD card to the FAT32 filesystem.", Self::sd_card__wanna_format => "Do you really want to format the SD card?", Self::sd_card__wrong_sd_card => "Wrong SD card.", Self::send__address_path => "address path", - Self::send__confirm_sending => "SENDING AMOUNT", + Self::send__confirm_sending => "Sending amount", Self::send__from_multiple_accounts => "Sending from multiple accounts.", Self::send__including_fee => "Including fee:", Self::send__maximum_fee => "Maximum fee:", Self::send__receiving_to_multisig => "Receiving to a multisig address.", - Self::send__title_confirm_sending => "CONFIRM SENDING", - Self::send__title_joint_transaction => "JOINT TRANSACTION", - Self::send__title_receiving_to => "RECEIVING TO", - Self::send__title_sending => "SENDING", - Self::send__title_sending_amount => "SENDING AMOUNT", - Self::send__title_sending_to => "SENDING TO", + Self::send__title_confirm_sending => "Confirm sending", + Self::send__title_joint_transaction => "Joint transaction", + Self::send__title_receiving_to => "Receiving to", + Self::send__title_sending => "Sending", + Self::send__title_sending_amount => "Sending amount", + Self::send__title_sending_to => "Sending to", Self::send__to_the_total_amount => "To the total amount:", Self::send__total_amount => "Total amount:", Self::send__transaction_id => "Transaction ID:", @@ -2178,10 +2178,10 @@ impl TranslatedString { Self::share_words__words_in_order => " words in order.", Self::share_words__wrote_down_all => "I wrote down all ", Self::sign_message__bytes_template => "{0} Bytes", - Self::sign_message__confirm_address => "SIGNING ADDRESS", - Self::sign_message__confirm_message => "CONFIRM MESSAGE", + Self::sign_message__title_confirm_address => "Signing address", + Self::sign_message__title_confirm_message => "Confirm message", Self::sign_message__message_size => "Message size:", - Self::sign_message__verify_address => "VERIFY ADDRESS", + Self::sign_message__title_verify_address => "Verify address", #[cfg(feature = "universal_fw")] Self::solana__account_index => "Account index", #[cfg(feature = "universal_fw")] @@ -2384,11 +2384,11 @@ impl TranslatedString { #[cfg(feature = "universal_fw")] Self::u2f__set_template => "Set the U2F counter to {0}?", #[cfg(feature = "universal_fw")] - Self::u2f__title_get => "GET U2F COUNTER", + Self::u2f__title_get => "Get U2F counter", #[cfg(feature = "universal_fw")] - Self::u2f__title_set => "SET U2F COUNTER", + Self::u2f__title_set => "Set U2F counter", Self::wipe__info => "All data will be erased.", - Self::wipe__title => "WIPE DEVICE", + Self::wipe__title => "Wipe device", Self::wipe__want_to_wipe => "Do you really want to wipe the device?\n", Self::wipe_code__change => "Change wipe code?", Self::wipe_code__changed => "Wipe code changed.", @@ -2401,13 +2401,13 @@ impl TranslatedString { Self::wipe_code__mismatch => "The wipe codes you entered do not match.", Self::wipe_code__reenter => "Re-enter wipe code", Self::wipe_code__reenter_to_confirm => "Please re-enter wipe code to confirm.", - Self::wipe_code__title_check => "CHECK WIPE CODE", - Self::wipe_code__title_invalid => "INVALID WIPE CODE", - Self::wipe_code__title_settings => "WIPE CODE SETTINGS", + Self::wipe_code__title_check => "Check wipe code", + Self::wipe_code__title_invalid => "Invalid wipe code", + Self::wipe_code__title_settings => "Wipe code settings", Self::wipe_code__turn_off => "Turn off wipe code protection?", Self::wipe_code__turn_on => "Turn on wipe code protection?", Self::wipe_code__wipe_code_mismatch => "Wipe code mismatch", - Self::word_count__title => "NUMBER OF WORDS", + Self::word_count__title => "Number of words", Self::words__account => "Account", Self::words__account_colon => "Account:", Self::words__address => "Address", @@ -2432,43 +2432,43 @@ impl TranslatedString { Self::words__please_check_again => "Please check again", Self::words__please_try_again => "Please try again", Self::words__really_wanna => "Do you really want to", - Self::words__recipient => "Recipient", + Self::words__title_recipient => "Recipient", Self::words__sign => "Sign", Self::words__signer => "Signer", - Self::words__title_check => "CHECK", - Self::words__title_group => "GROUP", - Self::words__title_information => "INFORMATION", - Self::words__title_remember => "REMEMBER", - Self::words__title_share => "SHARE", - Self::words__title_shares => "SHARES", - Self::words__title_success => "SUCCESS", - Self::words__title_summary => "SUMMARY", - Self::words__title_threshold => "THRESHOLD", + Self::words__title_check => "Check", + Self::words__title_group => "Group", + Self::words__title_information => "Information", + Self::words__title_remember => "Remember", + Self::words__title_share => "Share", + Self::words__title_shares => "Shares", + Self::words__title_success => "Success", + Self::words__title_summary => "Summary", + Self::words__title_threshold => "Threshold", Self::words__unknown => "Unknown", Self::words__warning => "Warning", Self::words__writable => "Writable", Self::words__yes => "Yes", Self::reboot_to_bootloader__just_a_moment => "Just a moment...", - Self::inputs__previous => "PREVIOUS", + Self::inputs__previous => "Previous", #[cfg(feature = "universal_fw")] - Self::ethereum__staking_claim => "CLAIM", + Self::ethereum__staking_title_claim => "Claim", #[cfg(feature = "universal_fw")] - Self::ethereum__staking_claim_address => "CLAIM ADDRESS", + Self::ethereum__staking_title_claim_address => "Claim address", #[cfg(feature = "universal_fw")] Self::ethereum__staking_claim_intro => "Claim ETH from Everstake?", #[cfg(feature = "universal_fw")] - Self::ethereum__staking_stake => "STAKE", + Self::ethereum__staking_title_stake => "Stake", #[cfg(feature = "universal_fw")] - Self::ethereum__staking_stake_address => "STAKE ADDRESS", + Self::ethereum__staking_title_stake_address => "Stake address", #[cfg(feature = "universal_fw")] Self::ethereum__staking_stake_intro => "Stake ETH on Everstake?", #[cfg(feature = "universal_fw")] - Self::ethereum__staking_unstake => "UNSTAKE", + Self::ethereum__staking_title_unstake => "Unstake", #[cfg(feature = "universal_fw")] Self::ethereum__staking_unstake_intro => "Unstake ETH from Everstake?", - Self::storage_msg__starting => "STARTING UP", - Self::storage_msg__verifying_pin => "VERIFYING PIN", - Self::storage_msg__wrong_pin => "WRONG PIN", + Self::storage_msg__title_starting => "Starting up", + Self::storage_msg__title_verifying_pin => "Verifying pin", + Self::storage_msg__title_wrong_pin => "Wrong pin", } } @@ -2481,7 +2481,7 @@ impl TranslatedString { Qstr::MP_QSTR_addr_mismatch__support_url => Some(Self::addr_mismatch__support_url), Qstr::MP_QSTR_addr_mismatch__wrong_derivation_path => Some(Self::addr_mismatch__wrong_derivation_path), Qstr::MP_QSTR_addr_mismatch__xpub_mismatch => Some(Self::addr_mismatch__xpub_mismatch), - Qstr::MP_QSTR_address__public_key => Some(Self::address__public_key), + Qstr::MP_QSTR_address__title_public_key => Some(Self::address__title_public_key), Qstr::MP_QSTR_address__title_cosigner => Some(Self::address__title_cosigner), Qstr::MP_QSTR_address__title_receive_address => Some(Self::address__title_receive_address), Qstr::MP_QSTR_address__title_yours => Some(Self::address__title_yours), @@ -3236,8 +3236,8 @@ impl TranslatedString { Qstr::MP_QSTR_progress__loading_transaction => Some(Self::progress__loading_transaction), Qstr::MP_QSTR_progress__locking_device => Some(Self::progress__locking_device), Qstr::MP_QSTR_progress__one_second_left => Some(Self::progress__one_second_left), - Qstr::MP_QSTR_progress__please_wait => Some(Self::progress__please_wait), - Qstr::MP_QSTR_storage_msg__processing => Some(Self::storage_msg__processing), + Qstr::MP_QSTR_progress__title_please_wait => Some(Self::progress__title_please_wait), + Qstr::MP_QSTR_storage_msg__title_processing => Some(Self::storage_msg__title_processing), Qstr::MP_QSTR_progress__refreshing => Some(Self::progress__refreshing), Qstr::MP_QSTR_progress__signing_transaction => Some(Self::progress__signing_transaction), Qstr::MP_QSTR_progress__syncing => Some(Self::progress__syncing), @@ -3279,7 +3279,7 @@ impl TranslatedString { Qstr::MP_QSTR_recovery__wanna_cancel_dry_run => Some(Self::recovery__wanna_cancel_dry_run), Qstr::MP_QSTR_recovery__wanna_cancel_recovery => Some(Self::recovery__wanna_cancel_recovery), Qstr::MP_QSTR_recovery__word_count_template => Some(Self::recovery__word_count_template), - Qstr::MP_QSTR_recovery__word_x_of_y_template => Some(Self::recovery__word_x_of_y_template), + Qstr::MP_QSTR_recovery__word_x_of_y_title_template => Some(Self::recovery__word_x_of_y_title_template), Qstr::MP_QSTR_recovery__x_more_items_starting_template_plural => Some(Self::recovery__x_more_items_starting_template_plural), Qstr::MP_QSTR_recovery__x_more_shares_needed_template_plural => Some(Self::recovery__x_more_shares_needed_template_plural), Qstr::MP_QSTR_recovery__x_of_y_entered_template => Some(Self::recovery__x_of_y_entered_template), @@ -3320,7 +3320,7 @@ impl TranslatedString { Qstr::MP_QSTR_reset__recovery_share_title_template => Some(Self::reset__recovery_share_title_template), Qstr::MP_QSTR_reset__required_number_of_groups => Some(Self::reset__required_number_of_groups), Qstr::MP_QSTR_reset__select_correct_word => Some(Self::reset__select_correct_word), - Qstr::MP_QSTR_reset__select_word_template => Some(Self::reset__select_word_template), + Qstr::MP_QSTR_reset__select_word_title_template => Some(Self::reset__select_word_title_template), Qstr::MP_QSTR_reset__select_word_x_of_y_template => Some(Self::reset__select_word_x_of_y_template), Qstr::MP_QSTR_reset__set_it_to_count_template => Some(Self::reset__set_it_to_count_template), Qstr::MP_QSTR_reset__share_checked_successfully_template => Some(Self::reset__share_checked_successfully_template), @@ -3411,10 +3411,10 @@ impl TranslatedString { Qstr::MP_QSTR_share_words__words_in_order => Some(Self::share_words__words_in_order), Qstr::MP_QSTR_share_words__wrote_down_all => Some(Self::share_words__wrote_down_all), Qstr::MP_QSTR_sign_message__bytes_template => Some(Self::sign_message__bytes_template), - Qstr::MP_QSTR_sign_message__confirm_address => Some(Self::sign_message__confirm_address), - Qstr::MP_QSTR_sign_message__confirm_message => Some(Self::sign_message__confirm_message), + Qstr::MP_QSTR_sign_message__title_confirm_address => Some(Self::sign_message__title_confirm_address), + Qstr::MP_QSTR_sign_message__title_confirm_message => Some(Self::sign_message__title_confirm_message), Qstr::MP_QSTR_sign_message__message_size => Some(Self::sign_message__message_size), - Qstr::MP_QSTR_sign_message__verify_address => Some(Self::sign_message__verify_address), + Qstr::MP_QSTR_sign_message__title_verify_address => Some(Self::sign_message__title_verify_address), #[cfg(feature = "universal_fw")] Qstr::MP_QSTR_solana__account_index => Some(Self::solana__account_index), #[cfg(feature = "universal_fw")] @@ -3665,7 +3665,7 @@ impl TranslatedString { Qstr::MP_QSTR_words__please_check_again => Some(Self::words__please_check_again), Qstr::MP_QSTR_words__please_try_again => Some(Self::words__please_try_again), Qstr::MP_QSTR_words__really_wanna => Some(Self::words__really_wanna), - Qstr::MP_QSTR_words__recipient => Some(Self::words__recipient), + Qstr::MP_QSTR_words__title_recipient => Some(Self::words__title_recipient), Qstr::MP_QSTR_words__sign => Some(Self::words__sign), Qstr::MP_QSTR_words__signer => Some(Self::words__signer), Qstr::MP_QSTR_words__title_check => Some(Self::words__title_check), @@ -3684,24 +3684,24 @@ impl TranslatedString { Qstr::MP_QSTR_reboot_to_bootloader__just_a_moment => Some(Self::reboot_to_bootloader__just_a_moment), Qstr::MP_QSTR_inputs__previous => Some(Self::inputs__previous), #[cfg(feature = "universal_fw")] - Qstr::MP_QSTR_ethereum__staking_claim => Some(Self::ethereum__staking_claim), + Qstr::MP_QSTR_ethereum__staking_title_claim => Some(Self::ethereum__staking_title_claim), #[cfg(feature = "universal_fw")] - Qstr::MP_QSTR_ethereum__staking_claim_address => Some(Self::ethereum__staking_claim_address), + Qstr::MP_QSTR_ethereum__staking_title_claim_address => Some(Self::ethereum__staking_title_claim_address), #[cfg(feature = "universal_fw")] Qstr::MP_QSTR_ethereum__staking_claim_intro => Some(Self::ethereum__staking_claim_intro), #[cfg(feature = "universal_fw")] - Qstr::MP_QSTR_ethereum__staking_stake => Some(Self::ethereum__staking_stake), + Qstr::MP_QSTR_ethereum__staking_title_stake => Some(Self::ethereum__staking_title_stake), #[cfg(feature = "universal_fw")] - Qstr::MP_QSTR_ethereum__staking_stake_address => Some(Self::ethereum__staking_stake_address), + Qstr::MP_QSTR_ethereum__staking_title_stake_address => Some(Self::ethereum__staking_title_stake_address), #[cfg(feature = "universal_fw")] Qstr::MP_QSTR_ethereum__staking_stake_intro => Some(Self::ethereum__staking_stake_intro), #[cfg(feature = "universal_fw")] - Qstr::MP_QSTR_ethereum__staking_unstake => Some(Self::ethereum__staking_unstake), + Qstr::MP_QSTR_ethereum__staking_title_unstake => Some(Self::ethereum__staking_title_unstake), #[cfg(feature = "universal_fw")] Qstr::MP_QSTR_ethereum__staking_unstake_intro => Some(Self::ethereum__staking_unstake_intro), - Qstr::MP_QSTR_storage_msg__starting => Some(Self::storage_msg__starting), - Qstr::MP_QSTR_storage_msg__verifying_pin => Some(Self::storage_msg__verifying_pin), - Qstr::MP_QSTR_storage_msg__wrong_pin => Some(Self::storage_msg__wrong_pin), + Qstr::MP_QSTR_storage_msg__title_starting => Some(Self::storage_msg__title_starting), + Qstr::MP_QSTR_storage_msg__title_verifying_pin => Some(Self::storage_msg__title_verifying_pin), + Qstr::MP_QSTR_storage_msg__title_wrong_pin => Some(Self::storage_msg__title_wrong_pin), _ => None, } } diff --git a/core/embed/rust/src/translations/generated/translated_string_upper.rs b/core/embed/rust/src/translations/generated/translated_string_upper.rs new file mode 100644 index 000000000..55b3eb960 --- /dev/null +++ b/core/embed/rust/src/translations/generated/translated_string_upper.rs @@ -0,0 +1,3708 @@ +//! generated from translated_string_upper.rs.mako +//! (by running `make templates` in `core`) +//! do not edit manually! + +#![cfg_attr(rustfmt, rustfmt_skip)] +#[cfg(feature = "micropython")] +use crate::micropython::qstr::Qstr; + +#[derive(Debug, Copy, Clone, FromPrimitive, PartialEq, Eq)] +#[repr(u16)] +#[allow(non_camel_case_types)] +pub enum TranslatedString { + addr_mismatch__contact_support_at = 0, // "Please contact Trezor support at" + addr_mismatch__key_mismatch = 1, // "Key mismatch?" + addr_mismatch__mismatch = 2, // "Address mismatch?" + addr_mismatch__support_url = 3, // "trezor.io/support" + addr_mismatch__wrong_derivation_path = 4, // "Wrong derivation path for selected account." + addr_mismatch__xpub_mismatch = 5, // "XPUB mismatch?" + address__title_public_key = 6, // "Public key" + address__title_cosigner = 7, // "Cosigner" + address__title_receive_address = 8, // "Receive address" + address__title_yours = 9, // "Yours" + address_details__derivation_path = 10, // "Derivation path:" + address_details__title_receive_address = 11, // "Receive address" + address_details__title_receiving_to = 12, // "Receiving to" + authenticate__confirm_template = 13, // "Allow connected computer to confirm your {0} is genuine?" + authenticate__header = 14, // "Authenticate device" + auto_lock__change_template = 15, // "Auto-lock your Trezor after {0} of inactivity?" + auto_lock__title = 16, // "Auto-lock delay" + backup__can_back_up_anytime = 17, // "You can back up your Trezor once, at any time." + backup__it_should_be_backed_up = 18, // "You should back up your new wallet right now." + backup__it_should_be_backed_up_now = 19, // "It should be backed up now!" + backup__new_wallet_created = 20, // "New wallet created.\n" + backup__new_wallet_successfully_created = 21, // "New wallet created successfully." + backup__recover_anytime = 22, // "You can use your backup to recover your wallet at any time." + backup__title_backup_wallet = 23, // "Back up wallet" + backup__title_skip = 24, // "Skip backup" + backup__want_to_skip = 25, // "Are you sure you want to skip the backup?" + #[cfg(feature = "universal_fw")] + binance__buy = 26, // "Buy" + #[cfg(feature = "universal_fw")] + binance__confirm_cancel = 27, // "Confirm cancel" + #[cfg(feature = "universal_fw")] + binance__confirm_input = 28, // "Confirm input" + #[cfg(feature = "universal_fw")] + binance__confirm_order = 29, // "Confirm order" + #[cfg(feature = "universal_fw")] + binance__confirm_output = 30, // "Confirm output" + #[cfg(feature = "universal_fw")] + binance__order_id = 31, // "Order ID:" + #[cfg(feature = "universal_fw")] + binance__pair = 32, // "Pair:" + #[cfg(feature = "universal_fw")] + binance__price = 33, // "Price:" + #[cfg(feature = "universal_fw")] + binance__quantity = 34, // "Quantity:" + #[cfg(feature = "universal_fw")] + binance__sell = 35, // "Sell" + #[cfg(feature = "universal_fw")] + binance__sender_address = 36, // "Sender address:" + #[cfg(feature = "universal_fw")] + binance__side = 37, // "Side:" + bitcoin__commitment_data = 38, // "Commitment data:" + bitcoin__confirm_locktime = 39, // "Confirm locktime" + bitcoin__create_proof_of_ownership = 40, // "Do you want to create a proof of ownership?" + bitcoin__high_mining_fee_template = 41, // "The mining fee of\n{0}\nis unexpectedly high." + bitcoin__locktime_no_effect = 42, // "Locktime is set but will have no effect." + bitcoin__locktime_set_to = 43, // "Locktime set to:" + bitcoin__locktime_set_to_blockheight = 44, // "Locktime set to blockheight:" + bitcoin__lot_of_change_outputs = 45, // "A lot of change-outputs." + bitcoin__multiple_accounts = 46, // "Multiple accounts" + bitcoin__new_fee_rate = 47, // "New fee rate:" + bitcoin__simple_send_of = 48, // "Simple send of" + bitcoin__ticket_amount = 49, // "Ticket amount:" + bitcoin__title_confirm_details = 50, // "Confirm details" + bitcoin__title_finalize_transaction = 51, // "Finalize transaction" + bitcoin__title_high_mining_fee = 52, // "High mining fee" + bitcoin__title_meld_transaction = 53, // "Meld transactions" + bitcoin__title_modify_amount = 54, // "Modify amount" + bitcoin__title_payjoin = 55, // "Payjoin" + bitcoin__title_proof_of_ownership = 56, // "Proof of ownership" + bitcoin__title_purchase_ticket = 57, // "Purchase ticket" + bitcoin__title_update_transaction = 58, // "Update transaction" + bitcoin__unknown_path = 59, // "Unknown path" + bitcoin__unknown_transaction = 60, // "Unknown transaction" + bitcoin__unusually_high_fee = 61, // "Unusually high fee." + bitcoin__unverified_external_inputs = 62, // "The transaction contains unverified external inputs." + bitcoin__valid_signature = 63, // "The signature is valid." + bitcoin__voting_rights = 64, // "Voting rights to:" + buttons__abort = 65, // "Abort" + buttons__access = 66, // "Access" + buttons__again = 67, // "Again" + buttons__allow = 68, // "Allow" + buttons__back = 69, // "Back" + buttons__back_up = 70, // "Back up" + buttons__cancel = 71, // "Cancel" + buttons__change = 72, // "Change" + buttons__check = 73, // "Check" + buttons__check_again = 74, // "Check again" + buttons__close = 75, // "Close" + buttons__confirm = 76, // "Confirm" + buttons__continue = 77, // "Continue" + buttons__details = 78, // "Details" + buttons__enable = 79, // "Enable" + buttons__enter = 80, // "Enter" + buttons__enter_share = 81, // "Enter share" + buttons__export = 82, // "Export" + buttons__format = 83, // "Format" + buttons__go_back = 84, // "Go back" + buttons__hold_to_confirm = 85, // "Hold to confirm" + buttons__info = 86, // "Info" + buttons__install = 87, // "Install" + buttons__more_info = 88, // "More info" + buttons__ok_i_understand = 89, // "Ok, i understand" + buttons__purchase = 90, // "Purchase" + buttons__quit = 91, // "Quit" + buttons__restart = 92, // "Restart" + buttons__retry = 93, // "Retry" + buttons__select = 94, // "Select" + buttons__set = 95, // "Set" + buttons__show_all = 96, // "Show all" + buttons__show_details = 97, // "Show details" + buttons__show_words = 98, // "Show words" + buttons__skip = 99, // "Skip" + buttons__try_again = 100, // "Try again" + buttons__turn_off = 101, // "Turn off" + buttons__turn_on = 102, // "Turn on" + #[cfg(feature = "universal_fw")] + cardano__addr_base = 103, // "Base" + #[cfg(feature = "universal_fw")] + cardano__addr_enterprise = 104, // "Enterprise" + #[cfg(feature = "universal_fw")] + cardano__addr_legacy = 105, // "Legacy" + #[cfg(feature = "universal_fw")] + cardano__addr_pointer = 106, // "Pointer" + #[cfg(feature = "universal_fw")] + cardano__addr_reward = 107, // "Reward" + #[cfg(feature = "universal_fw")] + cardano__address_no_staking = 108, // "address - no staking rewards." + #[cfg(feature = "universal_fw")] + cardano__amount_burned_decimals_unknown = 109, // "Amount burned (decimals unknown):" + #[cfg(feature = "universal_fw")] + cardano__amount_minted_decimals_unknown = 110, // "Amount minted (decimals unknown):" + #[cfg(feature = "universal_fw")] + cardano__amount_sent_decimals_unknown = 111, // "Amount sent (decimals unknown):" + #[cfg(feature = "universal_fw")] + cardano__anonymous_pool = 112, // "Pool has no metadata (anonymous pool)" + #[cfg(feature = "universal_fw")] + cardano__asset_fingerprint = 113, // "Asset fingerprint:" + #[cfg(feature = "universal_fw")] + cardano__auxiliary_data_hash = 114, // "Auxiliary data hash:" + #[cfg(feature = "universal_fw")] + cardano__block = 115, // "Block" + #[cfg(feature = "universal_fw")] + cardano__catalyst = 116, // "Catalyst" + #[cfg(feature = "universal_fw")] + cardano__certificate = 117, // "Certificate" + #[cfg(feature = "universal_fw")] + cardano__change_output = 118, // "Change output" + #[cfg(feature = "universal_fw")] + cardano__check_all_items = 119, // "Check all items carefully." + #[cfg(feature = "universal_fw")] + cardano__choose_level_of_details = 120, // "Choose level of details:" + #[cfg(feature = "universal_fw")] + cardano__collateral_input_id = 121, // "Collateral input ID:" + #[cfg(feature = "universal_fw")] + cardano__collateral_input_index = 122, // "Collateral input index:" + #[cfg(feature = "universal_fw")] + cardano__collateral_output_contains_tokens = 123, // "The collateral return output contains tokens." + #[cfg(feature = "universal_fw")] + cardano__collateral_return = 124, // "Collateral return" + #[cfg(feature = "universal_fw")] + cardano__confirm = 125, // "Confirm:" + #[cfg(feature = "universal_fw")] + cardano__confirm_signing_stake_pool = 126, // "Confirm signing the stake pool registration as an owner." + #[cfg(feature = "universal_fw")] + cardano__confirm_transaction = 127, // "Confirm transaction" + #[cfg(feature = "universal_fw")] + cardano__confirming_a_multisig_transaction = 128, // "Confirming a multisig transaction." + #[cfg(feature = "universal_fw")] + cardano__confirming_a_plutus_transaction = 129, // "Confirming a Plutus transaction." + #[cfg(feature = "universal_fw")] + cardano__confirming_pool_registration = 130, // "Confirming pool registration as owner." + #[cfg(feature = "universal_fw")] + cardano__confirming_transction = 131, // "Confirming a transaction." + #[cfg(feature = "universal_fw")] + cardano__cost = 132, // "Cost" + #[cfg(feature = "universal_fw")] + cardano__credential_mismatch = 133, // "Credential doesn't match payment credential." + #[cfg(feature = "universal_fw")] + cardano__datum_hash = 134, // "Datum hash:" + #[cfg(feature = "universal_fw")] + cardano__delegating_to = 135, // "Delegating to:" + #[cfg(feature = "universal_fw")] + cardano__for_account_and_index_template = 136, // "for account {0} and index {1}:" + #[cfg(feature = "universal_fw")] + cardano__for_account_template = 137, // "for account {0}:" + #[cfg(feature = "universal_fw")] + cardano__for_key_hash = 138, // "for key hash:" + #[cfg(feature = "universal_fw")] + cardano__for_script = 139, // "for script:" + #[cfg(feature = "universal_fw")] + cardano__inline_datum = 140, // "Inline datum" + #[cfg(feature = "universal_fw")] + cardano__input_id = 141, // "Input ID:" + #[cfg(feature = "universal_fw")] + cardano__input_index = 142, // "Input index:" + #[cfg(feature = "universal_fw")] + cardano__intro_text_change = 143, // "The following address is a change address. Its" + #[cfg(feature = "universal_fw")] + cardano__intro_text_owned_by_device = 144, // "The following address is owned by this device. Its" + #[cfg(feature = "universal_fw")] + cardano__intro_text_registration_payment = 145, // "The vote key registration payment address is owned by this device. Its" + #[cfg(feature = "universal_fw")] + cardano__key_hash = 146, // "key hash" + #[cfg(feature = "universal_fw")] + cardano__margin = 147, // "Margin" + #[cfg(feature = "universal_fw")] + cardano__multisig_path = 148, // "multi-sig path" + #[cfg(feature = "universal_fw")] + cardano__nested_scripts_template = 149, // "Contains {0} nested scripts." + #[cfg(feature = "universal_fw")] + cardano__network = 150, // "Network:" + #[cfg(feature = "universal_fw")] + cardano__no_output_tx = 151, // "Transaction has no outputs, network cannot be verified." + #[cfg(feature = "universal_fw")] + cardano__nonce = 152, // "Nonce:" + #[cfg(feature = "universal_fw")] + cardano__other = 153, // "other" + #[cfg(feature = "universal_fw")] + cardano__path = 154, // "path" + #[cfg(feature = "universal_fw")] + cardano__pledge = 155, // "Pledge" + #[cfg(feature = "universal_fw")] + cardano__pointer = 156, // "pointer" + #[cfg(feature = "universal_fw")] + cardano__policy_id = 157, // "Policy ID:" + #[cfg(feature = "universal_fw")] + cardano__pool_metadata_hash = 158, // "Pool metadata hash:" + #[cfg(feature = "universal_fw")] + cardano__pool_metadata_url = 159, // "Pool metadata url:" + #[cfg(feature = "universal_fw")] + cardano__pool_owner = 160, // "Pool owner:" + #[cfg(feature = "universal_fw")] + cardano__pool_reward_account = 161, // "Pool reward account:" + #[cfg(feature = "universal_fw")] + cardano__reference_input_id = 162, // "Reference input ID:" + #[cfg(feature = "universal_fw")] + cardano__reference_input_index = 163, // "Reference input index:" + #[cfg(feature = "universal_fw")] + cardano__reference_script = 164, // "Reference script" + #[cfg(feature = "universal_fw")] + cardano__required_signer = 165, // "Required signer" + #[cfg(feature = "universal_fw")] + cardano__reward = 166, // "reward" + #[cfg(feature = "universal_fw")] + cardano__reward_address = 167, // "Address is a reward address." + #[cfg(feature = "universal_fw")] + cardano__reward_eligibility_warning = 168, // "Warning: The address is not a payment address, it is not eligible for rewards." + #[cfg(feature = "universal_fw")] + cardano__rewards_go_to = 169, // "Rewards go to:" + #[cfg(feature = "universal_fw")] + cardano__script = 170, // "script" + #[cfg(feature = "universal_fw")] + cardano__script_all = 171, // "All" + #[cfg(feature = "universal_fw")] + cardano__script_any = 172, // "Any" + #[cfg(feature = "universal_fw")] + cardano__script_data_hash = 173, // "Script data hash:" + #[cfg(feature = "universal_fw")] + cardano__script_hash = 174, // "Script hash:" + #[cfg(feature = "universal_fw")] + cardano__script_invalid_before = 175, // "Invalid before" + #[cfg(feature = "universal_fw")] + cardano__script_invalid_hereafter = 176, // "Invalid hereafter" + #[cfg(feature = "universal_fw")] + cardano__script_key = 177, // "Key" + #[cfg(feature = "universal_fw")] + cardano__script_n_of_k = 178, // "N of K" + #[cfg(feature = "universal_fw")] + cardano__script_reward = 179, // "script reward" + #[cfg(feature = "universal_fw")] + cardano__sending = 180, // "Sending" + #[cfg(feature = "universal_fw")] + cardano__show_simple = 181, // "Show Simple" + #[cfg(feature = "universal_fw")] + cardano__sign_tx_path_template = 182, // "Sign transaction with {0}:" + #[cfg(feature = "universal_fw")] + cardano__stake_delegation = 183, // "Stake delegation" + #[cfg(feature = "universal_fw")] + cardano__stake_deregistration = 184, // "Stake key deregistration" + #[cfg(feature = "universal_fw")] + cardano__stake_pool_registration = 185, // "Stakepool registration" + #[cfg(feature = "universal_fw")] + cardano__stake_pool_registration_pool_id = 186, // "Stake pool registration\nPool ID:" + #[cfg(feature = "universal_fw")] + cardano__stake_registration = 187, // "Stake key registration" + #[cfg(feature = "universal_fw")] + cardano__staking_key_for_account = 188, // "Staking key for account" + #[cfg(feature = "universal_fw")] + cardano__to_pool = 189, // "to pool:" + #[cfg(feature = "universal_fw")] + cardano__token_minting_path = 190, // "token minting path" + #[cfg(feature = "universal_fw")] + cardano__total_collateral = 191, // "Total collateral:" + #[cfg(feature = "universal_fw")] + cardano__transaction = 192, // "Transaction" + #[cfg(feature = "universal_fw")] + cardano__transaction_contains_minting_or_burning = 193, // "The transaction contains minting or burning of tokens." + #[cfg(feature = "universal_fw")] + cardano__transaction_contains_script_address_no_datum = 194, // "The following transaction output contains a script address, but does not contain a datum." + #[cfg(feature = "universal_fw")] + cardano__transaction_fee = 195, // "Transaction fee:" + #[cfg(feature = "universal_fw")] + cardano__transaction_id = 196, // "Transaction ID:" + #[cfg(feature = "universal_fw")] + cardano__transaction_no_collateral_input = 197, // "The transaction contains no collateral inputs. Plutus script will not be able to run." + #[cfg(feature = "universal_fw")] + cardano__transaction_no_script_data_hash = 198, // "The transaction contains no script data hash. Plutus script will not be able to run." + #[cfg(feature = "universal_fw")] + cardano__transaction_output_contains_tokens = 199, // "The following transaction output contains tokens." + #[cfg(feature = "universal_fw")] + cardano__ttl = 200, // "TTL:" + #[cfg(feature = "universal_fw")] + cardano__unknown_collateral_amount = 201, // "Unknown collateral amount." + #[cfg(feature = "universal_fw")] + cardano__unusual_path = 202, // "Path is unusual." + #[cfg(feature = "universal_fw")] + cardano__valid_since = 203, // "Valid since:" + #[cfg(feature = "universal_fw")] + cardano__verify_script = 204, // "Verify script" + #[cfg(feature = "universal_fw")] + cardano__vote_key_registration = 205, // "Vote key registration (CIP-36)" + #[cfg(feature = "universal_fw")] + cardano__vote_public_key = 206, // "Vote public key:" + #[cfg(feature = "universal_fw")] + cardano__voting_purpose = 207, // "Voting purpose:" + #[cfg(feature = "universal_fw")] + cardano__warning = 208, // "Warning" + #[cfg(feature = "universal_fw")] + cardano__weight = 209, // "Weight:" + #[cfg(feature = "universal_fw")] + cardano__withdrawal_for_address_template = 210, // "Confirm withdrawal for {0} address:" + #[cfg(feature = "universal_fw")] + cardano__x_of_y_signatures_template = 211, // "Requires {0} out of {1} signatures." + coinjoin__access_account = 212, // "Access your coinjoin account?" + coinjoin__do_not_disconnect = 213, // "Do not disconnect your Trezor!" + coinjoin__max_mining_fee = 214, // "Max mining fee" + coinjoin__max_rounds = 215, // "Max rounds" + coinjoin__title = 216, // "Authorize coinjoin" + coinjoin__title_do_not_disconnect = 217, // "Do not disconnect your trezor!" + coinjoin__title_progress = 218, // "Coinjoin in progress" + coinjoin__waiting_for_others = 219, // "Waiting for others" + confirm_total__fee_rate = 220, // "Fee rate:" + confirm_total__sending_from_account = 221, // "Sending from account:" + confirm_total__title_fee = 222, // "Fee information" + confirm_total__title_sending_from = 223, // "Sending from" + debug__loading_seed = 224, // "Loading seed" + debug__loading_seed_not_recommended = 225, // "Loading private seed is not recommended." + device_name__change_template = 226, // "Change device name to {0}?" + device_name__title = 227, // "Device name" + entropy__send = 228, // "Do you really want to send entropy?" + entropy__title = 229, // "Internal entropy" + entropy__title_confirm = 230, // "Confirm entropy" + #[cfg(feature = "universal_fw")] + eos__about_to_sign_template = 231, // "You are about to sign {0}." + #[cfg(feature = "universal_fw")] + eos__action_name = 232, // "Action Name:" + #[cfg(feature = "universal_fw")] + eos__arbitrary_data = 233, // "Arbitrary data" + #[cfg(feature = "universal_fw")] + eos__buy_ram = 234, // "Buy RAM" + #[cfg(feature = "universal_fw")] + eos__bytes = 235, // "Bytes:" + #[cfg(feature = "universal_fw")] + eos__cancel_vote = 236, // "Cancel vote" + #[cfg(feature = "universal_fw")] + eos__checksum = 237, // "Checksum:" + #[cfg(feature = "universal_fw")] + eos__code = 238, // "Code:" + #[cfg(feature = "universal_fw")] + eos__contract = 239, // "Contract:" + #[cfg(feature = "universal_fw")] + eos__cpu = 240, // "CPU:" + #[cfg(feature = "universal_fw")] + eos__creator = 241, // "Creator:" + #[cfg(feature = "universal_fw")] + eos__delegate = 242, // "Delegate" + #[cfg(feature = "universal_fw")] + eos__delete_auth = 243, // "Delete Auth" + #[cfg(feature = "universal_fw")] + eos__from = 244, // "From:" + #[cfg(feature = "universal_fw")] + eos__link_auth = 245, // "Link Auth" + #[cfg(feature = "universal_fw")] + eos__memo = 246, // "Memo" + #[cfg(feature = "universal_fw")] + eos__name = 247, // "Name:" + #[cfg(feature = "universal_fw")] + eos__net = 248, // "NET:" + #[cfg(feature = "universal_fw")] + eos__new_account = 249, // "New account" + #[cfg(feature = "universal_fw")] + eos__owner = 250, // "Owner:" + #[cfg(feature = "universal_fw")] + eos__parent = 251, // "Parent:" + #[cfg(feature = "universal_fw")] + eos__payer = 252, // "Payer:" + #[cfg(feature = "universal_fw")] + eos__permission = 253, // "Permission:" + #[cfg(feature = "universal_fw")] + eos__proxy = 254, // "Proxy:" + #[cfg(feature = "universal_fw")] + eos__receiver = 255, // "Receiver:" + #[cfg(feature = "universal_fw")] + eos__refund = 256, // "Refund" + #[cfg(feature = "universal_fw")] + eos__requirement = 257, // "Requirement:" + #[cfg(feature = "universal_fw")] + eos__sell_ram = 258, // "Sell RAM" + #[cfg(feature = "universal_fw")] + eos__sender = 259, // "Sender:" + #[cfg(feature = "universal_fw")] + eos__sign_transaction = 260, // "Sign transaction" + #[cfg(feature = "universal_fw")] + eos__threshold = 261, // "Threshold:" + #[cfg(feature = "universal_fw")] + eos__to = 262, // "To:" + #[cfg(feature = "universal_fw")] + eos__transfer = 263, // "Transfer:" + #[cfg(feature = "universal_fw")] + eos__type = 264, // "Type:" + #[cfg(feature = "universal_fw")] + eos__undelegate = 265, // "Undelegate" + #[cfg(feature = "universal_fw")] + eos__unlink_auth = 266, // "Unlink Auth" + #[cfg(feature = "universal_fw")] + eos__update_auth = 267, // "Update Auth" + #[cfg(feature = "universal_fw")] + eos__vote_for_producers = 268, // "Vote for producers" + #[cfg(feature = "universal_fw")] + eos__vote_for_proxy = 269, // "Vote for proxy" + #[cfg(feature = "universal_fw")] + eos__voter = 270, // "Voter:" + #[cfg(feature = "universal_fw")] + ethereum__amount_sent = 271, // "Amount sent:" + #[cfg(feature = "universal_fw")] + ethereum__contract = 272, // "Contract:" + #[cfg(feature = "universal_fw")] + ethereum__data_size_template = 273, // "Size: {0} bytes" + #[cfg(feature = "universal_fw")] + ethereum__gas_limit = 274, // "Gas limit:" + #[cfg(feature = "universal_fw")] + ethereum__gas_price = 275, // "Gas price:" + #[cfg(feature = "universal_fw")] + ethereum__max_gas_price = 276, // "Max gas price:" + #[cfg(feature = "universal_fw")] + ethereum__name_and_version = 277, // "Name and version" + #[cfg(feature = "universal_fw")] + ethereum__new_contract = 278, // "new contract?" + #[cfg(feature = "universal_fw")] + ethereum__no_message_field = 279, // "No message field" + #[cfg(feature = "universal_fw")] + ethereum__priority_fee = 280, // "Priority fee:" + #[cfg(feature = "universal_fw")] + ethereum__show_full_array = 281, // "Show full array" + #[cfg(feature = "universal_fw")] + ethereum__show_full_domain = 282, // "Show full domain" + #[cfg(feature = "universal_fw")] + ethereum__show_full_message = 283, // "Show full message" + #[cfg(feature = "universal_fw")] + ethereum__show_full_struct = 284, // "Show full struct" + #[cfg(feature = "universal_fw")] + ethereum__sign_eip712 = 285, // "Really sign EIP-712 typed data?" + #[cfg(feature = "universal_fw")] + ethereum__title_confirm_data = 286, // "Confirm data" + #[cfg(feature = "universal_fw")] + ethereum__title_confirm_domain = 287, // "Confirm domain" + #[cfg(feature = "universal_fw")] + ethereum__title_confirm_message = 288, // "Confirm message" + #[cfg(feature = "universal_fw")] + ethereum__title_confirm_struct = 289, // "Confirm struct" + #[cfg(feature = "universal_fw")] + ethereum__title_confirm_typed_data = 290, // "Confirm typed data" + #[cfg(feature = "universal_fw")] + ethereum__title_signing_address = 291, // "Signing address" + #[cfg(feature = "universal_fw")] + ethereum__units_template = 292, // "{0} units" + #[cfg(feature = "universal_fw")] + ethereum__unknown_token = 293, // "Unknown token" + #[cfg(feature = "universal_fw")] + ethereum__valid_signature = 294, // "The signature is valid." + experimental_mode__enable = 295, // "Enable experimental features?" + experimental_mode__only_for_dev = 296, // "Only for development and beta testing!" + experimental_mode__title = 297, // "Experimental mode" + #[cfg(feature = "universal_fw")] + fido__already_registered = 298, // "Already registered" + #[cfg(feature = "universal_fw")] + fido__device_already_registered = 299, // "This device is already registered with this application." + #[cfg(feature = "universal_fw")] + fido__device_already_registered_with_template = 300, // "This device is already registered with {0}." + #[cfg(feature = "universal_fw")] + fido__device_not_registered = 301, // "This device is not registered with this application." + #[cfg(feature = "universal_fw")] + fido__does_not_belong = 302, // "The credential you are trying to import does\nnot belong to this authenticator." + #[cfg(feature = "universal_fw")] + fido__erase_credentials = 303, // "erase all credentials?" + #[cfg(feature = "universal_fw")] + fido__export_credentials = 304, // "Export information about the credentials stored on this device?" + #[cfg(feature = "universal_fw")] + fido__not_registered = 305, // "Not registered" + #[cfg(feature = "universal_fw")] + fido__not_registered_with_template = 306, // "This device is not registered with\n{0}." + #[cfg(feature = "universal_fw")] + fido__please_enable_pin_protection = 307, // "Please enable PIN protection." + #[cfg(feature = "universal_fw")] + fido__title_authenticate = 308, // "Fido2 authenticate" + #[cfg(feature = "universal_fw")] + fido__title_import_credential = 309, // "Import credential" + #[cfg(feature = "universal_fw")] + fido__title_list_credentials = 310, // "List credentials" + #[cfg(feature = "universal_fw")] + fido__title_register = 311, // "Fido2 register" + #[cfg(feature = "universal_fw")] + fido__title_remove_credential = 312, // "Remove credential" + #[cfg(feature = "universal_fw")] + fido__title_reset = 313, // "FIDO2 reset" + #[cfg(feature = "universal_fw")] + fido__title_u2f_auth = 314, // "U2F authenticate" + #[cfg(feature = "universal_fw")] + fido__title_u2f_register = 315, // "U2F register" + #[cfg(feature = "universal_fw")] + fido__title_verify_user = 316, // "FIDO2 verify user" + #[cfg(feature = "universal_fw")] + fido__unable_to_verify_user = 317, // "Unable to verify user." + #[cfg(feature = "universal_fw")] + fido__wanna_erase_credentials = 318, // "Do you really want to erase all credentials?" + firmware_update__title = 319, // "Update firmware" + firmware_update__title_fingerprint = 320, // "FW fingerprint" + homescreen__click_to_connect = 321, // "Click to Connect" + homescreen__click_to_unlock = 322, // "Click to Unlock" + homescreen__title_backup_failed = 323, // "Backup failed" + homescreen__title_backup_needed = 324, // "Backup needed" + homescreen__title_coinjoin_authorized = 325, // "Coinjoin authorized" + homescreen__title_experimental_mode = 326, // "Experimental mode" + homescreen__title_no_usb_connection = 327, // "No USB connection" + homescreen__title_pin_not_set = 328, // "PIN not set" + homescreen__title_seedless = 329, // "Seedless" + homescreen__title_set = 330, // "Change homescreen?" + inputs__back = 331, // "Back" + inputs__cancel = 332, // "Cancel" + inputs__delete = 333, // "Delete" + inputs__enter = 334, // "Enter" + inputs__return = 335, // "Return" + inputs__show = 336, // "Show" + inputs__space = 337, // "Space" + joint__title = 338, // "Joint transaction" + joint__to_the_total_amount = 339, // "To the total amount:" + joint__you_are_contributing = 340, // "You are contributing:" + language__change_to_template = 341, // "Change language to {0}?" + language__changed = 342, // "Language changed successfully" + language__progress = 343, // "Changing language" + language__title = 344, // "Language settings" + lockscreen__tap_to_connect = 345, // "Tap to connect" + lockscreen__tap_to_unlock = 346, // "Tap to unlock" + lockscreen__title_locked = 347, // "Locked" + lockscreen__title_not_connected = 348, // "Not connected" + misc__decrypt_value = 349, // "Decrypt value" + misc__encrypt_value = 350, // "Encrypt value" + misc__title_suite_labeling = 351, // "Suite labeling" + modify_amount__decrease_amount = 352, // "Decrease amount by:" + modify_amount__increase_amount = 353, // "Increase amount by:" + modify_amount__new_amount = 354, // "New amount:" + modify_amount__title = 355, // "Modify amount" + modify_fee__decrease_fee = 356, // "Decrease fee by:" + modify_fee__fee_rate = 357, // "Fee rate:" + modify_fee__increase_fee = 358, // "Increase fee by:" + modify_fee__new_transaction_fee = 359, // "New transaction fee:" + modify_fee__no_change = 360, // "Fee did not change.\n" + modify_fee__title = 361, // "Modify fee" + modify_fee__transaction_fee = 362, // "Transaction fee:" + #[cfg(feature = "universal_fw")] + monero__confirm_export = 363, // "Confirm export" + #[cfg(feature = "universal_fw")] + monero__confirm_ki_sync = 364, // "Confirm ki sync" + #[cfg(feature = "universal_fw")] + monero__confirm_refresh = 365, // "Confirm refresh" + #[cfg(feature = "universal_fw")] + monero__confirm_unlock_time = 366, // "Confirm unlock time" + #[cfg(feature = "universal_fw")] + monero__hashing_inputs = 367, // "Hashing inputs" + #[cfg(feature = "universal_fw")] + monero__payment_id = 368, // "Payment ID" + #[cfg(feature = "universal_fw")] + monero__postprocessing = 369, // "Postprocessing..." + #[cfg(feature = "universal_fw")] + monero__processing = 370, // "Processing..." + #[cfg(feature = "universal_fw")] + monero__processing_inputs = 371, // "Processing inputs" + #[cfg(feature = "universal_fw")] + monero__processing_outputs = 372, // "Processing outputs" + #[cfg(feature = "universal_fw")] + monero__signing = 373, // "Signing..." + #[cfg(feature = "universal_fw")] + monero__signing_inputs = 374, // "Signing inputs" + #[cfg(feature = "universal_fw")] + monero__unlock_time_set_template = 375, // "Unlock time for this transaction is set to {0}" + #[cfg(feature = "universal_fw")] + monero__wanna_export_tx_der = 376, // "Do you really want to export tx_der\nfor tx_proof?" + #[cfg(feature = "universal_fw")] + monero__wanna_export_tx_key = 377, // "Do you really want to export tx_key?" + #[cfg(feature = "universal_fw")] + monero__wanna_export_watchkey = 378, // "Do you really want to export watch-only credentials?" + #[cfg(feature = "universal_fw")] + monero__wanna_start_refresh = 379, // "Do you really want to\nstart refresh?" + #[cfg(feature = "universal_fw")] + monero__wanna_sync_key_images = 380, // "Do you really want to\nsync key images?" + #[cfg(feature = "universal_fw")] + nem__absolute = 381, // "absolute" + #[cfg(feature = "universal_fw")] + nem__activate = 382, // "Activate" + #[cfg(feature = "universal_fw")] + nem__add = 383, // "Add" + #[cfg(feature = "universal_fw")] + nem__confirm_action = 384, // "Confirm action" + #[cfg(feature = "universal_fw")] + nem__confirm_address = 385, // "Confirm address" + #[cfg(feature = "universal_fw")] + nem__confirm_creation_fee = 386, // "Confirm creation fee" + #[cfg(feature = "universal_fw")] + nem__confirm_mosaic = 387, // "Confirm mosaic" + #[cfg(feature = "universal_fw")] + nem__confirm_multisig_fee = 388, // "Confirm multisig fee" + #[cfg(feature = "universal_fw")] + nem__confirm_namespace = 389, // "Confirm namespace" + #[cfg(feature = "universal_fw")] + nem__confirm_payload = 390, // "Confirm payload" + #[cfg(feature = "universal_fw")] + nem__confirm_properties = 391, // "Confirm properties" + #[cfg(feature = "universal_fw")] + nem__confirm_rental_fee = 392, // "Confirm rental fee" + #[cfg(feature = "universal_fw")] + nem__confirm_transfer_of = 393, // "Confirm transfer of" + #[cfg(feature = "universal_fw")] + nem__convert_account_to_multisig = 394, // "Convert account to multisig account?" + #[cfg(feature = "universal_fw")] + nem__cosign_transaction_for = 395, // "Cosign transaction for" + #[cfg(feature = "universal_fw")] + nem__cosignatory = 396, // " cosignatory" + #[cfg(feature = "universal_fw")] + nem__create_mosaic = 397, // "Create mosaic" + #[cfg(feature = "universal_fw")] + nem__create_namespace = 398, // "Create namespace" + #[cfg(feature = "universal_fw")] + nem__deactivate = 399, // "Deactivate" + #[cfg(feature = "universal_fw")] + nem__decrease = 400, // "Decrease" + #[cfg(feature = "universal_fw")] + nem__description = 401, // "Description:" + #[cfg(feature = "universal_fw")] + nem__divisibility_and_levy_cannot_be_shown = 402, // "Divisibility and levy cannot be shown for unknown mosaics" + #[cfg(feature = "universal_fw")] + nem__encrypted = 403, // "Encrypted:" + #[cfg(feature = "universal_fw")] + nem__final_confirm = 404, // "Final confirm" + #[cfg(feature = "universal_fw")] + nem__immutable = 405, // "immutable" + #[cfg(feature = "universal_fw")] + nem__increase = 406, // "Increase" + #[cfg(feature = "universal_fw")] + nem__initial_supply = 407, // "Initial supply:" + #[cfg(feature = "universal_fw")] + nem__initiate_transaction_for = 408, // "Initiate transaction for" + #[cfg(feature = "universal_fw")] + nem__levy_divisibility = 409, // "Levy divisibility:" + #[cfg(feature = "universal_fw")] + nem__levy_fee = 410, // "Levy fee:" + #[cfg(feature = "universal_fw")] + nem__levy_fee_of = 411, // "Confirm mosaic levy fee of" + #[cfg(feature = "universal_fw")] + nem__levy_mosaic = 412, // "Levy mosaic:" + #[cfg(feature = "universal_fw")] + nem__levy_namespace = 413, // "Levy namespace:" + #[cfg(feature = "universal_fw")] + nem__levy_recipient = 414, // "Levy recipient:" + #[cfg(feature = "universal_fw")] + nem__levy_type = 415, // "Levy type:" + #[cfg(feature = "universal_fw")] + nem__modify_supply_for = 416, // "Modify supply for" + #[cfg(feature = "universal_fw")] + nem__modify_the_number_of_cosignatories_by = 417, // "Modify the number of cosignatories by " + #[cfg(feature = "universal_fw")] + nem__mutable = 418, // "mutable" + #[cfg(feature = "universal_fw")] + nem__of = 419, // "of" + #[cfg(feature = "universal_fw")] + nem__percentile = 420, // "percentile" + #[cfg(feature = "universal_fw")] + nem__raw_units_template = 421, // "{0} raw units" + #[cfg(feature = "universal_fw")] + nem__remote_harvesting = 422, // " remote harvesting?" + #[cfg(feature = "universal_fw")] + nem__remove = 423, // "Remove" + #[cfg(feature = "universal_fw")] + nem__set_minimum_cosignatories_to = 424, // "Set minimum cosignatories to " + #[cfg(feature = "universal_fw")] + nem__sign_tx_fee_template = 425, // "Sign this transaction\nand pay {0}\nfor network fee?" + #[cfg(feature = "universal_fw")] + nem__supply_change = 426, // "Supply change" + #[cfg(feature = "universal_fw")] + nem__supply_units_template = 427, // "{0} supply by {1} whole units?" + #[cfg(feature = "universal_fw")] + nem__transferable = 428, // "Transferable?" + #[cfg(feature = "universal_fw")] + nem__under_namespace = 429, // "under namespace" + #[cfg(feature = "universal_fw")] + nem__unencrypted = 430, // "Unencrypted:" + #[cfg(feature = "universal_fw")] + nem__unknown_mosaic = 431, // "Unknown mosaic!" + passphrase__access_hidden_wallet = 432, // "Access hidden wallet?" + passphrase__always_on_device = 433, // "Do you really want to enter passphrase always on the device?" + passphrase__from_host_not_shown = 434, // "Passphrase provided by host will be used but will not be displayed due to the device settings." + passphrase__hidden_wallet = 435, // "Hidden wallet" + passphrase__hide = 436, // "Hide passphrase coming from host?" + passphrase__next_screen_will_show_passphrase = 437, // "Next screen will show the passphrase." + passphrase__please_enter = 438, // "Please enter your passphrase." + passphrase__revoke_on_device = 439, // "Do you want to revoke the passphrase on device setting?" + passphrase__title_confirm = 440, // "Confirm passphrase" + passphrase__title_enter = 441, // "Enter passphrase" + passphrase__title_hide = 442, // "Hide passphrase" + passphrase__title_settings = 443, // "Passphrase settings" + passphrase__title_source = 444, // "Passphrase source" + passphrase__turn_off = 445, // "Turn off passphrase protection?" + passphrase__turn_on = 446, // "Turn on passphrase protection?" + pin__change = 447, // "Change PIN?" + pin__changed = 448, // "PIN changed." + pin__cursor_will_change = 449, // "Position of the cursor will change between entries for enhanced security." + pin__diff_from_wipe_code = 450, // "The new PIN must be different from your wipe code." + pin__disabled = 451, // "PIN protection\nturned off." + pin__enabled = 452, // "PIN protection\nturned on." + pin__enter = 453, // "Enter PIN" + pin__enter_new = 454, // "Enter new PIN" + pin__entered_not_valid = 455, // "The PIN you have entered is not valid." + pin__info = 456, // "PIN will be required to access this device." + pin__invalid_pin = 457, // "Invalid PIN" + pin__last_attempt = 458, // "Last attempt" + pin__mismatch = 459, // "Entered PINs do not match!" + pin__pin_mismatch = 460, // "PIN mismatch" + pin__please_check_again = 461, // "Please check again." + pin__reenter_new = 462, // "Re-enter new PIN" + pin__reenter_to_confirm = 463, // "Please re-enter PIN to confirm." + pin__should_be_long = 464, // "PIN should be 4-50 digits long." + pin__title_check_pin = 465, // "Check PIN" + pin__title_settings = 466, // "PIN settings" + pin__title_wrong_pin = 467, // "Wrong PIN" + pin__tries_left = 468, // "tries left" + pin__turn_off = 469, // "Are you sure you want to turn off PIN protection?" + pin__turn_on = 470, // "Turn on PIN protection?" + pin__wrong_pin = 471, // "Wrong PIN" + plurals__contains_x_keys = 472, // "key|keys" + plurals__lock_after_x_hours = 473, // "hour|hours" + plurals__lock_after_x_milliseconds = 474, // "millisecond|milliseconds" + plurals__lock_after_x_minutes = 475, // "minute|minutes" + plurals__lock_after_x_seconds = 476, // "second|seconds" + plurals__sign_x_actions = 477, // "action|actions" + plurals__transaction_of_x_operations = 478, // "operation|operations" + plurals__x_groups_needed = 479, // "group|groups" + plurals__x_shares_needed = 480, // "share|shares" + progress__authenticity_check = 481, // "Checking authenticity..." + progress__done = 482, // "Done" + progress__loading_transaction = 483, // "Loading transaction..." + progress__locking_device = 484, // "Locking the device..." + progress__one_second_left = 485, // "1 second left" + progress__title_please_wait = 486, // "Please wait" + storage_msg__title_processing = 487, // "Processing" + progress__refreshing = 488, // "Refreshing..." + progress__signing_transaction = 489, // "Signing transaction..." + progress__syncing = 490, // "Syncing..." + progress__x_seconds_left_template = 491, // "{0} seconds left" + reboot_to_bootloader__restart = 492, // "Trezor will restart in bootloader mode." + reboot_to_bootloader__title = 493, // "Go to bootloader" + reboot_to_bootloader__version_by_template = 494, // "Firmware version {0}\nby {1}" + recovery__cancel_dry_run = 495, // "Cancel backup check" + recovery__check_dry_run = 496, // "Check your backup?" + recovery__cursor_will_change = 497, // "Position of the cursor will change between entries for enhanced security." + recovery__dry_run_bip39_valid_match = 498, // "The entered recovery seed is valid and matches the one in the device." + recovery__dry_run_bip39_valid_mismatch = 499, // "The entered recovery seed is valid but does not match the one in the device." + recovery__dry_run_slip39_valid_match = 500, // "The entered recovery shares are valid and match what is currently in the device." + recovery__dry_run_slip39_valid_mismatch = 501, // "The entered recovery shares are valid but do not match what is currently in the device." + recovery__enter_any_share = 502, // "Enter any share" + recovery__enter_backup = 503, // "Enter your backup." + recovery__enter_different_share = 504, // "Please enter a different share." + recovery__enter_share_from_diff_group = 505, // "Enter share from a different group." + recovery__group_num_template = 506, // "Group {0}" + recovery__group_threshold_reached = 507, // "Group threshold reached." + recovery__invalid_seed_entered = 508, // "Invalid recovery seed entered." + recovery__invalid_share_entered = 509, // "Invalid recovery share entered." + recovery__more_shares_needed = 510, // "More shares needed" + recovery__num_of_words = 511, // "Select the number of words in your backup." + recovery__only_first_n_letters = 512, // "You'll only have to select the first 2-4 letters of each word." + recovery__progress_will_be_lost = 513, // "All progress will be lost." + recovery__select_num_of_words = 514, // "Select the number of words in your backup." + recovery__share_already_entered = 515, // "Share already entered" + recovery__share_from_another_shamir = 516, // "You have entered a share from another Shamir Backup." + recovery__share_num_template = 517, // "Share {0}" + recovery__title = 518, // "Recover wallet" + recovery__title_cancel_dry_run = 519, // "Cancel backup check" + recovery__title_cancel_recovery = 520, // "Cancel recovery" + recovery__title_dry_run = 521, // "Backup check" + recovery__title_recover = 522, // "Recover wallet" + recovery__title_remaining_shares = 523, // "Remaining shares" + recovery__type_word_x_of_y_template = 524, // "Type word {0} of {1}" + recovery__wallet_recovered = 525, // "Wallet recovered successfully" + recovery__wanna_cancel_dry_run = 526, // "Are you sure you want to cancel the backup check?" + recovery__wanna_cancel_recovery = 527, // "Are you sure you want to cancel the recovery process?" + recovery__word_count_template = 528, // "({0} words)" + recovery__word_x_of_y_title_template = 529, // "Word {0} of {1}" + recovery__x_more_items_starting_template_plural = 530, // "{count} more {plural} starting" + recovery__x_more_shares_needed_template_plural = 531, // "{count} more {plural} needed." + recovery__x_of_y_entered_template = 532, // "{0} of {1} shares entered successfully." + recovery__you_have_entered = 533, // "You have entered" + reset__advanced_group_threshold_info = 534, // "The group threshold specifies the number of groups required to recover your wallet." + reset__all_x_of_y_template = 535, // "all {0} of {1} shares" + reset__any_x_of_y_template = 536, // "any {0} of {1} shares" + reset__button_create = 537, // "Create wallet" + reset__button_recover = 538, // "Recover wallet" + reset__by_continuing = 539, // "By continuing you agree to Trezor Company's terms and conditions." + reset__check_backup_title = 540, // "Check backup" + reset__check_group_share_title_template = 541, // "Check g{0} - share {1}" + reset__check_seed_title = 542, // "Check seed" + reset__check_share_title_template = 543, // "Check share #{0}" + reset__continue_with_next_share = 544, // "Continue with the next share." + reset__continue_with_share_template = 545, // "Continue with share #{0}." + reset__finished_verifying_group_template = 546, // "You have finished verifying your recovery shares for group {0}." + reset__finished_verifying_seed = 547, // "You have finished verifying your recovery seed." + reset__finished_verifying_shares = 548, // "You have finished verifying your recovery shares." + reset__group_description = 549, // "A group is made up of recovery shares." + reset__group_info = 550, // "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds." + reset__group_share_checked_successfully_template = 551, // "Group {0} - Share {1} checked successfully." + reset__group_share_title_template = 552, // "Group {0} - share {1}" + reset__more_info_at = 553, // "More info at" + reset__need_all_share_template = 554, // "For recovery you need all {0} of the shares." + reset__need_any_share_template = 555, // "For recovery you need any {0} of the shares." + reset__needed_to_form_a_group = 556, // "needed to form a group. " + reset__needed_to_recover_your_wallet = 557, // "needed to recover your wallet. " + reset__never_make_digital_copy = 558, // "Never make a digital copy of your backup or upload it online!" + reset__num_of_share_holders_template = 559, // "{0} people or locations will each hold one share." + reset__num_of_shares_advanced_info_template = 560, // "Each recovery share is a sequence of 20 words. Next you will choose the threshold number of shares needed to form Group {0}." + reset__num_of_shares_basic_info = 561, // "Each recovery share is a sequence of 20 words. Next you will choose how many shares you need to recover your wallet." + reset__num_shares_for_group_template = 562, // "The required number of shares to form Group {0}." + reset__number_of_shares_info = 563, // "= total number of unique word lists used for wallet backup." + reset__one_share = 564, // "1 share" + reset__only_one_share_will_be_created = 565, // "Only one share will be created." + reset__recovery_seed_title = 566, // "Recovery seed" + reset__recovery_share_title_template = 567, // "Recovery share #{0}" + reset__required_number_of_groups = 568, // "The required number of groups for recovery." + reset__select_correct_word = 569, // "Select the correct word for each position." + reset__select_word_title_template = 570, // "Select {0} word" + reset__select_word_x_of_y_template = 571, // "Select word {0} of {1}:" + reset__set_it_to_count_template = 572, // "Set it to {0} and you will need " + reset__share_checked_successfully_template = 573, // "Recovery share #{0} checked successfully." + reset__share_words_title = 574, // "Standard backup" + reset__slip39_checklist_num_groups = 575, // "Number of groups" + reset__slip39_checklist_num_shares = 576, // "Number of shares" + reset__slip39_checklist_set_num_groups = 577, // "Set number of groups" + reset__slip39_checklist_set_num_shares = 578, // "Set number of shares" + reset__slip39_checklist_set_sizes = 579, // "Set sizes and thresholds" + reset__slip39_checklist_set_sizes_longer = 580, // "Set size and threshold for each group" + reset__slip39_checklist_set_threshold = 581, // "Set threshold" + reset__slip39_checklist_title = 582, // "Backup checklist" + reset__slip39_checklist_write_down = 583, // "Write down and check all shares" + reset__slip39_checklist_write_down_recovery = 584, // "Write down and check all recovery shares" + reset__the_threshold_sets_the_number_of_shares = 585, // "The threshold sets the number of shares " + reset__threshold_info = 586, // "= minimum number of unique word lists used for recovery." + reset__title_backup_is_done = 587, // "Backup is done" + reset__title_create_wallet = 588, // "Create wallet" + reset__title_create_wallet_shamir = 589, // "Create wallet (shamir)" + reset__title_group_threshold = 590, // "Group threshold" + reset__title_number_of_groups = 591, // "Number of groups" + reset__title_number_of_shares = 592, // "Number of shares" + reset__title_set_group_threshold = 593, // "Set group threshold" + reset__title_set_number_of_groups = 594, // "Set number of groups" + reset__title_set_number_of_shares = 595, // "Set number of shares" + reset__title_set_threshold = 596, // "Set threshold" + reset__to_form_group_template = 597, // "to form Group {0}." + reset__tos_link = 598, // "trezor.io/tos" + reset__total_number_of_shares_in_group_template = 599, // "Set the total number of shares in Group {0}." + reset__use_your_backup = 600, // "Use your backup when you need to recover your wallet." + reset__write_down_words_template = 601, // "Write down all {0} words in order." + reset__wrong_word_selected = 602, // "Wrong word selected!" + reset__you_need_one_share = 603, // "For recovery you need 1 share." + reset__your_backup_is_done = 604, // "Your backup is done." + #[cfg(feature = "universal_fw")] + ripple__confirm_tag = 605, // "Confirm tag" + #[cfg(feature = "universal_fw")] + ripple__destination_tag_template = 606, // "Destination tag:\n{0}" + rotation__change_template = 607, // "Do you want to change device rotation to {0}?" + rotation__east = 608, // "east" + rotation__north = 609, // "north" + rotation__south = 610, // "south" + rotation__title_change = 611, // "Change rotation" + rotation__west = 612, // "west" + safety_checks__approve_unsafe_always = 613, // "Trezor will allow you to approve some actions which might be unsafe." + safety_checks__approve_unsafe_temporary = 614, // "Trezor will temporarily allow you to approve some actions which might be unsafe." + safety_checks__enforce_strict = 615, // "Do you really want to enforce strict safety checks (recommended)?" + safety_checks__title = 616, // "Safety checks" + safety_checks__title_safety_override = 617, // "Safety override" + sd_card__all_data_will_be_lost = 618, // "All data on the SD card will be lost." + sd_card__card_required = 619, // "SD card required." + sd_card__disable = 620, // "Do you really want to remove SD card protection from your device?" + sd_card__disabled = 621, // "You have successfully disabled SD protection." + sd_card__enable = 622, // "Do you really want to secure your device with SD card protection?" + sd_card__enabled = 623, // "You have successfully enabled SD protection." + sd_card__error = 624, // "SD card error" + sd_card__format_card = 625, // "Format SD card" + sd_card__insert_correct_card = 626, // "Please insert the correct SD card for this device." + sd_card__please_insert = 627, // "Please insert your SD card." + sd_card__please_unplug_and_insert = 628, // "Please unplug the device and insert your SD card." + sd_card__problem_accessing = 629, // "There was a problem accessing the SD card." + sd_card__refresh = 630, // "Do you really want to replace the current SD card secret with a newly generated one?" + sd_card__refreshed = 631, // "You have successfully refreshed SD protection." + sd_card__restart = 632, // "Do you want to restart Trezor in bootloader mode?" + sd_card__title = 633, // "SD card protection" + sd_card__title_problem = 634, // "SD card problem" + sd_card__unknown_filesystem = 635, // "Unknown filesystem." + sd_card__unplug_and_insert_correct = 636, // "Please unplug the device and insert the correct SD card." + sd_card__use_different_card = 637, // "Use a different card or format the SD card to the FAT32 filesystem." + sd_card__wanna_format = 638, // "Do you really want to format the SD card?" + sd_card__wrong_sd_card = 639, // "Wrong SD card." + send__address_path = 640, // "address path" + send__confirm_sending = 641, // "Sending amount" + send__from_multiple_accounts = 642, // "Sending from multiple accounts." + send__including_fee = 643, // "Including fee:" + send__maximum_fee = 644, // "Maximum fee:" + send__receiving_to_multisig = 645, // "Receiving to a multisig address." + send__title_confirm_sending = 646, // "Confirm sending" + send__title_joint_transaction = 647, // "Joint transaction" + send__title_receiving_to = 648, // "Receiving to" + send__title_sending = 649, // "Sending" + send__title_sending_amount = 650, // "Sending amount" + send__title_sending_to = 651, // "Sending to" + send__to_the_total_amount = 652, // "To the total amount:" + send__total_amount = 653, // "Total amount:" + send__transaction_id = 654, // "Transaction ID:" + send__you_are_contributing = 655, // "You are contributing:" + share_words__words_in_order = 656, // " words in order." + share_words__wrote_down_all = 657, // "I wrote down all " + sign_message__bytes_template = 658, // "{0} Bytes" + sign_message__title_confirm_address = 659, // "Signing address" + sign_message__title_confirm_message = 660, // "Confirm message" + sign_message__message_size = 661, // "Message size:" + sign_message__title_verify_address = 662, // "Verify address" + #[cfg(feature = "universal_fw")] + solana__account_index = 663, // "Account index" + #[cfg(feature = "universal_fw")] + solana__associated_token_account = 664, // "Associated token account" + #[cfg(feature = "universal_fw")] + solana__confirm_multisig = 665, // "Confirm multisig" + #[cfg(feature = "universal_fw")] + solana__expected_fee = 666, // "Expected fee" + #[cfg(feature = "universal_fw")] + solana__instruction_accounts_template = 667, // "Instruction contains {0} accounts and its data is {1} bytes long." + #[cfg(feature = "universal_fw")] + solana__instruction_data = 668, // "Instruction data" + #[cfg(feature = "universal_fw")] + solana__instruction_is_multisig = 669, // "The following instruction is a multisig instruction." + #[cfg(feature = "universal_fw")] + solana__is_provided_via_lookup_table_template = 670, // "{0} is provided via a lookup table." + #[cfg(feature = "universal_fw")] + solana__lookup_table_address = 671, // "Lookup table address" + #[cfg(feature = "universal_fw")] + solana__multiple_signers = 672, // "Multiple signers" + #[cfg(feature = "universal_fw")] + solana__token_address = 673, // "Token address" + #[cfg(feature = "universal_fw")] + solana__transaction_contains_unknown_instructions = 674, // "Transaction contains unknown instructions." + #[cfg(feature = "universal_fw")] + solana__transaction_requires_x_signers_template = 675, // "Transaction requires {0} signers which increases the fee." + #[cfg(feature = "universal_fw")] + stellar__account_merge = 676, // "Account Merge" + #[cfg(feature = "universal_fw")] + stellar__account_thresholds = 677, // "Account Thresholds" + #[cfg(feature = "universal_fw")] + stellar__add_signer = 678, // "Add Signer" + #[cfg(feature = "universal_fw")] + stellar__add_trust = 679, // "Add trust" + #[cfg(feature = "universal_fw")] + stellar__all_will_be_sent_to = 680, // "All XLM will be sent to:" + #[cfg(feature = "universal_fw")] + stellar__allow_trust = 681, // "Allow trust" + #[cfg(feature = "universal_fw")] + stellar__asset = 682, // "Asset" + #[cfg(feature = "universal_fw")] + stellar__balance_id = 683, // "Balance ID" + #[cfg(feature = "universal_fw")] + stellar__bump_sequence = 684, // "Bump Sequence" + #[cfg(feature = "universal_fw")] + stellar__buying = 685, // "Buying:" + #[cfg(feature = "universal_fw")] + stellar__claim_claimable_balance = 686, // "Claim Claimable Balance" + #[cfg(feature = "universal_fw")] + stellar__clear_data = 687, // "Clear data" + #[cfg(feature = "universal_fw")] + stellar__clear_flags = 688, // "Clear flags" + #[cfg(feature = "universal_fw")] + stellar__confirm_issuer = 689, // "Confirm Issuer" + #[cfg(feature = "universal_fw")] + stellar__confirm_memo = 690, // "Confirm memo" + #[cfg(feature = "universal_fw")] + stellar__confirm_network = 691, // "Confirm network" + #[cfg(feature = "universal_fw")] + stellar__confirm_operation = 692, // "Confirm operation" + #[cfg(feature = "universal_fw")] + stellar__confirm_stellar = 693, // "Confirm Stellar" + #[cfg(feature = "universal_fw")] + stellar__confirm_timebounds = 694, // "Confirm timebounds" + #[cfg(feature = "universal_fw")] + stellar__create_account = 695, // "Create Account" + #[cfg(feature = "universal_fw")] + stellar__debited_amount = 696, // "Debited amount" + #[cfg(feature = "universal_fw")] + stellar__delete = 697, // "Delete" + #[cfg(feature = "universal_fw")] + stellar__delete_passive_offer = 698, // "Delete Passive Offer" + #[cfg(feature = "universal_fw")] + stellar__delete_trust = 699, // "Delete trust" + #[cfg(feature = "universal_fw")] + stellar__destination = 700, // "Destination:" + #[cfg(feature = "universal_fw")] + stellar__exchanges_require_memo = 701, // "Important: Many exchanges require a memo when depositing" + #[cfg(feature = "universal_fw")] + stellar__final_confirm = 702, // "Final confirm" + #[cfg(feature = "universal_fw")] + stellar__hash = 703, // "Hash:" + #[cfg(feature = "universal_fw")] + stellar__high = 704, // "High:" + #[cfg(feature = "universal_fw")] + stellar__home_domain = 705, // "Home Domain" + #[cfg(feature = "universal_fw")] + stellar__inflation = 706, // "Inflation" + #[cfg(feature = "universal_fw")] + stellar__initial_balance = 707, // "Initial Balance" + #[cfg(feature = "universal_fw")] + stellar__initialize_signing_with = 708, // "Initialize signing with" + #[cfg(feature = "universal_fw")] + stellar__issuer_template = 709, // "{0} issuer:" + #[cfg(feature = "universal_fw")] + stellar__key = 710, // "Key:" + #[cfg(feature = "universal_fw")] + stellar__limit = 711, // "Limit:" + #[cfg(feature = "universal_fw")] + stellar__low = 712, // "Low:" + #[cfg(feature = "universal_fw")] + stellar__master_weight = 713, // "Master Weight:" + #[cfg(feature = "universal_fw")] + stellar__medium = 714, // "Medium:" + #[cfg(feature = "universal_fw")] + stellar__new_offer = 715, // "New Offer" + #[cfg(feature = "universal_fw")] + stellar__new_passive_offer = 716, // "New Passive Offer" + #[cfg(feature = "universal_fw")] + stellar__no_memo_set = 717, // "No memo set!" + #[cfg(feature = "universal_fw")] + stellar__no_restriction = 718, // "[no restriction]" + #[cfg(feature = "universal_fw")] + stellar__on_network_template = 719, // "Transaction is on {0}" + #[cfg(feature = "universal_fw")] + stellar__path_pay = 720, // "Path Pay" + #[cfg(feature = "universal_fw")] + stellar__path_pay_at_least = 721, // "Path Pay at least" + #[cfg(feature = "universal_fw")] + stellar__pay = 722, // "Pay:" + #[cfg(feature = "universal_fw")] + stellar__pay_at_most = 723, // "Pay at most:" + #[cfg(feature = "universal_fw")] + stellar__preauth_transaction = 724, // "Pre-auth transaction:" + #[cfg(feature = "universal_fw")] + stellar__price_per_template = 725, // "Price per {0}:" + #[cfg(feature = "universal_fw")] + stellar__private_network = 726, // "private network" + #[cfg(feature = "universal_fw")] + stellar__remove_signer = 727, // "Remove Signer" + #[cfg(feature = "universal_fw")] + stellar__revoke_trust = 728, // "Revoke trust" + #[cfg(feature = "universal_fw")] + stellar__selling = 729, // "Selling:" + #[cfg(feature = "universal_fw")] + stellar__set_data = 730, // "Set data" + #[cfg(feature = "universal_fw")] + stellar__set_flags = 731, // "Set flags" + #[cfg(feature = "universal_fw")] + stellar__set_sequence_to_template = 732, // "Set sequence to {0}?" + #[cfg(feature = "universal_fw")] + stellar__sign_tx_count_template = 733, // "Sign this transaction made up of {0}" + #[cfg(feature = "universal_fw")] + stellar__sign_tx_fee_template = 734, // "and pay {0}\nfor fee?" + #[cfg(feature = "universal_fw")] + stellar__source_account = 735, // "Source account:" + #[cfg(feature = "universal_fw")] + stellar__testnet_network = 736, // "testnet network" + #[cfg(feature = "universal_fw")] + stellar__trusted_account = 737, // "Trusted Account" + #[cfg(feature = "universal_fw")] + stellar__update = 738, // "Update" + #[cfg(feature = "universal_fw")] + stellar__valid_from = 739, // "Valid from (UTC)" + #[cfg(feature = "universal_fw")] + stellar__valid_to = 740, // "Valid to (UTC)" + #[cfg(feature = "universal_fw")] + stellar__value_sha256 = 741, // "Value (SHA-256):" + #[cfg(feature = "universal_fw")] + stellar__wanna_clean_value_key_template = 742, // "Do you want to clear value key {0}?" + #[cfg(feature = "universal_fw")] + stellar__your_account = 743, // " your account" + #[cfg(feature = "universal_fw")] + tezos__baker_address = 744, // "Baker address:" + #[cfg(feature = "universal_fw")] + tezos__balance = 745, // "Balance:" + #[cfg(feature = "universal_fw")] + tezos__ballot = 746, // "Ballot:" + #[cfg(feature = "universal_fw")] + tezos__confirm_delegation = 747, // "Confirm delegation" + #[cfg(feature = "universal_fw")] + tezos__confirm_origination = 748, // "Confirm origination" + #[cfg(feature = "universal_fw")] + tezos__delegator = 749, // "Delegator:" + #[cfg(feature = "universal_fw")] + tezos__proposal = 750, // "Proposal" + #[cfg(feature = "universal_fw")] + tezos__register_delegate = 751, // "Register delegate" + #[cfg(feature = "universal_fw")] + tezos__remove_delegation = 752, // "Remove delegation" + #[cfg(feature = "universal_fw")] + tezos__submit_ballot = 753, // "Submit ballot" + #[cfg(feature = "universal_fw")] + tezos__submit_proposal = 754, // "Submit proposal" + #[cfg(feature = "universal_fw")] + tezos__submit_proposals = 755, // "Submit proposals" + tutorial__middle_click = 756, // "Press both left and right at the same\ntime to confirm." + tutorial__press_and_hold = 757, // "Press and hold the right button to\napprove important operations." + tutorial__ready_to_use = 758, // "You're ready to\nuse Trezor." + tutorial__scroll_down = 759, // "Press right to scroll down to read all content when text doesn't fit on one screen.\n\rPress left to scroll up." + tutorial__sure_you_want_skip = 760, // "Are you sure you\nwant to skip the tutorial?" + tutorial__title_hello = 761, // "HELLO" + tutorial__title_screen_scroll = 762, // "SCREEN SCROLL" + tutorial__title_skip = 763, // "SKIP TUTORIAL" + tutorial__title_tutorial_complete = 764, // "TUTORIAL COMPLETE" + tutorial__use_trezor = 765, // "Use Trezor by\nclicking the left and right buttons.\n\rContinue right." + tutorial__welcome_press_right = 766, // "Welcome to Trezor. Press right to continue." + #[cfg(feature = "universal_fw")] + u2f__get = 767, // "Increase and retrieve the U2F counter?" + #[cfg(feature = "universal_fw")] + u2f__set_template = 768, // "Set the U2F counter to {0}?" + #[cfg(feature = "universal_fw")] + u2f__title_get = 769, // "Get U2F counter" + #[cfg(feature = "universal_fw")] + u2f__title_set = 770, // "Set U2F counter" + wipe__info = 771, // "All data will be erased." + wipe__title = 772, // "Wipe device" + wipe__want_to_wipe = 773, // "Do you really want to wipe the device?\n" + wipe_code__change = 774, // "Change wipe code?" + wipe_code__changed = 775, // "Wipe code changed." + wipe_code__diff_from_pin = 776, // "The wipe code must be different from your PIN." + wipe_code__disabled = 777, // "Wipe code disabled." + wipe_code__enabled = 778, // "Wipe code enabled." + wipe_code__enter_new = 779, // "Enter new wipe code" + wipe_code__info = 780, // "Wipe code can be used to erase all data from this device." + wipe_code__invalid = 781, // "Invalid wipe code" + wipe_code__mismatch = 782, // "The wipe codes you entered do not match." + wipe_code__reenter = 783, // "Re-enter wipe code" + wipe_code__reenter_to_confirm = 784, // "Please re-enter wipe code to confirm." + wipe_code__title_check = 785, // "Check wipe code" + wipe_code__title_invalid = 786, // "Invalid wipe code" + wipe_code__title_settings = 787, // "Wipe code settings" + wipe_code__turn_off = 788, // "Turn off wipe code protection?" + wipe_code__turn_on = 789, // "Turn on wipe code protection?" + wipe_code__wipe_code_mismatch = 790, // "Wipe code mismatch" + word_count__title = 791, // "Number of words" + words__account = 792, // "Account" + words__account_colon = 793, // "Account:" + words__address = 794, // "Address" + words__amount = 795, // "Amount" + words__are_you_sure = 796, // "Are you sure?" + words__array_of = 797, // "Array of" + words__blockhash = 798, // "Blockhash" + words__buying = 799, // "Buying" + words__confirm = 800, // "Confirm" + words__confirm_fee = 801, // "Confirm fee" + words__contains = 802, // "Contains" + words__continue_anyway = 803, // "Continue anyway?" + words__continue_with = 804, // "Continue with" + words__error = 805, // "Error" + words__fee = 806, // "Fee" + words__from = 807, // "from" + words__keep_it_safe = 808, // "Keep it safe!" + words__know_what_your_doing = 809, // "Continue only if you know what you are doing!" + words__my_trezor = 810, // "My Trezor" + words__no = 811, // "No" + words__outputs = 812, // "outputs" + words__please_check_again = 813, // "Please check again" + words__please_try_again = 814, // "Please try again" + words__really_wanna = 815, // "Do you really want to" + words__title_recipient = 816, // "Recipient" + words__sign = 817, // "Sign" + words__signer = 818, // "Signer" + words__title_check = 819, // "Check" + words__title_group = 820, // "Group" + words__title_information = 821, // "Information" + words__title_remember = 822, // "Remember" + words__title_share = 823, // "Share" + words__title_shares = 824, // "Shares" + words__title_success = 825, // "Success" + words__title_summary = 826, // "Summary" + words__title_threshold = 827, // "Threshold" + words__unknown = 828, // "Unknown" + words__warning = 829, // "Warning" + words__writable = 830, // "Writable" + words__yes = 831, // "Yes" + reboot_to_bootloader__just_a_moment = 832, // "Just a moment..." + inputs__previous = 833, // "Previous" + #[cfg(feature = "universal_fw")] + ethereum__staking_title_claim = 834, // "Claim" + #[cfg(feature = "universal_fw")] + ethereum__staking_title_claim_address = 835, // "Claim address" + #[cfg(feature = "universal_fw")] + ethereum__staking_claim_intro = 836, // "Claim ETH from Everstake?" + #[cfg(feature = "universal_fw")] + ethereum__staking_title_stake = 837, // "Stake" + #[cfg(feature = "universal_fw")] + ethereum__staking_title_stake_address = 838, // "Stake address" + #[cfg(feature = "universal_fw")] + ethereum__staking_stake_intro = 839, // "Stake ETH on Everstake?" + #[cfg(feature = "universal_fw")] + ethereum__staking_title_unstake = 840, // "Unstake" + #[cfg(feature = "universal_fw")] + ethereum__staking_unstake_intro = 841, // "Unstake ETH from Everstake?" + storage_msg__title_starting = 842, // "Starting up" + storage_msg__title_verifying_pin = 843, // "Verifying pin" + storage_msg__title_wrong_pin = 844, // "Wrong pin" +} + +impl TranslatedString { + pub fn untranslated(self) -> &'static str { + match self { + Self::addr_mismatch__contact_support_at => "Please contact Trezor support at", + Self::addr_mismatch__key_mismatch => "Key mismatch?", + Self::addr_mismatch__mismatch => "Address mismatch?", + Self::addr_mismatch__support_url => "trezor.io/support", + Self::addr_mismatch__wrong_derivation_path => "Wrong derivation path for selected account.", + Self::addr_mismatch__xpub_mismatch => "XPUB mismatch?", + Self::address__title_public_key => "PUBLIC KEY", + Self::address__title_cosigner => "COSIGNER", + Self::address__title_receive_address => "RECEIVE ADDRESS", + Self::address__title_yours => "YOURS", + Self::address_details__derivation_path => "Derivation path:", + Self::address_details__title_receive_address => "RECEIVE ADDRESS", + Self::address_details__title_receiving_to => "RECEIVING TO", + Self::authenticate__confirm_template => "Allow connected computer to confirm your {0} is genuine?", + Self::authenticate__header => "Authenticate device", + Self::auto_lock__change_template => "Auto-lock your Trezor after {0} of inactivity?", + Self::auto_lock__title => "AUTO-LOCK DELAY", + Self::backup__can_back_up_anytime => "You can back up your Trezor once, at any time.", + Self::backup__it_should_be_backed_up => "You should back up your new wallet right now.", + Self::backup__it_should_be_backed_up_now => "It should be backed up now!", + Self::backup__new_wallet_created => "New wallet created.\n", + Self::backup__new_wallet_successfully_created => "New wallet created successfully.", + Self::backup__recover_anytime => "You can use your backup to recover your wallet at any time.", + Self::backup__title_backup_wallet => "BACK UP WALLET", + Self::backup__title_skip => "SKIP BACKUP", + Self::backup__want_to_skip => "Are you sure you want to skip the backup?", + #[cfg(feature = "universal_fw")] + Self::binance__buy => "Buy", + #[cfg(feature = "universal_fw")] + Self::binance__confirm_cancel => "CONFIRM CANCEL", + #[cfg(feature = "universal_fw")] + Self::binance__confirm_input => "CONFIRM INPUT", + #[cfg(feature = "universal_fw")] + Self::binance__confirm_order => "CONFIRM ORDER", + #[cfg(feature = "universal_fw")] + Self::binance__confirm_output => "CONFIRM OUTPUT", + #[cfg(feature = "universal_fw")] + Self::binance__order_id => "Order ID:", + #[cfg(feature = "universal_fw")] + Self::binance__pair => "Pair:", + #[cfg(feature = "universal_fw")] + Self::binance__price => "Price:", + #[cfg(feature = "universal_fw")] + Self::binance__quantity => "Quantity:", + #[cfg(feature = "universal_fw")] + Self::binance__sell => "Sell", + #[cfg(feature = "universal_fw")] + Self::binance__sender_address => "Sender address:", + #[cfg(feature = "universal_fw")] + Self::binance__side => "Side:", + Self::bitcoin__commitment_data => "Commitment data:", + Self::bitcoin__confirm_locktime => "CONFIRM LOCKTIME", + Self::bitcoin__create_proof_of_ownership => "Do you want to create a proof of ownership?", + Self::bitcoin__high_mining_fee_template => "The mining fee of\n{0}\nis unexpectedly high.", + Self::bitcoin__locktime_no_effect => "Locktime is set but will have no effect.", + Self::bitcoin__locktime_set_to => "Locktime set to:", + Self::bitcoin__locktime_set_to_blockheight => "Locktime set to blockheight:", + Self::bitcoin__lot_of_change_outputs => "A lot of change-outputs.", + Self::bitcoin__multiple_accounts => "Multiple accounts", + Self::bitcoin__new_fee_rate => "New fee rate:", + Self::bitcoin__simple_send_of => "Simple send of", + Self::bitcoin__ticket_amount => "Ticket amount:", + Self::bitcoin__title_confirm_details => "CONFIRM DETAILS", + Self::bitcoin__title_finalize_transaction => "FINALIZE TRANSACTION", + Self::bitcoin__title_high_mining_fee => "HIGH MINING FEE", + Self::bitcoin__title_meld_transaction => "MELD TRANSACTIONS", + Self::bitcoin__title_modify_amount => "MODIFY AMOUNT", + Self::bitcoin__title_payjoin => "PAYJOIN", + Self::bitcoin__title_proof_of_ownership => "PROOF OF OWNERSHIP", + Self::bitcoin__title_purchase_ticket => "PURCHASE TICKET", + Self::bitcoin__title_update_transaction => "UPDATE TRANSACTION", + Self::bitcoin__unknown_path => "Unknown path", + Self::bitcoin__unknown_transaction => "Unknown transaction", + Self::bitcoin__unusually_high_fee => "Unusually high fee.", + Self::bitcoin__unverified_external_inputs => "The transaction contains unverified external inputs.", + Self::bitcoin__valid_signature => "The signature is valid.", + Self::bitcoin__voting_rights => "Voting rights to:", + Self::buttons__abort => "ABORT", + Self::buttons__access => "ACCESS", + Self::buttons__again => "AGAIN", + Self::buttons__allow => "ALLOW", + Self::buttons__back => "BACK", + Self::buttons__back_up => "BACK UP", + Self::buttons__cancel => "CANCEL", + Self::buttons__change => "CHANGE", + Self::buttons__check => "CHECK", + Self::buttons__check_again => "CHECK AGAIN", + Self::buttons__close => "CLOSE", + Self::buttons__confirm => "CONFIRM", + Self::buttons__continue => "CONTINUE", + Self::buttons__details => "DETAILS", + Self::buttons__enable => "ENABLE", + Self::buttons__enter => "ENTER", + Self::buttons__enter_share => "ENTER SHARE", + Self::buttons__export => "EXPORT", + Self::buttons__format => "FORMAT", + Self::buttons__go_back => "GO BACK", + Self::buttons__hold_to_confirm => "HOLD TO CONFIRM", + Self::buttons__info => "INFO", + Self::buttons__install => "INSTALL", + Self::buttons__more_info => "MORE INFO", + Self::buttons__ok_i_understand => "OK, I UNDERSTAND", + Self::buttons__purchase => "PURCHASE", + Self::buttons__quit => "QUIT", + Self::buttons__restart => "RESTART", + Self::buttons__retry => "RETRY", + Self::buttons__select => "SELECT", + Self::buttons__set => "SET", + Self::buttons__show_all => "SHOW ALL", + Self::buttons__show_details => "SHOW DETAILS", + Self::buttons__show_words => "SHOW WORDS", + Self::buttons__skip => "SKIP", + Self::buttons__try_again => "TRY AGAIN", + Self::buttons__turn_off => "TURN OFF", + Self::buttons__turn_on => "TURN ON", + #[cfg(feature = "universal_fw")] + Self::cardano__addr_base => "Base", + #[cfg(feature = "universal_fw")] + Self::cardano__addr_enterprise => "Enterprise", + #[cfg(feature = "universal_fw")] + Self::cardano__addr_legacy => "Legacy", + #[cfg(feature = "universal_fw")] + Self::cardano__addr_pointer => "Pointer", + #[cfg(feature = "universal_fw")] + Self::cardano__addr_reward => "Reward", + #[cfg(feature = "universal_fw")] + Self::cardano__address_no_staking => "address - no staking rewards.", + #[cfg(feature = "universal_fw")] + Self::cardano__amount_burned_decimals_unknown => "Amount burned (decimals unknown):", + #[cfg(feature = "universal_fw")] + Self::cardano__amount_minted_decimals_unknown => "Amount minted (decimals unknown):", + #[cfg(feature = "universal_fw")] + Self::cardano__amount_sent_decimals_unknown => "Amount sent (decimals unknown):", + #[cfg(feature = "universal_fw")] + Self::cardano__anonymous_pool => "Pool has no metadata (anonymous pool)", + #[cfg(feature = "universal_fw")] + Self::cardano__asset_fingerprint => "Asset fingerprint:", + #[cfg(feature = "universal_fw")] + Self::cardano__auxiliary_data_hash => "Auxiliary data hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__block => "Block", + #[cfg(feature = "universal_fw")] + Self::cardano__catalyst => "Catalyst", + #[cfg(feature = "universal_fw")] + Self::cardano__certificate => "Certificate", + #[cfg(feature = "universal_fw")] + Self::cardano__change_output => "Change output", + #[cfg(feature = "universal_fw")] + Self::cardano__check_all_items => "Check all items carefully.", + #[cfg(feature = "universal_fw")] + Self::cardano__choose_level_of_details => "Choose level of details:", + #[cfg(feature = "universal_fw")] + Self::cardano__collateral_input_id => "Collateral input ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__collateral_input_index => "Collateral input index:", + #[cfg(feature = "universal_fw")] + Self::cardano__collateral_output_contains_tokens => "The collateral return output contains tokens.", + #[cfg(feature = "universal_fw")] + Self::cardano__collateral_return => "Collateral return", + #[cfg(feature = "universal_fw")] + Self::cardano__confirm => "Confirm:", + #[cfg(feature = "universal_fw")] + Self::cardano__confirm_signing_stake_pool => "Confirm signing the stake pool registration as an owner.", + #[cfg(feature = "universal_fw")] + Self::cardano__confirm_transaction => "Confirm transaction", + #[cfg(feature = "universal_fw")] + Self::cardano__confirming_a_multisig_transaction => "Confirming a multisig transaction.", + #[cfg(feature = "universal_fw")] + Self::cardano__confirming_a_plutus_transaction => "Confirming a Plutus transaction.", + #[cfg(feature = "universal_fw")] + Self::cardano__confirming_pool_registration => "Confirming pool registration as owner.", + #[cfg(feature = "universal_fw")] + Self::cardano__confirming_transction => "Confirming a transaction.", + #[cfg(feature = "universal_fw")] + Self::cardano__cost => "Cost", + #[cfg(feature = "universal_fw")] + Self::cardano__credential_mismatch => "Credential doesn't match payment credential.", + #[cfg(feature = "universal_fw")] + Self::cardano__datum_hash => "Datum hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__delegating_to => "Delegating to:", + #[cfg(feature = "universal_fw")] + Self::cardano__for_account_and_index_template => "for account {0} and index {1}:", + #[cfg(feature = "universal_fw")] + Self::cardano__for_account_template => "for account {0}:", + #[cfg(feature = "universal_fw")] + Self::cardano__for_key_hash => "for key hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__for_script => "for script:", + #[cfg(feature = "universal_fw")] + Self::cardano__inline_datum => "Inline datum", + #[cfg(feature = "universal_fw")] + Self::cardano__input_id => "Input ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__input_index => "Input index:", + #[cfg(feature = "universal_fw")] + Self::cardano__intro_text_change => "The following address is a change address. Its", + #[cfg(feature = "universal_fw")] + Self::cardano__intro_text_owned_by_device => "The following address is owned by this device. Its", + #[cfg(feature = "universal_fw")] + Self::cardano__intro_text_registration_payment => "The vote key registration payment address is owned by this device. Its", + #[cfg(feature = "universal_fw")] + Self::cardano__key_hash => "key hash", + #[cfg(feature = "universal_fw")] + Self::cardano__margin => "Margin", + #[cfg(feature = "universal_fw")] + Self::cardano__multisig_path => "multi-sig path", + #[cfg(feature = "universal_fw")] + Self::cardano__nested_scripts_template => "Contains {0} nested scripts.", + #[cfg(feature = "universal_fw")] + Self::cardano__network => "Network:", + #[cfg(feature = "universal_fw")] + Self::cardano__no_output_tx => "Transaction has no outputs, network cannot be verified.", + #[cfg(feature = "universal_fw")] + Self::cardano__nonce => "Nonce:", + #[cfg(feature = "universal_fw")] + Self::cardano__other => "other", + #[cfg(feature = "universal_fw")] + Self::cardano__path => "path", + #[cfg(feature = "universal_fw")] + Self::cardano__pledge => "Pledge", + #[cfg(feature = "universal_fw")] + Self::cardano__pointer => "pointer", + #[cfg(feature = "universal_fw")] + Self::cardano__policy_id => "Policy ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__pool_metadata_hash => "Pool metadata hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__pool_metadata_url => "Pool metadata url:", + #[cfg(feature = "universal_fw")] + Self::cardano__pool_owner => "Pool owner:", + #[cfg(feature = "universal_fw")] + Self::cardano__pool_reward_account => "Pool reward account:", + #[cfg(feature = "universal_fw")] + Self::cardano__reference_input_id => "Reference input ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__reference_input_index => "Reference input index:", + #[cfg(feature = "universal_fw")] + Self::cardano__reference_script => "Reference script", + #[cfg(feature = "universal_fw")] + Self::cardano__required_signer => "Required signer", + #[cfg(feature = "universal_fw")] + Self::cardano__reward => "reward", + #[cfg(feature = "universal_fw")] + Self::cardano__reward_address => "Address is a reward address.", + #[cfg(feature = "universal_fw")] + Self::cardano__reward_eligibility_warning => "Warning: The address is not a payment address, it is not eligible for rewards.", + #[cfg(feature = "universal_fw")] + Self::cardano__rewards_go_to => "Rewards go to:", + #[cfg(feature = "universal_fw")] + Self::cardano__script => "script", + #[cfg(feature = "universal_fw")] + Self::cardano__script_all => "All", + #[cfg(feature = "universal_fw")] + Self::cardano__script_any => "Any", + #[cfg(feature = "universal_fw")] + Self::cardano__script_data_hash => "Script data hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__script_hash => "Script hash:", + #[cfg(feature = "universal_fw")] + Self::cardano__script_invalid_before => "Invalid before", + #[cfg(feature = "universal_fw")] + Self::cardano__script_invalid_hereafter => "Invalid hereafter", + #[cfg(feature = "universal_fw")] + Self::cardano__script_key => "Key", + #[cfg(feature = "universal_fw")] + Self::cardano__script_n_of_k => "N of K", + #[cfg(feature = "universal_fw")] + Self::cardano__script_reward => "script reward", + #[cfg(feature = "universal_fw")] + Self::cardano__sending => "SENDING", + #[cfg(feature = "universal_fw")] + Self::cardano__show_simple => "Show Simple", + #[cfg(feature = "universal_fw")] + Self::cardano__sign_tx_path_template => "Sign transaction with {0}:", + #[cfg(feature = "universal_fw")] + Self::cardano__stake_delegation => "Stake delegation", + #[cfg(feature = "universal_fw")] + Self::cardano__stake_deregistration => "Stake key deregistration", + #[cfg(feature = "universal_fw")] + Self::cardano__stake_pool_registration => "Stakepool registration", + #[cfg(feature = "universal_fw")] + Self::cardano__stake_pool_registration_pool_id => "Stake pool registration\nPool ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__stake_registration => "Stake key registration", + #[cfg(feature = "universal_fw")] + Self::cardano__staking_key_for_account => "Staking key for account", + #[cfg(feature = "universal_fw")] + Self::cardano__to_pool => "to pool:", + #[cfg(feature = "universal_fw")] + Self::cardano__token_minting_path => "token minting path", + #[cfg(feature = "universal_fw")] + Self::cardano__total_collateral => "Total collateral:", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction => "Transaction", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_contains_minting_or_burning => "The transaction contains minting or burning of tokens.", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_contains_script_address_no_datum => "The following transaction output contains a script address, but does not contain a datum.", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_fee => "Transaction fee:", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_id => "Transaction ID:", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_no_collateral_input => "The transaction contains no collateral inputs. Plutus script will not be able to run.", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_no_script_data_hash => "The transaction contains no script data hash. Plutus script will not be able to run.", + #[cfg(feature = "universal_fw")] + Self::cardano__transaction_output_contains_tokens => "The following transaction output contains tokens.", + #[cfg(feature = "universal_fw")] + Self::cardano__ttl => "TTL:", + #[cfg(feature = "universal_fw")] + Self::cardano__unknown_collateral_amount => "Unknown collateral amount.", + #[cfg(feature = "universal_fw")] + Self::cardano__unusual_path => "Path is unusual.", + #[cfg(feature = "universal_fw")] + Self::cardano__valid_since => "Valid since:", + #[cfg(feature = "universal_fw")] + Self::cardano__verify_script => "VERIFY SCRIPT", + #[cfg(feature = "universal_fw")] + Self::cardano__vote_key_registration => "Vote key registration (CIP-36)", + #[cfg(feature = "universal_fw")] + Self::cardano__vote_public_key => "Vote public key:", + #[cfg(feature = "universal_fw")] + Self::cardano__voting_purpose => "Voting purpose:", + #[cfg(feature = "universal_fw")] + Self::cardano__warning => "Warning", + #[cfg(feature = "universal_fw")] + Self::cardano__weight => "Weight:", + #[cfg(feature = "universal_fw")] + Self::cardano__withdrawal_for_address_template => "Confirm withdrawal for {0} address:", + #[cfg(feature = "universal_fw")] + Self::cardano__x_of_y_signatures_template => "Requires {0} out of {1} signatures.", + Self::coinjoin__access_account => "Access your coinjoin account?", + Self::coinjoin__do_not_disconnect => "Do not disconnect your Trezor!", + Self::coinjoin__max_mining_fee => "Max mining fee", + Self::coinjoin__max_rounds => "Max rounds", + Self::coinjoin__title => "AUTHORIZE COINJOIN", + Self::coinjoin__title_do_not_disconnect => "DO NOT DISCONNECT YOUR TREZOR!", + Self::coinjoin__title_progress => "COINJOIN IN PROGRESS", + Self::coinjoin__waiting_for_others => "Waiting for others", + Self::confirm_total__fee_rate => "Fee rate:", + Self::confirm_total__sending_from_account => "Sending from account:", + Self::confirm_total__title_fee => "FEE INFORMATION", + Self::confirm_total__title_sending_from => "SENDING FROM", + Self::debug__loading_seed => "LOADING SEED", + Self::debug__loading_seed_not_recommended => "Loading private seed is not recommended.", + Self::device_name__change_template => "Change device name to {0}?", + Self::device_name__title => "DEVICE NAME", + Self::entropy__send => "Do you really want to send entropy?", + Self::entropy__title => "INTERNAL ENTROPY", + Self::entropy__title_confirm => "CONFIRM ENTROPY", + #[cfg(feature = "universal_fw")] + Self::eos__about_to_sign_template => "You are about to sign {0}.", + #[cfg(feature = "universal_fw")] + Self::eos__action_name => "Action Name:", + #[cfg(feature = "universal_fw")] + Self::eos__arbitrary_data => "Arbitrary data", + #[cfg(feature = "universal_fw")] + Self::eos__buy_ram => "Buy RAM", + #[cfg(feature = "universal_fw")] + Self::eos__bytes => "Bytes:", + #[cfg(feature = "universal_fw")] + Self::eos__cancel_vote => "Cancel vote", + #[cfg(feature = "universal_fw")] + Self::eos__checksum => "Checksum:", + #[cfg(feature = "universal_fw")] + Self::eos__code => "Code:", + #[cfg(feature = "universal_fw")] + Self::eos__contract => "Contract:", + #[cfg(feature = "universal_fw")] + Self::eos__cpu => "CPU:", + #[cfg(feature = "universal_fw")] + Self::eos__creator => "Creator:", + #[cfg(feature = "universal_fw")] + Self::eos__delegate => "Delegate", + #[cfg(feature = "universal_fw")] + Self::eos__delete_auth => "Delete Auth", + #[cfg(feature = "universal_fw")] + Self::eos__from => "From:", + #[cfg(feature = "universal_fw")] + Self::eos__link_auth => "Link Auth", + #[cfg(feature = "universal_fw")] + Self::eos__memo => "Memo", + #[cfg(feature = "universal_fw")] + Self::eos__name => "Name:", + #[cfg(feature = "universal_fw")] + Self::eos__net => "NET:", + #[cfg(feature = "universal_fw")] + Self::eos__new_account => "New account", + #[cfg(feature = "universal_fw")] + Self::eos__owner => "Owner:", + #[cfg(feature = "universal_fw")] + Self::eos__parent => "Parent:", + #[cfg(feature = "universal_fw")] + Self::eos__payer => "Payer:", + #[cfg(feature = "universal_fw")] + Self::eos__permission => "Permission:", + #[cfg(feature = "universal_fw")] + Self::eos__proxy => "Proxy:", + #[cfg(feature = "universal_fw")] + Self::eos__receiver => "Receiver:", + #[cfg(feature = "universal_fw")] + Self::eos__refund => "Refund", + #[cfg(feature = "universal_fw")] + Self::eos__requirement => "Requirement:", + #[cfg(feature = "universal_fw")] + Self::eos__sell_ram => "Sell RAM", + #[cfg(feature = "universal_fw")] + Self::eos__sender => "Sender:", + #[cfg(feature = "universal_fw")] + Self::eos__sign_transaction => "Sign transaction", + #[cfg(feature = "universal_fw")] + Self::eos__threshold => "Threshold:", + #[cfg(feature = "universal_fw")] + Self::eos__to => "To:", + #[cfg(feature = "universal_fw")] + Self::eos__transfer => "Transfer:", + #[cfg(feature = "universal_fw")] + Self::eos__type => "Type:", + #[cfg(feature = "universal_fw")] + Self::eos__undelegate => "Undelegate", + #[cfg(feature = "universal_fw")] + Self::eos__unlink_auth => "Unlink Auth", + #[cfg(feature = "universal_fw")] + Self::eos__update_auth => "Update Auth", + #[cfg(feature = "universal_fw")] + Self::eos__vote_for_producers => "Vote for producers", + #[cfg(feature = "universal_fw")] + Self::eos__vote_for_proxy => "Vote for proxy", + #[cfg(feature = "universal_fw")] + Self::eos__voter => "Voter:", + #[cfg(feature = "universal_fw")] + Self::ethereum__amount_sent => "Amount sent:", + #[cfg(feature = "universal_fw")] + Self::ethereum__contract => "Contract:", + #[cfg(feature = "universal_fw")] + Self::ethereum__data_size_template => "Size: {0} bytes", + #[cfg(feature = "universal_fw")] + Self::ethereum__gas_limit => "Gas limit:", + #[cfg(feature = "universal_fw")] + Self::ethereum__gas_price => "Gas price:", + #[cfg(feature = "universal_fw")] + Self::ethereum__max_gas_price => "Max gas price:", + #[cfg(feature = "universal_fw")] + Self::ethereum__name_and_version => "Name and version", + #[cfg(feature = "universal_fw")] + Self::ethereum__new_contract => "new contract?", + #[cfg(feature = "universal_fw")] + Self::ethereum__no_message_field => "No message field", + #[cfg(feature = "universal_fw")] + Self::ethereum__priority_fee => "Priority fee:", + #[cfg(feature = "universal_fw")] + Self::ethereum__show_full_array => "Show full array", + #[cfg(feature = "universal_fw")] + Self::ethereum__show_full_domain => "Show full domain", + #[cfg(feature = "universal_fw")] + Self::ethereum__show_full_message => "Show full message", + #[cfg(feature = "universal_fw")] + Self::ethereum__show_full_struct => "Show full struct", + #[cfg(feature = "universal_fw")] + Self::ethereum__sign_eip712 => "Really sign EIP-712 typed data?", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_confirm_data => "CONFIRM DATA", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_confirm_domain => "CONFIRM DOMAIN", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_confirm_message => "CONFIRM MESSAGE", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_confirm_struct => "CONFIRM STRUCT", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_confirm_typed_data => "CONFIRM TYPED DATA", + #[cfg(feature = "universal_fw")] + Self::ethereum__title_signing_address => "SIGNING ADDRESS", + #[cfg(feature = "universal_fw")] + Self::ethereum__units_template => "{0} units", + #[cfg(feature = "universal_fw")] + Self::ethereum__unknown_token => "Unknown token", + #[cfg(feature = "universal_fw")] + Self::ethereum__valid_signature => "The signature is valid.", + Self::experimental_mode__enable => "Enable experimental features?", + Self::experimental_mode__only_for_dev => "Only for development and beta testing!", + Self::experimental_mode__title => "EXPERIMENTAL MODE", + #[cfg(feature = "universal_fw")] + Self::fido__already_registered => "Already registered", + #[cfg(feature = "universal_fw")] + Self::fido__device_already_registered => "This device is already registered with this application.", + #[cfg(feature = "universal_fw")] + Self::fido__device_already_registered_with_template => "This device is already registered with {0}.", + #[cfg(feature = "universal_fw")] + Self::fido__device_not_registered => "This device is not registered with this application.", + #[cfg(feature = "universal_fw")] + Self::fido__does_not_belong => "The credential you are trying to import does\nnot belong to this authenticator.", + #[cfg(feature = "universal_fw")] + Self::fido__erase_credentials => "erase all credentials?", + #[cfg(feature = "universal_fw")] + Self::fido__export_credentials => "Export information about the credentials stored on this device?", + #[cfg(feature = "universal_fw")] + Self::fido__not_registered => "Not registered", + #[cfg(feature = "universal_fw")] + Self::fido__not_registered_with_template => "This device is not registered with\n{0}.", + #[cfg(feature = "universal_fw")] + Self::fido__please_enable_pin_protection => "Please enable PIN protection.", + #[cfg(feature = "universal_fw")] + Self::fido__title_authenticate => "FIDO2 AUTHENTICATE", + #[cfg(feature = "universal_fw")] + Self::fido__title_import_credential => "IMPORT CREDENTIAL", + #[cfg(feature = "universal_fw")] + Self::fido__title_list_credentials => "LIST CREDENTIALS", + #[cfg(feature = "universal_fw")] + Self::fido__title_register => "FIDO2 REGISTER", + #[cfg(feature = "universal_fw")] + Self::fido__title_remove_credential => "REMOVE CREDENTIAL", + #[cfg(feature = "universal_fw")] + Self::fido__title_reset => "FIDO2 RESET", + #[cfg(feature = "universal_fw")] + Self::fido__title_u2f_auth => "U2F AUTHENTICATE", + #[cfg(feature = "universal_fw")] + Self::fido__title_u2f_register => "U2F REGISTER", + #[cfg(feature = "universal_fw")] + Self::fido__title_verify_user => "FIDO2 VERIFY USER", + #[cfg(feature = "universal_fw")] + Self::fido__unable_to_verify_user => "Unable to verify user.", + #[cfg(feature = "universal_fw")] + Self::fido__wanna_erase_credentials => "Do you really want to erase all credentials?", + Self::firmware_update__title => "UPDATE FIRMWARE", + Self::firmware_update__title_fingerprint => "FW FINGERPRINT", + Self::homescreen__click_to_connect => "Click to Connect", + Self::homescreen__click_to_unlock => "Click to Unlock", + Self::homescreen__title_backup_failed => "BACKUP FAILED", + Self::homescreen__title_backup_needed => "BACKUP NEEDED", + Self::homescreen__title_coinjoin_authorized => "COINJOIN AUTHORIZED", + Self::homescreen__title_experimental_mode => "EXPERIMENTAL MODE", + Self::homescreen__title_no_usb_connection => "NO USB CONNECTION", + Self::homescreen__title_pin_not_set => "PIN NOT SET", + Self::homescreen__title_seedless => "SEEDLESS", + Self::homescreen__title_set => "CHANGE HOMESCREEN?", + Self::inputs__back => "BACK", + Self::inputs__cancel => "CANCEL", + Self::inputs__delete => "DELETE", + Self::inputs__enter => "ENTER", + Self::inputs__return => "RETURN", + Self::inputs__show => "SHOW", + Self::inputs__space => "SPACE", + Self::joint__title => "JOINT TRANSACTION", + Self::joint__to_the_total_amount => "To the total amount:", + Self::joint__you_are_contributing => "You are contributing:", + Self::language__change_to_template => "Change language to {0}?", + Self::language__changed => "Language changed successfully", + Self::language__progress => "CHANGING LANGUAGE", + Self::language__title => "LANGUAGE SETTINGS", + Self::lockscreen__tap_to_connect => "Tap to connect", + Self::lockscreen__tap_to_unlock => "Tap to unlock", + Self::lockscreen__title_locked => "LOCKED", + Self::lockscreen__title_not_connected => "NOT CONNECTED", + Self::misc__decrypt_value => "DECRYPT VALUE", + Self::misc__encrypt_value => "ENCRYPT VALUE", + Self::misc__title_suite_labeling => "SUITE LABELING", + Self::modify_amount__decrease_amount => "Decrease amount by:", + Self::modify_amount__increase_amount => "Increase amount by:", + Self::modify_amount__new_amount => "New amount:", + Self::modify_amount__title => "MODIFY AMOUNT", + Self::modify_fee__decrease_fee => "Decrease fee by:", + Self::modify_fee__fee_rate => "Fee rate:", + Self::modify_fee__increase_fee => "Increase fee by:", + Self::modify_fee__new_transaction_fee => "New transaction fee:", + Self::modify_fee__no_change => "Fee did not change.\n", + Self::modify_fee__title => "MODIFY FEE", + Self::modify_fee__transaction_fee => "Transaction fee:", + #[cfg(feature = "universal_fw")] + Self::monero__confirm_export => "Confirm export", + #[cfg(feature = "universal_fw")] + Self::monero__confirm_ki_sync => "Confirm ki sync", + #[cfg(feature = "universal_fw")] + Self::monero__confirm_refresh => "Confirm refresh", + #[cfg(feature = "universal_fw")] + Self::monero__confirm_unlock_time => "Confirm unlock time", + #[cfg(feature = "universal_fw")] + Self::monero__hashing_inputs => "Hashing inputs", + #[cfg(feature = "universal_fw")] + Self::monero__payment_id => "Payment ID", + #[cfg(feature = "universal_fw")] + Self::monero__postprocessing => "Postprocessing...", + #[cfg(feature = "universal_fw")] + Self::monero__processing => "Processing...", + #[cfg(feature = "universal_fw")] + Self::monero__processing_inputs => "Processing inputs", + #[cfg(feature = "universal_fw")] + Self::monero__processing_outputs => "Processing outputs", + #[cfg(feature = "universal_fw")] + Self::monero__signing => "Signing...", + #[cfg(feature = "universal_fw")] + Self::monero__signing_inputs => "Signing inputs", + #[cfg(feature = "universal_fw")] + Self::monero__unlock_time_set_template => "Unlock time for this transaction is set to {0}", + #[cfg(feature = "universal_fw")] + Self::monero__wanna_export_tx_der => "Do you really want to export tx_der\nfor tx_proof?", + #[cfg(feature = "universal_fw")] + Self::monero__wanna_export_tx_key => "Do you really want to export tx_key?", + #[cfg(feature = "universal_fw")] + Self::monero__wanna_export_watchkey => "Do you really want to export watch-only credentials?", + #[cfg(feature = "universal_fw")] + Self::monero__wanna_start_refresh => "Do you really want to\nstart refresh?", + #[cfg(feature = "universal_fw")] + Self::monero__wanna_sync_key_images => "Do you really want to\nsync key images?", + #[cfg(feature = "universal_fw")] + Self::nem__absolute => "absolute", + #[cfg(feature = "universal_fw")] + Self::nem__activate => "Activate", + #[cfg(feature = "universal_fw")] + Self::nem__add => "Add", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_action => "Confirm action", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_address => "Confirm address", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_creation_fee => "Confirm creation fee", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_mosaic => "Confirm mosaic", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_multisig_fee => "Confirm multisig fee", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_namespace => "Confirm namespace", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_payload => "Confirm payload", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_properties => "Confirm properties", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_rental_fee => "Confirm rental fee", + #[cfg(feature = "universal_fw")] + Self::nem__confirm_transfer_of => "Confirm transfer of", + #[cfg(feature = "universal_fw")] + Self::nem__convert_account_to_multisig => "Convert account to multisig account?", + #[cfg(feature = "universal_fw")] + Self::nem__cosign_transaction_for => "Cosign transaction for", + #[cfg(feature = "universal_fw")] + Self::nem__cosignatory => " cosignatory", + #[cfg(feature = "universal_fw")] + Self::nem__create_mosaic => "Create mosaic", + #[cfg(feature = "universal_fw")] + Self::nem__create_namespace => "Create namespace", + #[cfg(feature = "universal_fw")] + Self::nem__deactivate => "Deactivate", + #[cfg(feature = "universal_fw")] + Self::nem__decrease => "Decrease", + #[cfg(feature = "universal_fw")] + Self::nem__description => "Description:", + #[cfg(feature = "universal_fw")] + Self::nem__divisibility_and_levy_cannot_be_shown => "Divisibility and levy cannot be shown for unknown mosaics", + #[cfg(feature = "universal_fw")] + Self::nem__encrypted => "Encrypted:", + #[cfg(feature = "universal_fw")] + Self::nem__final_confirm => "FINAL CONFIRM", + #[cfg(feature = "universal_fw")] + Self::nem__immutable => "immutable", + #[cfg(feature = "universal_fw")] + Self::nem__increase => "Increase", + #[cfg(feature = "universal_fw")] + Self::nem__initial_supply => "Initial supply:", + #[cfg(feature = "universal_fw")] + Self::nem__initiate_transaction_for => "Initiate transaction for", + #[cfg(feature = "universal_fw")] + Self::nem__levy_divisibility => "Levy divisibility:", + #[cfg(feature = "universal_fw")] + Self::nem__levy_fee => "Levy fee:", + #[cfg(feature = "universal_fw")] + Self::nem__levy_fee_of => "Confirm mosaic levy fee of", + #[cfg(feature = "universal_fw")] + Self::nem__levy_mosaic => "Levy mosaic:", + #[cfg(feature = "universal_fw")] + Self::nem__levy_namespace => "Levy namespace:", + #[cfg(feature = "universal_fw")] + Self::nem__levy_recipient => "Levy recipient:", + #[cfg(feature = "universal_fw")] + Self::nem__levy_type => "Levy type:", + #[cfg(feature = "universal_fw")] + Self::nem__modify_supply_for => "Modify supply for", + #[cfg(feature = "universal_fw")] + Self::nem__modify_the_number_of_cosignatories_by => "Modify the number of cosignatories by ", + #[cfg(feature = "universal_fw")] + Self::nem__mutable => "mutable", + #[cfg(feature = "universal_fw")] + Self::nem__of => "of", + #[cfg(feature = "universal_fw")] + Self::nem__percentile => "percentile", + #[cfg(feature = "universal_fw")] + Self::nem__raw_units_template => "{0} raw units", + #[cfg(feature = "universal_fw")] + Self::nem__remote_harvesting => " remote harvesting?", + #[cfg(feature = "universal_fw")] + Self::nem__remove => "Remove", + #[cfg(feature = "universal_fw")] + Self::nem__set_minimum_cosignatories_to => "Set minimum cosignatories to ", + #[cfg(feature = "universal_fw")] + Self::nem__sign_tx_fee_template => "Sign this transaction\nand pay {0}\nfor network fee?", + #[cfg(feature = "universal_fw")] + Self::nem__supply_change => "Supply change", + #[cfg(feature = "universal_fw")] + Self::nem__supply_units_template => "{0} supply by {1} whole units?", + #[cfg(feature = "universal_fw")] + Self::nem__transferable => "Transferable?", + #[cfg(feature = "universal_fw")] + Self::nem__under_namespace => "under namespace", + #[cfg(feature = "universal_fw")] + Self::nem__unencrypted => "Unencrypted:", + #[cfg(feature = "universal_fw")] + Self::nem__unknown_mosaic => "Unknown mosaic!", + Self::passphrase__access_hidden_wallet => "Access hidden wallet?", + Self::passphrase__always_on_device => "Do you really want to enter passphrase always on the device?", + Self::passphrase__from_host_not_shown => "Passphrase provided by host will be used but will not be displayed due to the device settings.", + Self::passphrase__hidden_wallet => "HIDDEN WALLET", + Self::passphrase__hide => "Hide passphrase coming from host?", + Self::passphrase__next_screen_will_show_passphrase => "Next screen will show the passphrase.", + Self::passphrase__please_enter => "Please enter your passphrase.", + Self::passphrase__revoke_on_device => "Do you want to revoke the passphrase on device setting?", + Self::passphrase__title_confirm => "CONFIRM PASSPHRASE", + Self::passphrase__title_enter => "ENTER PASSPHRASE", + Self::passphrase__title_hide => "HIDE PASSPHRASE", + Self::passphrase__title_settings => "PASSPHRASE SETTINGS", + Self::passphrase__title_source => "PASSPHRASE SOURCE", + Self::passphrase__turn_off => "Turn off passphrase protection?", + Self::passphrase__turn_on => "Turn on passphrase protection?", + Self::pin__change => "Change PIN?", + Self::pin__changed => "PIN changed.", + Self::pin__cursor_will_change => "Position of the cursor will change between entries for enhanced security.", + Self::pin__diff_from_wipe_code => "The new PIN must be different from your wipe code.", + Self::pin__disabled => "PIN protection\nturned off.", + Self::pin__enabled => "PIN protection\nturned on.", + Self::pin__enter => "Enter PIN", + Self::pin__enter_new => "Enter new PIN", + Self::pin__entered_not_valid => "The PIN you have entered is not valid.", + Self::pin__info => "PIN will be required to access this device.", + Self::pin__invalid_pin => "Invalid PIN", + Self::pin__last_attempt => "Last attempt", + Self::pin__mismatch => "Entered PINs do not match!", + Self::pin__pin_mismatch => "PIN mismatch", + Self::pin__please_check_again => "Please check again.", + Self::pin__reenter_new => "Re-enter new PIN", + Self::pin__reenter_to_confirm => "Please re-enter PIN to confirm.", + Self::pin__should_be_long => "PIN should be 4-50 digits long.", + Self::pin__title_check_pin => "CHECK PIN", + Self::pin__title_settings => "PIN SETTINGS", + Self::pin__title_wrong_pin => "WRONG PIN", + Self::pin__tries_left => "tries left", + Self::pin__turn_off => "Are you sure you want to turn off PIN protection?", + Self::pin__turn_on => "Turn on PIN protection?", + Self::pin__wrong_pin => "Wrong PIN", + Self::plurals__contains_x_keys => "key|keys", + Self::plurals__lock_after_x_hours => "hour|hours", + Self::plurals__lock_after_x_milliseconds => "millisecond|milliseconds", + Self::plurals__lock_after_x_minutes => "minute|minutes", + Self::plurals__lock_after_x_seconds => "second|seconds", + Self::plurals__sign_x_actions => "action|actions", + Self::plurals__transaction_of_x_operations => "operation|operations", + Self::plurals__x_groups_needed => "group|groups", + Self::plurals__x_shares_needed => "share|shares", + Self::progress__authenticity_check => "Checking authenticity...", + Self::progress__done => "Done", + Self::progress__loading_transaction => "Loading transaction...", + Self::progress__locking_device => "Locking the device...", + Self::progress__one_second_left => "1 second left", + Self::progress__title_please_wait => "PLEASE WAIT", + Self::storage_msg__title_processing => "PROCESSING", + Self::progress__refreshing => "Refreshing...", + Self::progress__signing_transaction => "Signing transaction...", + Self::progress__syncing => "Syncing...", + Self::progress__x_seconds_left_template => "{0} seconds left", + Self::reboot_to_bootloader__restart => "Trezor will restart in bootloader mode.", + Self::reboot_to_bootloader__title => "GO TO BOOTLOADER", + Self::reboot_to_bootloader__version_by_template => "Firmware version {0}\nby {1}", + Self::recovery__cancel_dry_run => "Cancel backup check", + Self::recovery__check_dry_run => "Check your backup?", + Self::recovery__cursor_will_change => "Position of the cursor will change between entries for enhanced security.", + Self::recovery__dry_run_bip39_valid_match => "The entered recovery seed is valid and matches the one in the device.", + Self::recovery__dry_run_bip39_valid_mismatch => "The entered recovery seed is valid but does not match the one in the device.", + Self::recovery__dry_run_slip39_valid_match => "The entered recovery shares are valid and match what is currently in the device.", + Self::recovery__dry_run_slip39_valid_mismatch => "The entered recovery shares are valid but do not match what is currently in the device.", + Self::recovery__enter_any_share => "Enter any share", + Self::recovery__enter_backup => "Enter your backup.", + Self::recovery__enter_different_share => "Please enter a different share.", + Self::recovery__enter_share_from_diff_group => "Enter share from a different group.", + Self::recovery__group_num_template => "Group {0}", + Self::recovery__group_threshold_reached => "Group threshold reached.", + Self::recovery__invalid_seed_entered => "Invalid recovery seed entered.", + Self::recovery__invalid_share_entered => "Invalid recovery share entered.", + Self::recovery__more_shares_needed => "More shares needed", + Self::recovery__num_of_words => "Select the number of words in your backup.", + Self::recovery__only_first_n_letters => "You'll only have to select the first 2-4 letters of each word.", + Self::recovery__progress_will_be_lost => "All progress will be lost.", + Self::recovery__select_num_of_words => "Select the number of words in your backup.", + Self::recovery__share_already_entered => "Share already entered", + Self::recovery__share_from_another_shamir => "You have entered a share from another Shamir Backup.", + Self::recovery__share_num_template => "Share {0}", + Self::recovery__title => "RECOVER WALLET", + Self::recovery__title_cancel_dry_run => "CANCEL BACKUP CHECK", + Self::recovery__title_cancel_recovery => "CANCEL RECOVERY", + Self::recovery__title_dry_run => "BACKUP CHECK", + Self::recovery__title_recover => "RECOVER WALLET", + Self::recovery__title_remaining_shares => "REMAINING SHARES", + Self::recovery__type_word_x_of_y_template => "Type word {0} of {1}", + Self::recovery__wallet_recovered => "Wallet recovered successfully", + Self::recovery__wanna_cancel_dry_run => "Are you sure you want to cancel the backup check?", + Self::recovery__wanna_cancel_recovery => "Are you sure you want to cancel the recovery process?", + Self::recovery__word_count_template => "({0} words)", + Self::recovery__word_x_of_y_title_template => "WORD {0} OF {1}", + Self::recovery__x_more_items_starting_template_plural => "{count} more {plural} starting", + Self::recovery__x_more_shares_needed_template_plural => "{count} more {plural} needed.", + Self::recovery__x_of_y_entered_template => "{0} of {1} shares entered successfully.", + Self::recovery__you_have_entered => "You have entered", + Self::reset__advanced_group_threshold_info => "The group threshold specifies the number of groups required to recover your wallet.", + Self::reset__all_x_of_y_template => "all {0} of {1} shares", + Self::reset__any_x_of_y_template => "any {0} of {1} shares", + Self::reset__button_create => "CREATE WALLET", + Self::reset__button_recover => "RECOVER WALLET", + Self::reset__by_continuing => "By continuing you agree to Trezor Company's terms and conditions.", + Self::reset__check_backup_title => "CHECK BACKUP", + Self::reset__check_group_share_title_template => "CHECK G{0} - SHARE {1}", + Self::reset__check_seed_title => "CHECK SEED", + Self::reset__check_share_title_template => "CHECK SHARE #{0}", + Self::reset__continue_with_next_share => "Continue with the next share.", + Self::reset__continue_with_share_template => "Continue with share #{0}.", + Self::reset__finished_verifying_group_template => "You have finished verifying your recovery shares for group {0}.", + Self::reset__finished_verifying_seed => "You have finished verifying your recovery seed.", + Self::reset__finished_verifying_shares => "You have finished verifying your recovery shares.", + Self::reset__group_description => "A group is made up of recovery shares.", + Self::reset__group_info => "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds.", + Self::reset__group_share_checked_successfully_template => "Group {0} - Share {1} checked successfully.", + Self::reset__group_share_title_template => "GROUP {0} - SHARE {1}", + Self::reset__more_info_at => "More info at", + Self::reset__need_all_share_template => "For recovery you need all {0} of the shares.", + Self::reset__need_any_share_template => "For recovery you need any {0} of the shares.", + Self::reset__needed_to_form_a_group => "needed to form a group. ", + Self::reset__needed_to_recover_your_wallet => "needed to recover your wallet. ", + Self::reset__never_make_digital_copy => "Never make a digital copy of your backup or upload it online!", + Self::reset__num_of_share_holders_template => "{0} people or locations will each hold one share.", + Self::reset__num_of_shares_advanced_info_template => "Each recovery share is a sequence of 20 words. Next you will choose the threshold number of shares needed to form Group {0}.", + Self::reset__num_of_shares_basic_info => "Each recovery share is a sequence of 20 words. Next you will choose how many shares you need to recover your wallet.", + Self::reset__num_shares_for_group_template => "The required number of shares to form Group {0}.", + Self::reset__number_of_shares_info => "= total number of unique word lists used for wallet backup.", + Self::reset__one_share => "1 share", + Self::reset__only_one_share_will_be_created => "Only one share will be created.", + Self::reset__recovery_seed_title => "RECOVERY SEED", + Self::reset__recovery_share_title_template => "RECOVERY SHARE #{0}", + Self::reset__required_number_of_groups => "The required number of groups for recovery.", + Self::reset__select_correct_word => "Select the correct word for each position.", + Self::reset__select_word_title_template => "SELECT {0} WORD", + Self::reset__select_word_x_of_y_template => "Select word {0} of {1}:", + Self::reset__set_it_to_count_template => "Set it to {0} and you will need ", + Self::reset__share_checked_successfully_template => "Recovery share #{0} checked successfully.", + Self::reset__share_words_title => "STANDARD BACKUP", + Self::reset__slip39_checklist_num_groups => "Number of groups", + Self::reset__slip39_checklist_num_shares => "Number of shares", + Self::reset__slip39_checklist_set_num_groups => "Set number of groups", + Self::reset__slip39_checklist_set_num_shares => "Set number of shares", + Self::reset__slip39_checklist_set_sizes => "Set sizes and thresholds", + Self::reset__slip39_checklist_set_sizes_longer => "Set size and threshold for each group", + Self::reset__slip39_checklist_set_threshold => "Set threshold", + Self::reset__slip39_checklist_title => "BACKUP CHECKLIST", + Self::reset__slip39_checklist_write_down => "Write down and check all shares", + Self::reset__slip39_checklist_write_down_recovery => "Write down and check all recovery shares", + Self::reset__the_threshold_sets_the_number_of_shares => "The threshold sets the number of shares ", + Self::reset__threshold_info => "= minimum number of unique word lists used for recovery.", + Self::reset__title_backup_is_done => "BACKUP IS DONE", + Self::reset__title_create_wallet => "CREATE WALLET", + Self::reset__title_create_wallet_shamir => "CREATE WALLET (SHAMIR)", + Self::reset__title_group_threshold => "GROUP THRESHOLD", + Self::reset__title_number_of_groups => "NUMBER OF GROUPS", + Self::reset__title_number_of_shares => "NUMBER OF SHARES", + Self::reset__title_set_group_threshold => "SET GROUP THRESHOLD", + Self::reset__title_set_number_of_groups => "SET NUMBER OF GROUPS", + Self::reset__title_set_number_of_shares => "SET NUMBER OF SHARES", + Self::reset__title_set_threshold => "SET THRESHOLD", + Self::reset__to_form_group_template => "to form Group {0}.", + Self::reset__tos_link => "trezor.io/tos", + Self::reset__total_number_of_shares_in_group_template => "Set the total number of shares in Group {0}.", + Self::reset__use_your_backup => "Use your backup when you need to recover your wallet.", + Self::reset__write_down_words_template => "Write down all {0} words in order.", + Self::reset__wrong_word_selected => "Wrong word selected!", + Self::reset__you_need_one_share => "For recovery you need 1 share.", + Self::reset__your_backup_is_done => "Your backup is done.", + #[cfg(feature = "universal_fw")] + Self::ripple__confirm_tag => "Confirm tag", + #[cfg(feature = "universal_fw")] + Self::ripple__destination_tag_template => "Destination tag:\n{0}", + Self::rotation__change_template => "Do you want to change device rotation to {0}?", + Self::rotation__east => "east", + Self::rotation__north => "north", + Self::rotation__south => "south", + Self::rotation__title_change => "CHANGE ROTATION", + Self::rotation__west => "west", + Self::safety_checks__approve_unsafe_always => "Trezor will allow you to approve some actions which might be unsafe.", + Self::safety_checks__approve_unsafe_temporary => "Trezor will temporarily allow you to approve some actions which might be unsafe.", + Self::safety_checks__enforce_strict => "Do you really want to enforce strict safety checks (recommended)?", + Self::safety_checks__title => "SAFETY CHECKS", + Self::safety_checks__title_safety_override => "SAFETY OVERRIDE", + Self::sd_card__all_data_will_be_lost => "All data on the SD card will be lost.", + Self::sd_card__card_required => "SD card required.", + Self::sd_card__disable => "Do you really want to remove SD card protection from your device?", + Self::sd_card__disabled => "You have successfully disabled SD protection.", + Self::sd_card__enable => "Do you really want to secure your device with SD card protection?", + Self::sd_card__enabled => "You have successfully enabled SD protection.", + Self::sd_card__error => "SD CARD ERROR", + Self::sd_card__format_card => "FORMAT SD CARD", + Self::sd_card__insert_correct_card => "Please insert the correct SD card for this device.", + Self::sd_card__please_insert => "Please insert your SD card.", + Self::sd_card__please_unplug_and_insert => "Please unplug the device and insert your SD card.", + Self::sd_card__problem_accessing => "There was a problem accessing the SD card.", + Self::sd_card__refresh => "Do you really want to replace the current SD card secret with a newly generated one?", + Self::sd_card__refreshed => "You have successfully refreshed SD protection.", + Self::sd_card__restart => "Do you want to restart Trezor in bootloader mode?", + Self::sd_card__title => "SD CARD PROTECTION", + Self::sd_card__title_problem => "SD CARD PROBLEM", + Self::sd_card__unknown_filesystem => "Unknown filesystem.", + Self::sd_card__unplug_and_insert_correct => "Please unplug the device and insert the correct SD card.", + Self::sd_card__use_different_card => "Use a different card or format the SD card to the FAT32 filesystem.", + Self::sd_card__wanna_format => "Do you really want to format the SD card?", + Self::sd_card__wrong_sd_card => "Wrong SD card.", + Self::send__address_path => "address path", + Self::send__confirm_sending => "Sending amount", + Self::send__from_multiple_accounts => "Sending from multiple accounts.", + Self::send__including_fee => "Including fee:", + Self::send__maximum_fee => "Maximum fee:", + Self::send__receiving_to_multisig => "Receiving to a multisig address.", + Self::send__title_confirm_sending => "CONFIRM SENDING", + Self::send__title_joint_transaction => "JOINT TRANSACTION", + Self::send__title_receiving_to => "RECEIVING TO", + Self::send__title_sending => "SENDING", + Self::send__title_sending_amount => "SENDING AMOUNT", + Self::send__title_sending_to => "SENDING TO", + Self::send__to_the_total_amount => "To the total amount:", + Self::send__total_amount => "Total amount:", + Self::send__transaction_id => "Transaction ID:", + Self::send__you_are_contributing => "You are contributing:", + Self::share_words__words_in_order => " words in order.", + Self::share_words__wrote_down_all => "I wrote down all ", + Self::sign_message__bytes_template => "{0} Bytes", + Self::sign_message__title_confirm_address => "SIGNING ADDRESS", + Self::sign_message__title_confirm_message => "CONFIRM MESSAGE", + Self::sign_message__message_size => "Message size:", + Self::sign_message__title_verify_address => "VERIFY ADDRESS", + #[cfg(feature = "universal_fw")] + Self::solana__account_index => "Account index", + #[cfg(feature = "universal_fw")] + Self::solana__associated_token_account => "Associated token account", + #[cfg(feature = "universal_fw")] + Self::solana__confirm_multisig => "Confirm multisig", + #[cfg(feature = "universal_fw")] + Self::solana__expected_fee => "Expected fee", + #[cfg(feature = "universal_fw")] + Self::solana__instruction_accounts_template => "Instruction contains {0} accounts and its data is {1} bytes long.", + #[cfg(feature = "universal_fw")] + Self::solana__instruction_data => "Instruction data", + #[cfg(feature = "universal_fw")] + Self::solana__instruction_is_multisig => "The following instruction is a multisig instruction.", + #[cfg(feature = "universal_fw")] + Self::solana__is_provided_via_lookup_table_template => "{0} is provided via a lookup table.", + #[cfg(feature = "universal_fw")] + Self::solana__lookup_table_address => "Lookup table address", + #[cfg(feature = "universal_fw")] + Self::solana__multiple_signers => "Multiple signers", + #[cfg(feature = "universal_fw")] + Self::solana__token_address => "Token address", + #[cfg(feature = "universal_fw")] + Self::solana__transaction_contains_unknown_instructions => "Transaction contains unknown instructions.", + #[cfg(feature = "universal_fw")] + Self::solana__transaction_requires_x_signers_template => "Transaction requires {0} signers which increases the fee.", + #[cfg(feature = "universal_fw")] + Self::stellar__account_merge => "Account Merge", + #[cfg(feature = "universal_fw")] + Self::stellar__account_thresholds => "Account Thresholds", + #[cfg(feature = "universal_fw")] + Self::stellar__add_signer => "Add Signer", + #[cfg(feature = "universal_fw")] + Self::stellar__add_trust => "Add trust", + #[cfg(feature = "universal_fw")] + Self::stellar__all_will_be_sent_to => "All XLM will be sent to:", + #[cfg(feature = "universal_fw")] + Self::stellar__allow_trust => "Allow trust", + #[cfg(feature = "universal_fw")] + Self::stellar__asset => "Asset", + #[cfg(feature = "universal_fw")] + Self::stellar__balance_id => "Balance ID", + #[cfg(feature = "universal_fw")] + Self::stellar__bump_sequence => "Bump Sequence", + #[cfg(feature = "universal_fw")] + Self::stellar__buying => "Buying:", + #[cfg(feature = "universal_fw")] + Self::stellar__claim_claimable_balance => "Claim Claimable Balance", + #[cfg(feature = "universal_fw")] + Self::stellar__clear_data => "Clear data", + #[cfg(feature = "universal_fw")] + Self::stellar__clear_flags => "Clear flags", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_issuer => "CONFIRM ISSUER", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_memo => "CONFIRM MEMO", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_network => "Confirm network", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_operation => "Confirm operation", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_stellar => "CONFIRM STELLAR", + #[cfg(feature = "universal_fw")] + Self::stellar__confirm_timebounds => "Confirm timebounds", + #[cfg(feature = "universal_fw")] + Self::stellar__create_account => "Create Account", + #[cfg(feature = "universal_fw")] + Self::stellar__debited_amount => "Debited amount", + #[cfg(feature = "universal_fw")] + Self::stellar__delete => "Delete", + #[cfg(feature = "universal_fw")] + Self::stellar__delete_passive_offer => "Delete Passive Offer", + #[cfg(feature = "universal_fw")] + Self::stellar__delete_trust => "Delete trust", + #[cfg(feature = "universal_fw")] + Self::stellar__destination => "Destination:", + #[cfg(feature = "universal_fw")] + Self::stellar__exchanges_require_memo => "Important: Many exchanges require a memo when depositing", + #[cfg(feature = "universal_fw")] + Self::stellar__final_confirm => "Final confirm", + #[cfg(feature = "universal_fw")] + Self::stellar__hash => "Hash:", + #[cfg(feature = "universal_fw")] + Self::stellar__high => "High:", + #[cfg(feature = "universal_fw")] + Self::stellar__home_domain => "Home Domain", + #[cfg(feature = "universal_fw")] + Self::stellar__inflation => "Inflation", + #[cfg(feature = "universal_fw")] + Self::stellar__initial_balance => "Initial Balance", + #[cfg(feature = "universal_fw")] + Self::stellar__initialize_signing_with => "Initialize signing with", + #[cfg(feature = "universal_fw")] + Self::stellar__issuer_template => "{0} issuer:", + #[cfg(feature = "universal_fw")] + Self::stellar__key => "Key:", + #[cfg(feature = "universal_fw")] + Self::stellar__limit => "Limit:", + #[cfg(feature = "universal_fw")] + Self::stellar__low => "Low:", + #[cfg(feature = "universal_fw")] + Self::stellar__master_weight => "Master Weight:", + #[cfg(feature = "universal_fw")] + Self::stellar__medium => "Medium:", + #[cfg(feature = "universal_fw")] + Self::stellar__new_offer => "New Offer", + #[cfg(feature = "universal_fw")] + Self::stellar__new_passive_offer => "New Passive Offer", + #[cfg(feature = "universal_fw")] + Self::stellar__no_memo_set => "No memo set!", + #[cfg(feature = "universal_fw")] + Self::stellar__no_restriction => "[no restriction]", + #[cfg(feature = "universal_fw")] + Self::stellar__on_network_template => "Transaction is on {0}", + #[cfg(feature = "universal_fw")] + Self::stellar__path_pay => "Path Pay", + #[cfg(feature = "universal_fw")] + Self::stellar__path_pay_at_least => "Path Pay at least", + #[cfg(feature = "universal_fw")] + Self::stellar__pay => "Pay:", + #[cfg(feature = "universal_fw")] + Self::stellar__pay_at_most => "Pay at most:", + #[cfg(feature = "universal_fw")] + Self::stellar__preauth_transaction => "Pre-auth transaction:", + #[cfg(feature = "universal_fw")] + Self::stellar__price_per_template => "Price per {0}:", + #[cfg(feature = "universal_fw")] + Self::stellar__private_network => "private network", + #[cfg(feature = "universal_fw")] + Self::stellar__remove_signer => "Remove Signer", + #[cfg(feature = "universal_fw")] + Self::stellar__revoke_trust => "REVOKE TRUST", + #[cfg(feature = "universal_fw")] + Self::stellar__selling => "Selling:", + #[cfg(feature = "universal_fw")] + Self::stellar__set_data => "Set data", + #[cfg(feature = "universal_fw")] + Self::stellar__set_flags => "Set flags", + #[cfg(feature = "universal_fw")] + Self::stellar__set_sequence_to_template => "Set sequence to {0}?", + #[cfg(feature = "universal_fw")] + Self::stellar__sign_tx_count_template => "Sign this transaction made up of {0}", + #[cfg(feature = "universal_fw")] + Self::stellar__sign_tx_fee_template => "and pay {0}\nfor fee?", + #[cfg(feature = "universal_fw")] + Self::stellar__source_account => "Source account:", + #[cfg(feature = "universal_fw")] + Self::stellar__testnet_network => "testnet network", + #[cfg(feature = "universal_fw")] + Self::stellar__trusted_account => "Trusted Account", + #[cfg(feature = "universal_fw")] + Self::stellar__update => "Update", + #[cfg(feature = "universal_fw")] + Self::stellar__valid_from => "Valid from (UTC)", + #[cfg(feature = "universal_fw")] + Self::stellar__valid_to => "Valid to (UTC)", + #[cfg(feature = "universal_fw")] + Self::stellar__value_sha256 => "Value (SHA-256):", + #[cfg(feature = "universal_fw")] + Self::stellar__wanna_clean_value_key_template => "Do you want to clear value key {0}?", + #[cfg(feature = "universal_fw")] + Self::stellar__your_account => " your account", + #[cfg(feature = "universal_fw")] + Self::tezos__baker_address => "Baker address:", + #[cfg(feature = "universal_fw")] + Self::tezos__balance => "Balance:", + #[cfg(feature = "universal_fw")] + Self::tezos__ballot => "Ballot:", + #[cfg(feature = "universal_fw")] + Self::tezos__confirm_delegation => "Confirm delegation", + #[cfg(feature = "universal_fw")] + Self::tezos__confirm_origination => "Confirm origination", + #[cfg(feature = "universal_fw")] + Self::tezos__delegator => "Delegator:", + #[cfg(feature = "universal_fw")] + Self::tezos__proposal => "Proposal", + #[cfg(feature = "universal_fw")] + Self::tezos__register_delegate => "Register delegate", + #[cfg(feature = "universal_fw")] + Self::tezos__remove_delegation => "Remove delegation", + #[cfg(feature = "universal_fw")] + Self::tezos__submit_ballot => "Submit ballot", + #[cfg(feature = "universal_fw")] + Self::tezos__submit_proposal => "Submit proposal", + #[cfg(feature = "universal_fw")] + Self::tezos__submit_proposals => "Submit proposals", + Self::tutorial__middle_click => "Press both left and right at the same\ntime to confirm.", + Self::tutorial__press_and_hold => "Press and hold the right button to\napprove important operations.", + Self::tutorial__ready_to_use => "You're ready to\nuse Trezor.", + Self::tutorial__scroll_down => "Press right to scroll down to read all content when text doesn't fit on one screen.\n\rPress left to scroll up.", + Self::tutorial__sure_you_want_skip => "Are you sure you\nwant to skip the tutorial?", + Self::tutorial__title_hello => "HELLO", + Self::tutorial__title_screen_scroll => "SCREEN SCROLL", + Self::tutorial__title_skip => "SKIP TUTORIAL", + Self::tutorial__title_tutorial_complete => "TUTORIAL COMPLETE", + Self::tutorial__use_trezor => "Use Trezor by\nclicking the left and right buttons.\n\rContinue right.", + Self::tutorial__welcome_press_right => "Welcome to Trezor. Press right to continue.", + #[cfg(feature = "universal_fw")] + Self::u2f__get => "Increase and retrieve the U2F counter?", + #[cfg(feature = "universal_fw")] + Self::u2f__set_template => "Set the U2F counter to {0}?", + #[cfg(feature = "universal_fw")] + Self::u2f__title_get => "GET U2F COUNTER", + #[cfg(feature = "universal_fw")] + Self::u2f__title_set => "SET U2F COUNTER", + Self::wipe__info => "All data will be erased.", + Self::wipe__title => "WIPE DEVICE", + Self::wipe__want_to_wipe => "Do you really want to wipe the device?\n", + Self::wipe_code__change => "Change wipe code?", + Self::wipe_code__changed => "Wipe code changed.", + Self::wipe_code__diff_from_pin => "The wipe code must be different from your PIN.", + Self::wipe_code__disabled => "Wipe code disabled.", + Self::wipe_code__enabled => "Wipe code enabled.", + Self::wipe_code__enter_new => "Enter new wipe code", + Self::wipe_code__info => "Wipe code can be used to erase all data from this device.", + Self::wipe_code__invalid => "Invalid wipe code", + Self::wipe_code__mismatch => "The wipe codes you entered do not match.", + Self::wipe_code__reenter => "Re-enter wipe code", + Self::wipe_code__reenter_to_confirm => "Please re-enter wipe code to confirm.", + Self::wipe_code__title_check => "CHECK WIPE CODE", + Self::wipe_code__title_invalid => "INVALID WIPE CODE", + Self::wipe_code__title_settings => "WIPE CODE SETTINGS", + Self::wipe_code__turn_off => "Turn off wipe code protection?", + Self::wipe_code__turn_on => "Turn on wipe code protection?", + Self::wipe_code__wipe_code_mismatch => "Wipe code mismatch", + Self::word_count__title => "NUMBER OF WORDS", + Self::words__account => "Account", + Self::words__account_colon => "Account:", + Self::words__address => "Address", + Self::words__amount => "AMOUNT", + Self::words__are_you_sure => "Are you sure?", + Self::words__array_of => "Array of", + Self::words__blockhash => "Blockhash", + Self::words__buying => "Buying", + Self::words__confirm => "CONFIRM", + Self::words__confirm_fee => "CONFIRM FEE", + Self::words__contains => "Contains", + Self::words__continue_anyway => "Continue anyway?", + Self::words__continue_with => "Continue with", + Self::words__error => "Error", + Self::words__fee => "Fee", + Self::words__from => "from", + Self::words__keep_it_safe => "Keep it safe!", + Self::words__know_what_your_doing => "Continue only if you know what you are doing!", + Self::words__my_trezor => "My Trezor", + Self::words__no => "No", + Self::words__outputs => "outputs", + Self::words__please_check_again => "Please check again", + Self::words__please_try_again => "Please try again", + Self::words__really_wanna => "Do you really want to", + Self::words__title_recipient => "RECIPIENT", + Self::words__sign => "SIGN", + Self::words__signer => "SIGNER", + Self::words__title_check => "CHECK", + Self::words__title_group => "GROUP", + Self::words__title_information => "INFORMATION", + Self::words__title_remember => "REMEMBER", + Self::words__title_share => "SHARE", + Self::words__title_shares => "SHARES", + Self::words__title_success => "SUCCESS", + Self::words__title_summary => "SUMMARY", + Self::words__title_threshold => "THRESHOLD", + Self::words__unknown => "Unknown", + Self::words__warning => "WARNING", + Self::words__writable => "Writable", + Self::words__yes => "Yes", + Self::reboot_to_bootloader__just_a_moment => "Just a moment...", + Self::inputs__previous => "PREVIOUS", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_title_claim => "CLAIM", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_title_claim_address => "CLAIM ADDRESS", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_claim_intro => "Claim ETH from Everstake?", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_title_stake => "STAKE", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_title_stake_address => "STAKE ADDRESS", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_stake_intro => "Stake ETH on Everstake?", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_title_unstake => "UNSTAKE", + #[cfg(feature = "universal_fw")] + Self::ethereum__staking_unstake_intro => "Unstake ETH from Everstake?", + Self::storage_msg__title_starting => "STARTING UP", + Self::storage_msg__title_verifying_pin => "VERIFYING PIN", + Self::storage_msg__title_wrong_pin => "WRONG PIN", + } + } + + #[cfg(feature = "micropython")] + pub fn from_qstr(qstr: Qstr) -> Option { + match qstr { + Qstr::MP_QSTR_addr_mismatch__contact_support_at => Some(Self::addr_mismatch__contact_support_at), + Qstr::MP_QSTR_addr_mismatch__key_mismatch => Some(Self::addr_mismatch__key_mismatch), + Qstr::MP_QSTR_addr_mismatch__mismatch => Some(Self::addr_mismatch__mismatch), + Qstr::MP_QSTR_addr_mismatch__support_url => Some(Self::addr_mismatch__support_url), + Qstr::MP_QSTR_addr_mismatch__wrong_derivation_path => Some(Self::addr_mismatch__wrong_derivation_path), + Qstr::MP_QSTR_addr_mismatch__xpub_mismatch => Some(Self::addr_mismatch__xpub_mismatch), + Qstr::MP_QSTR_address__title_public_key => Some(Self::address__title_public_key), + Qstr::MP_QSTR_address__title_cosigner => Some(Self::address__title_cosigner), + Qstr::MP_QSTR_address__title_receive_address => Some(Self::address__title_receive_address), + Qstr::MP_QSTR_address__title_yours => Some(Self::address__title_yours), + Qstr::MP_QSTR_address_details__derivation_path => Some(Self::address_details__derivation_path), + Qstr::MP_QSTR_address_details__title_receive_address => Some(Self::address_details__title_receive_address), + Qstr::MP_QSTR_address_details__title_receiving_to => Some(Self::address_details__title_receiving_to), + Qstr::MP_QSTR_authenticate__confirm_template => Some(Self::authenticate__confirm_template), + Qstr::MP_QSTR_authenticate__header => Some(Self::authenticate__header), + Qstr::MP_QSTR_auto_lock__change_template => Some(Self::auto_lock__change_template), + Qstr::MP_QSTR_auto_lock__title => Some(Self::auto_lock__title), + Qstr::MP_QSTR_backup__can_back_up_anytime => Some(Self::backup__can_back_up_anytime), + Qstr::MP_QSTR_backup__it_should_be_backed_up => Some(Self::backup__it_should_be_backed_up), + Qstr::MP_QSTR_backup__it_should_be_backed_up_now => Some(Self::backup__it_should_be_backed_up_now), + Qstr::MP_QSTR_backup__new_wallet_created => Some(Self::backup__new_wallet_created), + Qstr::MP_QSTR_backup__new_wallet_successfully_created => Some(Self::backup__new_wallet_successfully_created), + Qstr::MP_QSTR_backup__recover_anytime => Some(Self::backup__recover_anytime), + Qstr::MP_QSTR_backup__title_backup_wallet => Some(Self::backup__title_backup_wallet), + Qstr::MP_QSTR_backup__title_skip => Some(Self::backup__title_skip), + Qstr::MP_QSTR_backup__want_to_skip => Some(Self::backup__want_to_skip), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__buy => Some(Self::binance__buy), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__confirm_cancel => Some(Self::binance__confirm_cancel), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__confirm_input => Some(Self::binance__confirm_input), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__confirm_order => Some(Self::binance__confirm_order), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__confirm_output => Some(Self::binance__confirm_output), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__order_id => Some(Self::binance__order_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__pair => Some(Self::binance__pair), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__price => Some(Self::binance__price), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__quantity => Some(Self::binance__quantity), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__sell => Some(Self::binance__sell), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__sender_address => Some(Self::binance__sender_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_binance__side => Some(Self::binance__side), + Qstr::MP_QSTR_bitcoin__commitment_data => Some(Self::bitcoin__commitment_data), + Qstr::MP_QSTR_bitcoin__confirm_locktime => Some(Self::bitcoin__confirm_locktime), + Qstr::MP_QSTR_bitcoin__create_proof_of_ownership => Some(Self::bitcoin__create_proof_of_ownership), + Qstr::MP_QSTR_bitcoin__high_mining_fee_template => Some(Self::bitcoin__high_mining_fee_template), + Qstr::MP_QSTR_bitcoin__locktime_no_effect => Some(Self::bitcoin__locktime_no_effect), + Qstr::MP_QSTR_bitcoin__locktime_set_to => Some(Self::bitcoin__locktime_set_to), + Qstr::MP_QSTR_bitcoin__locktime_set_to_blockheight => Some(Self::bitcoin__locktime_set_to_blockheight), + Qstr::MP_QSTR_bitcoin__lot_of_change_outputs => Some(Self::bitcoin__lot_of_change_outputs), + Qstr::MP_QSTR_bitcoin__multiple_accounts => Some(Self::bitcoin__multiple_accounts), + Qstr::MP_QSTR_bitcoin__new_fee_rate => Some(Self::bitcoin__new_fee_rate), + Qstr::MP_QSTR_bitcoin__simple_send_of => Some(Self::bitcoin__simple_send_of), + Qstr::MP_QSTR_bitcoin__ticket_amount => Some(Self::bitcoin__ticket_amount), + Qstr::MP_QSTR_bitcoin__title_confirm_details => Some(Self::bitcoin__title_confirm_details), + Qstr::MP_QSTR_bitcoin__title_finalize_transaction => Some(Self::bitcoin__title_finalize_transaction), + Qstr::MP_QSTR_bitcoin__title_high_mining_fee => Some(Self::bitcoin__title_high_mining_fee), + Qstr::MP_QSTR_bitcoin__title_meld_transaction => Some(Self::bitcoin__title_meld_transaction), + Qstr::MP_QSTR_bitcoin__title_modify_amount => Some(Self::bitcoin__title_modify_amount), + Qstr::MP_QSTR_bitcoin__title_payjoin => Some(Self::bitcoin__title_payjoin), + Qstr::MP_QSTR_bitcoin__title_proof_of_ownership => Some(Self::bitcoin__title_proof_of_ownership), + Qstr::MP_QSTR_bitcoin__title_purchase_ticket => Some(Self::bitcoin__title_purchase_ticket), + Qstr::MP_QSTR_bitcoin__title_update_transaction => Some(Self::bitcoin__title_update_transaction), + Qstr::MP_QSTR_bitcoin__unknown_path => Some(Self::bitcoin__unknown_path), + Qstr::MP_QSTR_bitcoin__unknown_transaction => Some(Self::bitcoin__unknown_transaction), + Qstr::MP_QSTR_bitcoin__unusually_high_fee => Some(Self::bitcoin__unusually_high_fee), + Qstr::MP_QSTR_bitcoin__unverified_external_inputs => Some(Self::bitcoin__unverified_external_inputs), + Qstr::MP_QSTR_bitcoin__valid_signature => Some(Self::bitcoin__valid_signature), + Qstr::MP_QSTR_bitcoin__voting_rights => Some(Self::bitcoin__voting_rights), + Qstr::MP_QSTR_buttons__abort => Some(Self::buttons__abort), + Qstr::MP_QSTR_buttons__access => Some(Self::buttons__access), + Qstr::MP_QSTR_buttons__again => Some(Self::buttons__again), + Qstr::MP_QSTR_buttons__allow => Some(Self::buttons__allow), + Qstr::MP_QSTR_buttons__back => Some(Self::buttons__back), + Qstr::MP_QSTR_buttons__back_up => Some(Self::buttons__back_up), + Qstr::MP_QSTR_buttons__cancel => Some(Self::buttons__cancel), + Qstr::MP_QSTR_buttons__change => Some(Self::buttons__change), + Qstr::MP_QSTR_buttons__check => Some(Self::buttons__check), + Qstr::MP_QSTR_buttons__check_again => Some(Self::buttons__check_again), + Qstr::MP_QSTR_buttons__close => Some(Self::buttons__close), + Qstr::MP_QSTR_buttons__confirm => Some(Self::buttons__confirm), + Qstr::MP_QSTR_buttons__continue => Some(Self::buttons__continue), + Qstr::MP_QSTR_buttons__details => Some(Self::buttons__details), + Qstr::MP_QSTR_buttons__enable => Some(Self::buttons__enable), + Qstr::MP_QSTR_buttons__enter => Some(Self::buttons__enter), + Qstr::MP_QSTR_buttons__enter_share => Some(Self::buttons__enter_share), + Qstr::MP_QSTR_buttons__export => Some(Self::buttons__export), + Qstr::MP_QSTR_buttons__format => Some(Self::buttons__format), + Qstr::MP_QSTR_buttons__go_back => Some(Self::buttons__go_back), + Qstr::MP_QSTR_buttons__hold_to_confirm => Some(Self::buttons__hold_to_confirm), + Qstr::MP_QSTR_buttons__info => Some(Self::buttons__info), + Qstr::MP_QSTR_buttons__install => Some(Self::buttons__install), + Qstr::MP_QSTR_buttons__more_info => Some(Self::buttons__more_info), + Qstr::MP_QSTR_buttons__ok_i_understand => Some(Self::buttons__ok_i_understand), + Qstr::MP_QSTR_buttons__purchase => Some(Self::buttons__purchase), + Qstr::MP_QSTR_buttons__quit => Some(Self::buttons__quit), + Qstr::MP_QSTR_buttons__restart => Some(Self::buttons__restart), + Qstr::MP_QSTR_buttons__retry => Some(Self::buttons__retry), + Qstr::MP_QSTR_buttons__select => Some(Self::buttons__select), + Qstr::MP_QSTR_buttons__set => Some(Self::buttons__set), + Qstr::MP_QSTR_buttons__show_all => Some(Self::buttons__show_all), + Qstr::MP_QSTR_buttons__show_details => Some(Self::buttons__show_details), + Qstr::MP_QSTR_buttons__show_words => Some(Self::buttons__show_words), + Qstr::MP_QSTR_buttons__skip => Some(Self::buttons__skip), + Qstr::MP_QSTR_buttons__try_again => Some(Self::buttons__try_again), + Qstr::MP_QSTR_buttons__turn_off => Some(Self::buttons__turn_off), + Qstr::MP_QSTR_buttons__turn_on => Some(Self::buttons__turn_on), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__addr_base => Some(Self::cardano__addr_base), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__addr_enterprise => Some(Self::cardano__addr_enterprise), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__addr_legacy => Some(Self::cardano__addr_legacy), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__addr_pointer => Some(Self::cardano__addr_pointer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__addr_reward => Some(Self::cardano__addr_reward), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__address_no_staking => Some(Self::cardano__address_no_staking), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__amount_burned_decimals_unknown => Some(Self::cardano__amount_burned_decimals_unknown), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__amount_minted_decimals_unknown => Some(Self::cardano__amount_minted_decimals_unknown), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__amount_sent_decimals_unknown => Some(Self::cardano__amount_sent_decimals_unknown), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__anonymous_pool => Some(Self::cardano__anonymous_pool), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__asset_fingerprint => Some(Self::cardano__asset_fingerprint), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__auxiliary_data_hash => Some(Self::cardano__auxiliary_data_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__block => Some(Self::cardano__block), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__catalyst => Some(Self::cardano__catalyst), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__certificate => Some(Self::cardano__certificate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__change_output => Some(Self::cardano__change_output), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__check_all_items => Some(Self::cardano__check_all_items), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__choose_level_of_details => Some(Self::cardano__choose_level_of_details), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__collateral_input_id => Some(Self::cardano__collateral_input_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__collateral_input_index => Some(Self::cardano__collateral_input_index), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__collateral_output_contains_tokens => Some(Self::cardano__collateral_output_contains_tokens), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__collateral_return => Some(Self::cardano__collateral_return), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirm => Some(Self::cardano__confirm), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirm_signing_stake_pool => Some(Self::cardano__confirm_signing_stake_pool), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirm_transaction => Some(Self::cardano__confirm_transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirming_a_multisig_transaction => Some(Self::cardano__confirming_a_multisig_transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirming_a_plutus_transaction => Some(Self::cardano__confirming_a_plutus_transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirming_pool_registration => Some(Self::cardano__confirming_pool_registration), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__confirming_transction => Some(Self::cardano__confirming_transction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__cost => Some(Self::cardano__cost), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__credential_mismatch => Some(Self::cardano__credential_mismatch), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__datum_hash => Some(Self::cardano__datum_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__delegating_to => Some(Self::cardano__delegating_to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__for_account_and_index_template => Some(Self::cardano__for_account_and_index_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__for_account_template => Some(Self::cardano__for_account_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__for_key_hash => Some(Self::cardano__for_key_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__for_script => Some(Self::cardano__for_script), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__inline_datum => Some(Self::cardano__inline_datum), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__input_id => Some(Self::cardano__input_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__input_index => Some(Self::cardano__input_index), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__intro_text_change => Some(Self::cardano__intro_text_change), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__intro_text_owned_by_device => Some(Self::cardano__intro_text_owned_by_device), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__intro_text_registration_payment => Some(Self::cardano__intro_text_registration_payment), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__key_hash => Some(Self::cardano__key_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__margin => Some(Self::cardano__margin), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__multisig_path => Some(Self::cardano__multisig_path), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__nested_scripts_template => Some(Self::cardano__nested_scripts_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__network => Some(Self::cardano__network), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__no_output_tx => Some(Self::cardano__no_output_tx), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__nonce => Some(Self::cardano__nonce), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__other => Some(Self::cardano__other), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__path => Some(Self::cardano__path), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pledge => Some(Self::cardano__pledge), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pointer => Some(Self::cardano__pointer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__policy_id => Some(Self::cardano__policy_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pool_metadata_hash => Some(Self::cardano__pool_metadata_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pool_metadata_url => Some(Self::cardano__pool_metadata_url), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pool_owner => Some(Self::cardano__pool_owner), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__pool_reward_account => Some(Self::cardano__pool_reward_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reference_input_id => Some(Self::cardano__reference_input_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reference_input_index => Some(Self::cardano__reference_input_index), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reference_script => Some(Self::cardano__reference_script), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__required_signer => Some(Self::cardano__required_signer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reward => Some(Self::cardano__reward), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reward_address => Some(Self::cardano__reward_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__reward_eligibility_warning => Some(Self::cardano__reward_eligibility_warning), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__rewards_go_to => Some(Self::cardano__rewards_go_to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script => Some(Self::cardano__script), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_all => Some(Self::cardano__script_all), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_any => Some(Self::cardano__script_any), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_data_hash => Some(Self::cardano__script_data_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_hash => Some(Self::cardano__script_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_invalid_before => Some(Self::cardano__script_invalid_before), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_invalid_hereafter => Some(Self::cardano__script_invalid_hereafter), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_key => Some(Self::cardano__script_key), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_n_of_k => Some(Self::cardano__script_n_of_k), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__script_reward => Some(Self::cardano__script_reward), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__sending => Some(Self::cardano__sending), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__show_simple => Some(Self::cardano__show_simple), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__sign_tx_path_template => Some(Self::cardano__sign_tx_path_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__stake_delegation => Some(Self::cardano__stake_delegation), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__stake_deregistration => Some(Self::cardano__stake_deregistration), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__stake_pool_registration => Some(Self::cardano__stake_pool_registration), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__stake_pool_registration_pool_id => Some(Self::cardano__stake_pool_registration_pool_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__stake_registration => Some(Self::cardano__stake_registration), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__staking_key_for_account => Some(Self::cardano__staking_key_for_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__to_pool => Some(Self::cardano__to_pool), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__token_minting_path => Some(Self::cardano__token_minting_path), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__total_collateral => Some(Self::cardano__total_collateral), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction => Some(Self::cardano__transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_contains_minting_or_burning => Some(Self::cardano__transaction_contains_minting_or_burning), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_contains_script_address_no_datum => Some(Self::cardano__transaction_contains_script_address_no_datum), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_fee => Some(Self::cardano__transaction_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_id => Some(Self::cardano__transaction_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_no_collateral_input => Some(Self::cardano__transaction_no_collateral_input), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_no_script_data_hash => Some(Self::cardano__transaction_no_script_data_hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__transaction_output_contains_tokens => Some(Self::cardano__transaction_output_contains_tokens), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__ttl => Some(Self::cardano__ttl), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__unknown_collateral_amount => Some(Self::cardano__unknown_collateral_amount), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__unusual_path => Some(Self::cardano__unusual_path), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__valid_since => Some(Self::cardano__valid_since), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__verify_script => Some(Self::cardano__verify_script), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__vote_key_registration => Some(Self::cardano__vote_key_registration), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__vote_public_key => Some(Self::cardano__vote_public_key), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__voting_purpose => Some(Self::cardano__voting_purpose), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__warning => Some(Self::cardano__warning), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__weight => Some(Self::cardano__weight), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__withdrawal_for_address_template => Some(Self::cardano__withdrawal_for_address_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_cardano__x_of_y_signatures_template => Some(Self::cardano__x_of_y_signatures_template), + Qstr::MP_QSTR_coinjoin__access_account => Some(Self::coinjoin__access_account), + Qstr::MP_QSTR_coinjoin__do_not_disconnect => Some(Self::coinjoin__do_not_disconnect), + Qstr::MP_QSTR_coinjoin__max_mining_fee => Some(Self::coinjoin__max_mining_fee), + Qstr::MP_QSTR_coinjoin__max_rounds => Some(Self::coinjoin__max_rounds), + Qstr::MP_QSTR_coinjoin__title => Some(Self::coinjoin__title), + Qstr::MP_QSTR_coinjoin__title_do_not_disconnect => Some(Self::coinjoin__title_do_not_disconnect), + Qstr::MP_QSTR_coinjoin__title_progress => Some(Self::coinjoin__title_progress), + Qstr::MP_QSTR_coinjoin__waiting_for_others => Some(Self::coinjoin__waiting_for_others), + Qstr::MP_QSTR_confirm_total__fee_rate => Some(Self::confirm_total__fee_rate), + Qstr::MP_QSTR_confirm_total__sending_from_account => Some(Self::confirm_total__sending_from_account), + Qstr::MP_QSTR_confirm_total__title_fee => Some(Self::confirm_total__title_fee), + Qstr::MP_QSTR_confirm_total__title_sending_from => Some(Self::confirm_total__title_sending_from), + Qstr::MP_QSTR_debug__loading_seed => Some(Self::debug__loading_seed), + Qstr::MP_QSTR_debug__loading_seed_not_recommended => Some(Self::debug__loading_seed_not_recommended), + Qstr::MP_QSTR_device_name__change_template => Some(Self::device_name__change_template), + Qstr::MP_QSTR_device_name__title => Some(Self::device_name__title), + Qstr::MP_QSTR_entropy__send => Some(Self::entropy__send), + Qstr::MP_QSTR_entropy__title => Some(Self::entropy__title), + Qstr::MP_QSTR_entropy__title_confirm => Some(Self::entropy__title_confirm), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__about_to_sign_template => Some(Self::eos__about_to_sign_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__action_name => Some(Self::eos__action_name), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__arbitrary_data => Some(Self::eos__arbitrary_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__buy_ram => Some(Self::eos__buy_ram), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__bytes => Some(Self::eos__bytes), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__cancel_vote => Some(Self::eos__cancel_vote), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__checksum => Some(Self::eos__checksum), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__code => Some(Self::eos__code), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__contract => Some(Self::eos__contract), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__cpu => Some(Self::eos__cpu), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__creator => Some(Self::eos__creator), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__delegate => Some(Self::eos__delegate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__delete_auth => Some(Self::eos__delete_auth), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__from => Some(Self::eos__from), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__link_auth => Some(Self::eos__link_auth), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__memo => Some(Self::eos__memo), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__name => Some(Self::eos__name), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__net => Some(Self::eos__net), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__new_account => Some(Self::eos__new_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__owner => Some(Self::eos__owner), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__parent => Some(Self::eos__parent), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__payer => Some(Self::eos__payer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__permission => Some(Self::eos__permission), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__proxy => Some(Self::eos__proxy), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__receiver => Some(Self::eos__receiver), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__refund => Some(Self::eos__refund), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__requirement => Some(Self::eos__requirement), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__sell_ram => Some(Self::eos__sell_ram), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__sender => Some(Self::eos__sender), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__sign_transaction => Some(Self::eos__sign_transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__threshold => Some(Self::eos__threshold), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__to => Some(Self::eos__to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__transfer => Some(Self::eos__transfer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__type => Some(Self::eos__type), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__undelegate => Some(Self::eos__undelegate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__unlink_auth => Some(Self::eos__unlink_auth), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__update_auth => Some(Self::eos__update_auth), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__vote_for_producers => Some(Self::eos__vote_for_producers), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__vote_for_proxy => Some(Self::eos__vote_for_proxy), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_eos__voter => Some(Self::eos__voter), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__amount_sent => Some(Self::ethereum__amount_sent), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__contract => Some(Self::ethereum__contract), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__data_size_template => Some(Self::ethereum__data_size_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__gas_limit => Some(Self::ethereum__gas_limit), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__gas_price => Some(Self::ethereum__gas_price), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__max_gas_price => Some(Self::ethereum__max_gas_price), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__name_and_version => Some(Self::ethereum__name_and_version), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__new_contract => Some(Self::ethereum__new_contract), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__no_message_field => Some(Self::ethereum__no_message_field), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__priority_fee => Some(Self::ethereum__priority_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__show_full_array => Some(Self::ethereum__show_full_array), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__show_full_domain => Some(Self::ethereum__show_full_domain), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__show_full_message => Some(Self::ethereum__show_full_message), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__show_full_struct => Some(Self::ethereum__show_full_struct), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__sign_eip712 => Some(Self::ethereum__sign_eip712), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_confirm_data => Some(Self::ethereum__title_confirm_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_confirm_domain => Some(Self::ethereum__title_confirm_domain), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_confirm_message => Some(Self::ethereum__title_confirm_message), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_confirm_struct => Some(Self::ethereum__title_confirm_struct), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_confirm_typed_data => Some(Self::ethereum__title_confirm_typed_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__title_signing_address => Some(Self::ethereum__title_signing_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__units_template => Some(Self::ethereum__units_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__unknown_token => Some(Self::ethereum__unknown_token), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__valid_signature => Some(Self::ethereum__valid_signature), + Qstr::MP_QSTR_experimental_mode__enable => Some(Self::experimental_mode__enable), + Qstr::MP_QSTR_experimental_mode__only_for_dev => Some(Self::experimental_mode__only_for_dev), + Qstr::MP_QSTR_experimental_mode__title => Some(Self::experimental_mode__title), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__already_registered => Some(Self::fido__already_registered), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__device_already_registered => Some(Self::fido__device_already_registered), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__device_already_registered_with_template => Some(Self::fido__device_already_registered_with_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__device_not_registered => Some(Self::fido__device_not_registered), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__does_not_belong => Some(Self::fido__does_not_belong), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__erase_credentials => Some(Self::fido__erase_credentials), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__export_credentials => Some(Self::fido__export_credentials), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__not_registered => Some(Self::fido__not_registered), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__not_registered_with_template => Some(Self::fido__not_registered_with_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__please_enable_pin_protection => Some(Self::fido__please_enable_pin_protection), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_authenticate => Some(Self::fido__title_authenticate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_import_credential => Some(Self::fido__title_import_credential), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_list_credentials => Some(Self::fido__title_list_credentials), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_register => Some(Self::fido__title_register), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_remove_credential => Some(Self::fido__title_remove_credential), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_reset => Some(Self::fido__title_reset), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_u2f_auth => Some(Self::fido__title_u2f_auth), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_u2f_register => Some(Self::fido__title_u2f_register), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__title_verify_user => Some(Self::fido__title_verify_user), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__unable_to_verify_user => Some(Self::fido__unable_to_verify_user), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_fido__wanna_erase_credentials => Some(Self::fido__wanna_erase_credentials), + Qstr::MP_QSTR_firmware_update__title => Some(Self::firmware_update__title), + Qstr::MP_QSTR_firmware_update__title_fingerprint => Some(Self::firmware_update__title_fingerprint), + Qstr::MP_QSTR_homescreen__click_to_connect => Some(Self::homescreen__click_to_connect), + Qstr::MP_QSTR_homescreen__click_to_unlock => Some(Self::homescreen__click_to_unlock), + Qstr::MP_QSTR_homescreen__title_backup_failed => Some(Self::homescreen__title_backup_failed), + Qstr::MP_QSTR_homescreen__title_backup_needed => Some(Self::homescreen__title_backup_needed), + Qstr::MP_QSTR_homescreen__title_coinjoin_authorized => Some(Self::homescreen__title_coinjoin_authorized), + Qstr::MP_QSTR_homescreen__title_experimental_mode => Some(Self::homescreen__title_experimental_mode), + Qstr::MP_QSTR_homescreen__title_no_usb_connection => Some(Self::homescreen__title_no_usb_connection), + Qstr::MP_QSTR_homescreen__title_pin_not_set => Some(Self::homescreen__title_pin_not_set), + Qstr::MP_QSTR_homescreen__title_seedless => Some(Self::homescreen__title_seedless), + Qstr::MP_QSTR_homescreen__title_set => Some(Self::homescreen__title_set), + Qstr::MP_QSTR_inputs__back => Some(Self::inputs__back), + Qstr::MP_QSTR_inputs__cancel => Some(Self::inputs__cancel), + Qstr::MP_QSTR_inputs__delete => Some(Self::inputs__delete), + Qstr::MP_QSTR_inputs__enter => Some(Self::inputs__enter), + Qstr::MP_QSTR_inputs__return => Some(Self::inputs__return), + Qstr::MP_QSTR_inputs__show => Some(Self::inputs__show), + Qstr::MP_QSTR_inputs__space => Some(Self::inputs__space), + Qstr::MP_QSTR_joint__title => Some(Self::joint__title), + Qstr::MP_QSTR_joint__to_the_total_amount => Some(Self::joint__to_the_total_amount), + Qstr::MP_QSTR_joint__you_are_contributing => Some(Self::joint__you_are_contributing), + Qstr::MP_QSTR_language__change_to_template => Some(Self::language__change_to_template), + Qstr::MP_QSTR_language__changed => Some(Self::language__changed), + Qstr::MP_QSTR_language__progress => Some(Self::language__progress), + Qstr::MP_QSTR_language__title => Some(Self::language__title), + Qstr::MP_QSTR_lockscreen__tap_to_connect => Some(Self::lockscreen__tap_to_connect), + Qstr::MP_QSTR_lockscreen__tap_to_unlock => Some(Self::lockscreen__tap_to_unlock), + Qstr::MP_QSTR_lockscreen__title_locked => Some(Self::lockscreen__title_locked), + Qstr::MP_QSTR_lockscreen__title_not_connected => Some(Self::lockscreen__title_not_connected), + Qstr::MP_QSTR_misc__decrypt_value => Some(Self::misc__decrypt_value), + Qstr::MP_QSTR_misc__encrypt_value => Some(Self::misc__encrypt_value), + Qstr::MP_QSTR_misc__title_suite_labeling => Some(Self::misc__title_suite_labeling), + Qstr::MP_QSTR_modify_amount__decrease_amount => Some(Self::modify_amount__decrease_amount), + Qstr::MP_QSTR_modify_amount__increase_amount => Some(Self::modify_amount__increase_amount), + Qstr::MP_QSTR_modify_amount__new_amount => Some(Self::modify_amount__new_amount), + Qstr::MP_QSTR_modify_amount__title => Some(Self::modify_amount__title), + Qstr::MP_QSTR_modify_fee__decrease_fee => Some(Self::modify_fee__decrease_fee), + Qstr::MP_QSTR_modify_fee__fee_rate => Some(Self::modify_fee__fee_rate), + Qstr::MP_QSTR_modify_fee__increase_fee => Some(Self::modify_fee__increase_fee), + Qstr::MP_QSTR_modify_fee__new_transaction_fee => Some(Self::modify_fee__new_transaction_fee), + Qstr::MP_QSTR_modify_fee__no_change => Some(Self::modify_fee__no_change), + Qstr::MP_QSTR_modify_fee__title => Some(Self::modify_fee__title), + Qstr::MP_QSTR_modify_fee__transaction_fee => Some(Self::modify_fee__transaction_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__confirm_export => Some(Self::monero__confirm_export), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__confirm_ki_sync => Some(Self::monero__confirm_ki_sync), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__confirm_refresh => Some(Self::monero__confirm_refresh), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__confirm_unlock_time => Some(Self::monero__confirm_unlock_time), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__hashing_inputs => Some(Self::monero__hashing_inputs), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__payment_id => Some(Self::monero__payment_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__postprocessing => Some(Self::monero__postprocessing), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__processing => Some(Self::monero__processing), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__processing_inputs => Some(Self::monero__processing_inputs), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__processing_outputs => Some(Self::monero__processing_outputs), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__signing => Some(Self::monero__signing), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__signing_inputs => Some(Self::monero__signing_inputs), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__unlock_time_set_template => Some(Self::monero__unlock_time_set_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__wanna_export_tx_der => Some(Self::monero__wanna_export_tx_der), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__wanna_export_tx_key => Some(Self::monero__wanna_export_tx_key), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__wanna_export_watchkey => Some(Self::monero__wanna_export_watchkey), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__wanna_start_refresh => Some(Self::monero__wanna_start_refresh), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_monero__wanna_sync_key_images => Some(Self::monero__wanna_sync_key_images), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__absolute => Some(Self::nem__absolute), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__activate => Some(Self::nem__activate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__add => Some(Self::nem__add), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_action => Some(Self::nem__confirm_action), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_address => Some(Self::nem__confirm_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_creation_fee => Some(Self::nem__confirm_creation_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_mosaic => Some(Self::nem__confirm_mosaic), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_multisig_fee => Some(Self::nem__confirm_multisig_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_namespace => Some(Self::nem__confirm_namespace), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_payload => Some(Self::nem__confirm_payload), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_properties => Some(Self::nem__confirm_properties), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_rental_fee => Some(Self::nem__confirm_rental_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__confirm_transfer_of => Some(Self::nem__confirm_transfer_of), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__convert_account_to_multisig => Some(Self::nem__convert_account_to_multisig), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__cosign_transaction_for => Some(Self::nem__cosign_transaction_for), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__cosignatory => Some(Self::nem__cosignatory), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__create_mosaic => Some(Self::nem__create_mosaic), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__create_namespace => Some(Self::nem__create_namespace), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__deactivate => Some(Self::nem__deactivate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__decrease => Some(Self::nem__decrease), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__description => Some(Self::nem__description), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__divisibility_and_levy_cannot_be_shown => Some(Self::nem__divisibility_and_levy_cannot_be_shown), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__encrypted => Some(Self::nem__encrypted), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__final_confirm => Some(Self::nem__final_confirm), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__immutable => Some(Self::nem__immutable), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__increase => Some(Self::nem__increase), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__initial_supply => Some(Self::nem__initial_supply), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__initiate_transaction_for => Some(Self::nem__initiate_transaction_for), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_divisibility => Some(Self::nem__levy_divisibility), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_fee => Some(Self::nem__levy_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_fee_of => Some(Self::nem__levy_fee_of), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_mosaic => Some(Self::nem__levy_mosaic), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_namespace => Some(Self::nem__levy_namespace), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_recipient => Some(Self::nem__levy_recipient), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__levy_type => Some(Self::nem__levy_type), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__modify_supply_for => Some(Self::nem__modify_supply_for), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__modify_the_number_of_cosignatories_by => Some(Self::nem__modify_the_number_of_cosignatories_by), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__mutable => Some(Self::nem__mutable), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__of => Some(Self::nem__of), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__percentile => Some(Self::nem__percentile), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__raw_units_template => Some(Self::nem__raw_units_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__remote_harvesting => Some(Self::nem__remote_harvesting), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__remove => Some(Self::nem__remove), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__set_minimum_cosignatories_to => Some(Self::nem__set_minimum_cosignatories_to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__sign_tx_fee_template => Some(Self::nem__sign_tx_fee_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__supply_change => Some(Self::nem__supply_change), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__supply_units_template => Some(Self::nem__supply_units_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__transferable => Some(Self::nem__transferable), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__under_namespace => Some(Self::nem__under_namespace), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__unencrypted => Some(Self::nem__unencrypted), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_nem__unknown_mosaic => Some(Self::nem__unknown_mosaic), + Qstr::MP_QSTR_passphrase__access_hidden_wallet => Some(Self::passphrase__access_hidden_wallet), + Qstr::MP_QSTR_passphrase__always_on_device => Some(Self::passphrase__always_on_device), + Qstr::MP_QSTR_passphrase__from_host_not_shown => Some(Self::passphrase__from_host_not_shown), + Qstr::MP_QSTR_passphrase__hidden_wallet => Some(Self::passphrase__hidden_wallet), + Qstr::MP_QSTR_passphrase__hide => Some(Self::passphrase__hide), + Qstr::MP_QSTR_passphrase__next_screen_will_show_passphrase => Some(Self::passphrase__next_screen_will_show_passphrase), + Qstr::MP_QSTR_passphrase__please_enter => Some(Self::passphrase__please_enter), + Qstr::MP_QSTR_passphrase__revoke_on_device => Some(Self::passphrase__revoke_on_device), + Qstr::MP_QSTR_passphrase__title_confirm => Some(Self::passphrase__title_confirm), + Qstr::MP_QSTR_passphrase__title_enter => Some(Self::passphrase__title_enter), + Qstr::MP_QSTR_passphrase__title_hide => Some(Self::passphrase__title_hide), + Qstr::MP_QSTR_passphrase__title_settings => Some(Self::passphrase__title_settings), + Qstr::MP_QSTR_passphrase__title_source => Some(Self::passphrase__title_source), + Qstr::MP_QSTR_passphrase__turn_off => Some(Self::passphrase__turn_off), + Qstr::MP_QSTR_passphrase__turn_on => Some(Self::passphrase__turn_on), + Qstr::MP_QSTR_pin__change => Some(Self::pin__change), + Qstr::MP_QSTR_pin__changed => Some(Self::pin__changed), + Qstr::MP_QSTR_pin__cursor_will_change => Some(Self::pin__cursor_will_change), + Qstr::MP_QSTR_pin__diff_from_wipe_code => Some(Self::pin__diff_from_wipe_code), + Qstr::MP_QSTR_pin__disabled => Some(Self::pin__disabled), + Qstr::MP_QSTR_pin__enabled => Some(Self::pin__enabled), + Qstr::MP_QSTR_pin__enter => Some(Self::pin__enter), + Qstr::MP_QSTR_pin__enter_new => Some(Self::pin__enter_new), + Qstr::MP_QSTR_pin__entered_not_valid => Some(Self::pin__entered_not_valid), + Qstr::MP_QSTR_pin__info => Some(Self::pin__info), + Qstr::MP_QSTR_pin__invalid_pin => Some(Self::pin__invalid_pin), + Qstr::MP_QSTR_pin__last_attempt => Some(Self::pin__last_attempt), + Qstr::MP_QSTR_pin__mismatch => Some(Self::pin__mismatch), + Qstr::MP_QSTR_pin__pin_mismatch => Some(Self::pin__pin_mismatch), + Qstr::MP_QSTR_pin__please_check_again => Some(Self::pin__please_check_again), + Qstr::MP_QSTR_pin__reenter_new => Some(Self::pin__reenter_new), + Qstr::MP_QSTR_pin__reenter_to_confirm => Some(Self::pin__reenter_to_confirm), + Qstr::MP_QSTR_pin__should_be_long => Some(Self::pin__should_be_long), + Qstr::MP_QSTR_pin__title_check_pin => Some(Self::pin__title_check_pin), + Qstr::MP_QSTR_pin__title_settings => Some(Self::pin__title_settings), + Qstr::MP_QSTR_pin__title_wrong_pin => Some(Self::pin__title_wrong_pin), + Qstr::MP_QSTR_pin__tries_left => Some(Self::pin__tries_left), + Qstr::MP_QSTR_pin__turn_off => Some(Self::pin__turn_off), + Qstr::MP_QSTR_pin__turn_on => Some(Self::pin__turn_on), + Qstr::MP_QSTR_pin__wrong_pin => Some(Self::pin__wrong_pin), + Qstr::MP_QSTR_plurals__contains_x_keys => Some(Self::plurals__contains_x_keys), + Qstr::MP_QSTR_plurals__lock_after_x_hours => Some(Self::plurals__lock_after_x_hours), + Qstr::MP_QSTR_plurals__lock_after_x_milliseconds => Some(Self::plurals__lock_after_x_milliseconds), + Qstr::MP_QSTR_plurals__lock_after_x_minutes => Some(Self::plurals__lock_after_x_minutes), + Qstr::MP_QSTR_plurals__lock_after_x_seconds => Some(Self::plurals__lock_after_x_seconds), + Qstr::MP_QSTR_plurals__sign_x_actions => Some(Self::plurals__sign_x_actions), + Qstr::MP_QSTR_plurals__transaction_of_x_operations => Some(Self::plurals__transaction_of_x_operations), + Qstr::MP_QSTR_plurals__x_groups_needed => Some(Self::plurals__x_groups_needed), + Qstr::MP_QSTR_plurals__x_shares_needed => Some(Self::plurals__x_shares_needed), + Qstr::MP_QSTR_progress__authenticity_check => Some(Self::progress__authenticity_check), + Qstr::MP_QSTR_progress__done => Some(Self::progress__done), + Qstr::MP_QSTR_progress__loading_transaction => Some(Self::progress__loading_transaction), + Qstr::MP_QSTR_progress__locking_device => Some(Self::progress__locking_device), + Qstr::MP_QSTR_progress__one_second_left => Some(Self::progress__one_second_left), + Qstr::MP_QSTR_progress__title_please_wait => Some(Self::progress__title_please_wait), + Qstr::MP_QSTR_storage_msg__title_processing => Some(Self::storage_msg__title_processing), + Qstr::MP_QSTR_progress__refreshing => Some(Self::progress__refreshing), + Qstr::MP_QSTR_progress__signing_transaction => Some(Self::progress__signing_transaction), + Qstr::MP_QSTR_progress__syncing => Some(Self::progress__syncing), + Qstr::MP_QSTR_progress__x_seconds_left_template => Some(Self::progress__x_seconds_left_template), + Qstr::MP_QSTR_reboot_to_bootloader__restart => Some(Self::reboot_to_bootloader__restart), + Qstr::MP_QSTR_reboot_to_bootloader__title => Some(Self::reboot_to_bootloader__title), + Qstr::MP_QSTR_reboot_to_bootloader__version_by_template => Some(Self::reboot_to_bootloader__version_by_template), + Qstr::MP_QSTR_recovery__cancel_dry_run => Some(Self::recovery__cancel_dry_run), + Qstr::MP_QSTR_recovery__check_dry_run => Some(Self::recovery__check_dry_run), + Qstr::MP_QSTR_recovery__cursor_will_change => Some(Self::recovery__cursor_will_change), + Qstr::MP_QSTR_recovery__dry_run_bip39_valid_match => Some(Self::recovery__dry_run_bip39_valid_match), + Qstr::MP_QSTR_recovery__dry_run_bip39_valid_mismatch => Some(Self::recovery__dry_run_bip39_valid_mismatch), + Qstr::MP_QSTR_recovery__dry_run_slip39_valid_match => Some(Self::recovery__dry_run_slip39_valid_match), + Qstr::MP_QSTR_recovery__dry_run_slip39_valid_mismatch => Some(Self::recovery__dry_run_slip39_valid_mismatch), + Qstr::MP_QSTR_recovery__enter_any_share => Some(Self::recovery__enter_any_share), + Qstr::MP_QSTR_recovery__enter_backup => Some(Self::recovery__enter_backup), + Qstr::MP_QSTR_recovery__enter_different_share => Some(Self::recovery__enter_different_share), + Qstr::MP_QSTR_recovery__enter_share_from_diff_group => Some(Self::recovery__enter_share_from_diff_group), + Qstr::MP_QSTR_recovery__group_num_template => Some(Self::recovery__group_num_template), + Qstr::MP_QSTR_recovery__group_threshold_reached => Some(Self::recovery__group_threshold_reached), + Qstr::MP_QSTR_recovery__invalid_seed_entered => Some(Self::recovery__invalid_seed_entered), + Qstr::MP_QSTR_recovery__invalid_share_entered => Some(Self::recovery__invalid_share_entered), + Qstr::MP_QSTR_recovery__more_shares_needed => Some(Self::recovery__more_shares_needed), + Qstr::MP_QSTR_recovery__num_of_words => Some(Self::recovery__num_of_words), + Qstr::MP_QSTR_recovery__only_first_n_letters => Some(Self::recovery__only_first_n_letters), + Qstr::MP_QSTR_recovery__progress_will_be_lost => Some(Self::recovery__progress_will_be_lost), + Qstr::MP_QSTR_recovery__select_num_of_words => Some(Self::recovery__select_num_of_words), + Qstr::MP_QSTR_recovery__share_already_entered => Some(Self::recovery__share_already_entered), + Qstr::MP_QSTR_recovery__share_from_another_shamir => Some(Self::recovery__share_from_another_shamir), + Qstr::MP_QSTR_recovery__share_num_template => Some(Self::recovery__share_num_template), + Qstr::MP_QSTR_recovery__title => Some(Self::recovery__title), + Qstr::MP_QSTR_recovery__title_cancel_dry_run => Some(Self::recovery__title_cancel_dry_run), + Qstr::MP_QSTR_recovery__title_cancel_recovery => Some(Self::recovery__title_cancel_recovery), + Qstr::MP_QSTR_recovery__title_dry_run => Some(Self::recovery__title_dry_run), + Qstr::MP_QSTR_recovery__title_recover => Some(Self::recovery__title_recover), + Qstr::MP_QSTR_recovery__title_remaining_shares => Some(Self::recovery__title_remaining_shares), + Qstr::MP_QSTR_recovery__type_word_x_of_y_template => Some(Self::recovery__type_word_x_of_y_template), + Qstr::MP_QSTR_recovery__wallet_recovered => Some(Self::recovery__wallet_recovered), + Qstr::MP_QSTR_recovery__wanna_cancel_dry_run => Some(Self::recovery__wanna_cancel_dry_run), + Qstr::MP_QSTR_recovery__wanna_cancel_recovery => Some(Self::recovery__wanna_cancel_recovery), + Qstr::MP_QSTR_recovery__word_count_template => Some(Self::recovery__word_count_template), + Qstr::MP_QSTR_recovery__word_x_of_y_title_template => Some(Self::recovery__word_x_of_y_title_template), + Qstr::MP_QSTR_recovery__x_more_items_starting_template_plural => Some(Self::recovery__x_more_items_starting_template_plural), + Qstr::MP_QSTR_recovery__x_more_shares_needed_template_plural => Some(Self::recovery__x_more_shares_needed_template_plural), + Qstr::MP_QSTR_recovery__x_of_y_entered_template => Some(Self::recovery__x_of_y_entered_template), + Qstr::MP_QSTR_recovery__you_have_entered => Some(Self::recovery__you_have_entered), + Qstr::MP_QSTR_reset__advanced_group_threshold_info => Some(Self::reset__advanced_group_threshold_info), + Qstr::MP_QSTR_reset__all_x_of_y_template => Some(Self::reset__all_x_of_y_template), + Qstr::MP_QSTR_reset__any_x_of_y_template => Some(Self::reset__any_x_of_y_template), + Qstr::MP_QSTR_reset__button_create => Some(Self::reset__button_create), + Qstr::MP_QSTR_reset__button_recover => Some(Self::reset__button_recover), + Qstr::MP_QSTR_reset__by_continuing => Some(Self::reset__by_continuing), + Qstr::MP_QSTR_reset__check_backup_title => Some(Self::reset__check_backup_title), + Qstr::MP_QSTR_reset__check_group_share_title_template => Some(Self::reset__check_group_share_title_template), + Qstr::MP_QSTR_reset__check_seed_title => Some(Self::reset__check_seed_title), + Qstr::MP_QSTR_reset__check_share_title_template => Some(Self::reset__check_share_title_template), + Qstr::MP_QSTR_reset__continue_with_next_share => Some(Self::reset__continue_with_next_share), + Qstr::MP_QSTR_reset__continue_with_share_template => Some(Self::reset__continue_with_share_template), + Qstr::MP_QSTR_reset__finished_verifying_group_template => Some(Self::reset__finished_verifying_group_template), + Qstr::MP_QSTR_reset__finished_verifying_seed => Some(Self::reset__finished_verifying_seed), + Qstr::MP_QSTR_reset__finished_verifying_shares => Some(Self::reset__finished_verifying_shares), + Qstr::MP_QSTR_reset__group_description => Some(Self::reset__group_description), + Qstr::MP_QSTR_reset__group_info => Some(Self::reset__group_info), + Qstr::MP_QSTR_reset__group_share_checked_successfully_template => Some(Self::reset__group_share_checked_successfully_template), + Qstr::MP_QSTR_reset__group_share_title_template => Some(Self::reset__group_share_title_template), + Qstr::MP_QSTR_reset__more_info_at => Some(Self::reset__more_info_at), + Qstr::MP_QSTR_reset__need_all_share_template => Some(Self::reset__need_all_share_template), + Qstr::MP_QSTR_reset__need_any_share_template => Some(Self::reset__need_any_share_template), + Qstr::MP_QSTR_reset__needed_to_form_a_group => Some(Self::reset__needed_to_form_a_group), + Qstr::MP_QSTR_reset__needed_to_recover_your_wallet => Some(Self::reset__needed_to_recover_your_wallet), + Qstr::MP_QSTR_reset__never_make_digital_copy => Some(Self::reset__never_make_digital_copy), + Qstr::MP_QSTR_reset__num_of_share_holders_template => Some(Self::reset__num_of_share_holders_template), + Qstr::MP_QSTR_reset__num_of_shares_advanced_info_template => Some(Self::reset__num_of_shares_advanced_info_template), + Qstr::MP_QSTR_reset__num_of_shares_basic_info => Some(Self::reset__num_of_shares_basic_info), + Qstr::MP_QSTR_reset__num_shares_for_group_template => Some(Self::reset__num_shares_for_group_template), + Qstr::MP_QSTR_reset__number_of_shares_info => Some(Self::reset__number_of_shares_info), + Qstr::MP_QSTR_reset__one_share => Some(Self::reset__one_share), + Qstr::MP_QSTR_reset__only_one_share_will_be_created => Some(Self::reset__only_one_share_will_be_created), + Qstr::MP_QSTR_reset__recovery_seed_title => Some(Self::reset__recovery_seed_title), + Qstr::MP_QSTR_reset__recovery_share_title_template => Some(Self::reset__recovery_share_title_template), + Qstr::MP_QSTR_reset__required_number_of_groups => Some(Self::reset__required_number_of_groups), + Qstr::MP_QSTR_reset__select_correct_word => Some(Self::reset__select_correct_word), + Qstr::MP_QSTR_reset__select_word_title_template => Some(Self::reset__select_word_title_template), + Qstr::MP_QSTR_reset__select_word_x_of_y_template => Some(Self::reset__select_word_x_of_y_template), + Qstr::MP_QSTR_reset__set_it_to_count_template => Some(Self::reset__set_it_to_count_template), + Qstr::MP_QSTR_reset__share_checked_successfully_template => Some(Self::reset__share_checked_successfully_template), + Qstr::MP_QSTR_reset__share_words_title => Some(Self::reset__share_words_title), + Qstr::MP_QSTR_reset__slip39_checklist_num_groups => Some(Self::reset__slip39_checklist_num_groups), + Qstr::MP_QSTR_reset__slip39_checklist_num_shares => Some(Self::reset__slip39_checklist_num_shares), + Qstr::MP_QSTR_reset__slip39_checklist_set_num_groups => Some(Self::reset__slip39_checklist_set_num_groups), + Qstr::MP_QSTR_reset__slip39_checklist_set_num_shares => Some(Self::reset__slip39_checklist_set_num_shares), + Qstr::MP_QSTR_reset__slip39_checklist_set_sizes => Some(Self::reset__slip39_checklist_set_sizes), + Qstr::MP_QSTR_reset__slip39_checklist_set_sizes_longer => Some(Self::reset__slip39_checklist_set_sizes_longer), + Qstr::MP_QSTR_reset__slip39_checklist_set_threshold => Some(Self::reset__slip39_checklist_set_threshold), + Qstr::MP_QSTR_reset__slip39_checklist_title => Some(Self::reset__slip39_checklist_title), + Qstr::MP_QSTR_reset__slip39_checklist_write_down => Some(Self::reset__slip39_checklist_write_down), + Qstr::MP_QSTR_reset__slip39_checklist_write_down_recovery => Some(Self::reset__slip39_checklist_write_down_recovery), + Qstr::MP_QSTR_reset__the_threshold_sets_the_number_of_shares => Some(Self::reset__the_threshold_sets_the_number_of_shares), + Qstr::MP_QSTR_reset__threshold_info => Some(Self::reset__threshold_info), + Qstr::MP_QSTR_reset__title_backup_is_done => Some(Self::reset__title_backup_is_done), + Qstr::MP_QSTR_reset__title_create_wallet => Some(Self::reset__title_create_wallet), + Qstr::MP_QSTR_reset__title_create_wallet_shamir => Some(Self::reset__title_create_wallet_shamir), + Qstr::MP_QSTR_reset__title_group_threshold => Some(Self::reset__title_group_threshold), + Qstr::MP_QSTR_reset__title_number_of_groups => Some(Self::reset__title_number_of_groups), + Qstr::MP_QSTR_reset__title_number_of_shares => Some(Self::reset__title_number_of_shares), + Qstr::MP_QSTR_reset__title_set_group_threshold => Some(Self::reset__title_set_group_threshold), + Qstr::MP_QSTR_reset__title_set_number_of_groups => Some(Self::reset__title_set_number_of_groups), + Qstr::MP_QSTR_reset__title_set_number_of_shares => Some(Self::reset__title_set_number_of_shares), + Qstr::MP_QSTR_reset__title_set_threshold => Some(Self::reset__title_set_threshold), + Qstr::MP_QSTR_reset__to_form_group_template => Some(Self::reset__to_form_group_template), + Qstr::MP_QSTR_reset__tos_link => Some(Self::reset__tos_link), + Qstr::MP_QSTR_reset__total_number_of_shares_in_group_template => Some(Self::reset__total_number_of_shares_in_group_template), + Qstr::MP_QSTR_reset__use_your_backup => Some(Self::reset__use_your_backup), + Qstr::MP_QSTR_reset__write_down_words_template => Some(Self::reset__write_down_words_template), + Qstr::MP_QSTR_reset__wrong_word_selected => Some(Self::reset__wrong_word_selected), + Qstr::MP_QSTR_reset__you_need_one_share => Some(Self::reset__you_need_one_share), + Qstr::MP_QSTR_reset__your_backup_is_done => Some(Self::reset__your_backup_is_done), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ripple__confirm_tag => Some(Self::ripple__confirm_tag), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ripple__destination_tag_template => Some(Self::ripple__destination_tag_template), + Qstr::MP_QSTR_rotation__change_template => Some(Self::rotation__change_template), + Qstr::MP_QSTR_rotation__east => Some(Self::rotation__east), + Qstr::MP_QSTR_rotation__north => Some(Self::rotation__north), + Qstr::MP_QSTR_rotation__south => Some(Self::rotation__south), + Qstr::MP_QSTR_rotation__title_change => Some(Self::rotation__title_change), + Qstr::MP_QSTR_rotation__west => Some(Self::rotation__west), + Qstr::MP_QSTR_safety_checks__approve_unsafe_always => Some(Self::safety_checks__approve_unsafe_always), + Qstr::MP_QSTR_safety_checks__approve_unsafe_temporary => Some(Self::safety_checks__approve_unsafe_temporary), + Qstr::MP_QSTR_safety_checks__enforce_strict => Some(Self::safety_checks__enforce_strict), + Qstr::MP_QSTR_safety_checks__title => Some(Self::safety_checks__title), + Qstr::MP_QSTR_safety_checks__title_safety_override => Some(Self::safety_checks__title_safety_override), + Qstr::MP_QSTR_sd_card__all_data_will_be_lost => Some(Self::sd_card__all_data_will_be_lost), + Qstr::MP_QSTR_sd_card__card_required => Some(Self::sd_card__card_required), + Qstr::MP_QSTR_sd_card__disable => Some(Self::sd_card__disable), + Qstr::MP_QSTR_sd_card__disabled => Some(Self::sd_card__disabled), + Qstr::MP_QSTR_sd_card__enable => Some(Self::sd_card__enable), + Qstr::MP_QSTR_sd_card__enabled => Some(Self::sd_card__enabled), + Qstr::MP_QSTR_sd_card__error => Some(Self::sd_card__error), + Qstr::MP_QSTR_sd_card__format_card => Some(Self::sd_card__format_card), + Qstr::MP_QSTR_sd_card__insert_correct_card => Some(Self::sd_card__insert_correct_card), + Qstr::MP_QSTR_sd_card__please_insert => Some(Self::sd_card__please_insert), + Qstr::MP_QSTR_sd_card__please_unplug_and_insert => Some(Self::sd_card__please_unplug_and_insert), + Qstr::MP_QSTR_sd_card__problem_accessing => Some(Self::sd_card__problem_accessing), + Qstr::MP_QSTR_sd_card__refresh => Some(Self::sd_card__refresh), + Qstr::MP_QSTR_sd_card__refreshed => Some(Self::sd_card__refreshed), + Qstr::MP_QSTR_sd_card__restart => Some(Self::sd_card__restart), + Qstr::MP_QSTR_sd_card__title => Some(Self::sd_card__title), + Qstr::MP_QSTR_sd_card__title_problem => Some(Self::sd_card__title_problem), + Qstr::MP_QSTR_sd_card__unknown_filesystem => Some(Self::sd_card__unknown_filesystem), + Qstr::MP_QSTR_sd_card__unplug_and_insert_correct => Some(Self::sd_card__unplug_and_insert_correct), + Qstr::MP_QSTR_sd_card__use_different_card => Some(Self::sd_card__use_different_card), + Qstr::MP_QSTR_sd_card__wanna_format => Some(Self::sd_card__wanna_format), + Qstr::MP_QSTR_sd_card__wrong_sd_card => Some(Self::sd_card__wrong_sd_card), + Qstr::MP_QSTR_send__address_path => Some(Self::send__address_path), + Qstr::MP_QSTR_send__confirm_sending => Some(Self::send__confirm_sending), + Qstr::MP_QSTR_send__from_multiple_accounts => Some(Self::send__from_multiple_accounts), + Qstr::MP_QSTR_send__including_fee => Some(Self::send__including_fee), + Qstr::MP_QSTR_send__maximum_fee => Some(Self::send__maximum_fee), + Qstr::MP_QSTR_send__receiving_to_multisig => Some(Self::send__receiving_to_multisig), + Qstr::MP_QSTR_send__title_confirm_sending => Some(Self::send__title_confirm_sending), + Qstr::MP_QSTR_send__title_joint_transaction => Some(Self::send__title_joint_transaction), + Qstr::MP_QSTR_send__title_receiving_to => Some(Self::send__title_receiving_to), + Qstr::MP_QSTR_send__title_sending => Some(Self::send__title_sending), + Qstr::MP_QSTR_send__title_sending_amount => Some(Self::send__title_sending_amount), + Qstr::MP_QSTR_send__title_sending_to => Some(Self::send__title_sending_to), + Qstr::MP_QSTR_send__to_the_total_amount => Some(Self::send__to_the_total_amount), + Qstr::MP_QSTR_send__total_amount => Some(Self::send__total_amount), + Qstr::MP_QSTR_send__transaction_id => Some(Self::send__transaction_id), + Qstr::MP_QSTR_send__you_are_contributing => Some(Self::send__you_are_contributing), + Qstr::MP_QSTR_share_words__words_in_order => Some(Self::share_words__words_in_order), + Qstr::MP_QSTR_share_words__wrote_down_all => Some(Self::share_words__wrote_down_all), + Qstr::MP_QSTR_sign_message__bytes_template => Some(Self::sign_message__bytes_template), + Qstr::MP_QSTR_sign_message__title_confirm_address => Some(Self::sign_message__title_confirm_address), + Qstr::MP_QSTR_sign_message__title_confirm_message => Some(Self::sign_message__title_confirm_message), + Qstr::MP_QSTR_sign_message__message_size => Some(Self::sign_message__message_size), + Qstr::MP_QSTR_sign_message__title_verify_address => Some(Self::sign_message__title_verify_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__account_index => Some(Self::solana__account_index), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__associated_token_account => Some(Self::solana__associated_token_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__confirm_multisig => Some(Self::solana__confirm_multisig), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__expected_fee => Some(Self::solana__expected_fee), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__instruction_accounts_template => Some(Self::solana__instruction_accounts_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__instruction_data => Some(Self::solana__instruction_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__instruction_is_multisig => Some(Self::solana__instruction_is_multisig), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__is_provided_via_lookup_table_template => Some(Self::solana__is_provided_via_lookup_table_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__lookup_table_address => Some(Self::solana__lookup_table_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__multiple_signers => Some(Self::solana__multiple_signers), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__token_address => Some(Self::solana__token_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__transaction_contains_unknown_instructions => Some(Self::solana__transaction_contains_unknown_instructions), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_solana__transaction_requires_x_signers_template => Some(Self::solana__transaction_requires_x_signers_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__account_merge => Some(Self::stellar__account_merge), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__account_thresholds => Some(Self::stellar__account_thresholds), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__add_signer => Some(Self::stellar__add_signer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__add_trust => Some(Self::stellar__add_trust), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__all_will_be_sent_to => Some(Self::stellar__all_will_be_sent_to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__allow_trust => Some(Self::stellar__allow_trust), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__asset => Some(Self::stellar__asset), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__balance_id => Some(Self::stellar__balance_id), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__bump_sequence => Some(Self::stellar__bump_sequence), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__buying => Some(Self::stellar__buying), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__claim_claimable_balance => Some(Self::stellar__claim_claimable_balance), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__clear_data => Some(Self::stellar__clear_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__clear_flags => Some(Self::stellar__clear_flags), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_issuer => Some(Self::stellar__confirm_issuer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_memo => Some(Self::stellar__confirm_memo), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_network => Some(Self::stellar__confirm_network), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_operation => Some(Self::stellar__confirm_operation), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_stellar => Some(Self::stellar__confirm_stellar), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__confirm_timebounds => Some(Self::stellar__confirm_timebounds), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__create_account => Some(Self::stellar__create_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__debited_amount => Some(Self::stellar__debited_amount), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__delete => Some(Self::stellar__delete), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__delete_passive_offer => Some(Self::stellar__delete_passive_offer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__delete_trust => Some(Self::stellar__delete_trust), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__destination => Some(Self::stellar__destination), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__exchanges_require_memo => Some(Self::stellar__exchanges_require_memo), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__final_confirm => Some(Self::stellar__final_confirm), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__hash => Some(Self::stellar__hash), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__high => Some(Self::stellar__high), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__home_domain => Some(Self::stellar__home_domain), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__inflation => Some(Self::stellar__inflation), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__initial_balance => Some(Self::stellar__initial_balance), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__initialize_signing_with => Some(Self::stellar__initialize_signing_with), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__issuer_template => Some(Self::stellar__issuer_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__key => Some(Self::stellar__key), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__limit => Some(Self::stellar__limit), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__low => Some(Self::stellar__low), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__master_weight => Some(Self::stellar__master_weight), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__medium => Some(Self::stellar__medium), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__new_offer => Some(Self::stellar__new_offer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__new_passive_offer => Some(Self::stellar__new_passive_offer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__no_memo_set => Some(Self::stellar__no_memo_set), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__no_restriction => Some(Self::stellar__no_restriction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__on_network_template => Some(Self::stellar__on_network_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__path_pay => Some(Self::stellar__path_pay), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__path_pay_at_least => Some(Self::stellar__path_pay_at_least), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__pay => Some(Self::stellar__pay), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__pay_at_most => Some(Self::stellar__pay_at_most), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__preauth_transaction => Some(Self::stellar__preauth_transaction), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__price_per_template => Some(Self::stellar__price_per_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__private_network => Some(Self::stellar__private_network), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__remove_signer => Some(Self::stellar__remove_signer), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__revoke_trust => Some(Self::stellar__revoke_trust), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__selling => Some(Self::stellar__selling), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__set_data => Some(Self::stellar__set_data), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__set_flags => Some(Self::stellar__set_flags), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__set_sequence_to_template => Some(Self::stellar__set_sequence_to_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__sign_tx_count_template => Some(Self::stellar__sign_tx_count_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__sign_tx_fee_template => Some(Self::stellar__sign_tx_fee_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__source_account => Some(Self::stellar__source_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__testnet_network => Some(Self::stellar__testnet_network), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__trusted_account => Some(Self::stellar__trusted_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__update => Some(Self::stellar__update), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__valid_from => Some(Self::stellar__valid_from), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__valid_to => Some(Self::stellar__valid_to), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__value_sha256 => Some(Self::stellar__value_sha256), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__wanna_clean_value_key_template => Some(Self::stellar__wanna_clean_value_key_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_stellar__your_account => Some(Self::stellar__your_account), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__baker_address => Some(Self::tezos__baker_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__balance => Some(Self::tezos__balance), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__ballot => Some(Self::tezos__ballot), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__confirm_delegation => Some(Self::tezos__confirm_delegation), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__confirm_origination => Some(Self::tezos__confirm_origination), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__delegator => Some(Self::tezos__delegator), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__proposal => Some(Self::tezos__proposal), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__register_delegate => Some(Self::tezos__register_delegate), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__remove_delegation => Some(Self::tezos__remove_delegation), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__submit_ballot => Some(Self::tezos__submit_ballot), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__submit_proposal => Some(Self::tezos__submit_proposal), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_tezos__submit_proposals => Some(Self::tezos__submit_proposals), + Qstr::MP_QSTR_tutorial__middle_click => Some(Self::tutorial__middle_click), + Qstr::MP_QSTR_tutorial__press_and_hold => Some(Self::tutorial__press_and_hold), + Qstr::MP_QSTR_tutorial__ready_to_use => Some(Self::tutorial__ready_to_use), + Qstr::MP_QSTR_tutorial__scroll_down => Some(Self::tutorial__scroll_down), + Qstr::MP_QSTR_tutorial__sure_you_want_skip => Some(Self::tutorial__sure_you_want_skip), + Qstr::MP_QSTR_tutorial__title_hello => Some(Self::tutorial__title_hello), + Qstr::MP_QSTR_tutorial__title_screen_scroll => Some(Self::tutorial__title_screen_scroll), + Qstr::MP_QSTR_tutorial__title_skip => Some(Self::tutorial__title_skip), + Qstr::MP_QSTR_tutorial__title_tutorial_complete => Some(Self::tutorial__title_tutorial_complete), + Qstr::MP_QSTR_tutorial__use_trezor => Some(Self::tutorial__use_trezor), + Qstr::MP_QSTR_tutorial__welcome_press_right => Some(Self::tutorial__welcome_press_right), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_u2f__get => Some(Self::u2f__get), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_u2f__set_template => Some(Self::u2f__set_template), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_u2f__title_get => Some(Self::u2f__title_get), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_u2f__title_set => Some(Self::u2f__title_set), + Qstr::MP_QSTR_wipe__info => Some(Self::wipe__info), + Qstr::MP_QSTR_wipe__title => Some(Self::wipe__title), + Qstr::MP_QSTR_wipe__want_to_wipe => Some(Self::wipe__want_to_wipe), + Qstr::MP_QSTR_wipe_code__change => Some(Self::wipe_code__change), + Qstr::MP_QSTR_wipe_code__changed => Some(Self::wipe_code__changed), + Qstr::MP_QSTR_wipe_code__diff_from_pin => Some(Self::wipe_code__diff_from_pin), + Qstr::MP_QSTR_wipe_code__disabled => Some(Self::wipe_code__disabled), + Qstr::MP_QSTR_wipe_code__enabled => Some(Self::wipe_code__enabled), + Qstr::MP_QSTR_wipe_code__enter_new => Some(Self::wipe_code__enter_new), + Qstr::MP_QSTR_wipe_code__info => Some(Self::wipe_code__info), + Qstr::MP_QSTR_wipe_code__invalid => Some(Self::wipe_code__invalid), + Qstr::MP_QSTR_wipe_code__mismatch => Some(Self::wipe_code__mismatch), + Qstr::MP_QSTR_wipe_code__reenter => Some(Self::wipe_code__reenter), + Qstr::MP_QSTR_wipe_code__reenter_to_confirm => Some(Self::wipe_code__reenter_to_confirm), + Qstr::MP_QSTR_wipe_code__title_check => Some(Self::wipe_code__title_check), + Qstr::MP_QSTR_wipe_code__title_invalid => Some(Self::wipe_code__title_invalid), + Qstr::MP_QSTR_wipe_code__title_settings => Some(Self::wipe_code__title_settings), + Qstr::MP_QSTR_wipe_code__turn_off => Some(Self::wipe_code__turn_off), + Qstr::MP_QSTR_wipe_code__turn_on => Some(Self::wipe_code__turn_on), + Qstr::MP_QSTR_wipe_code__wipe_code_mismatch => Some(Self::wipe_code__wipe_code_mismatch), + Qstr::MP_QSTR_word_count__title => Some(Self::word_count__title), + Qstr::MP_QSTR_words__account => Some(Self::words__account), + Qstr::MP_QSTR_words__account_colon => Some(Self::words__account_colon), + Qstr::MP_QSTR_words__address => Some(Self::words__address), + Qstr::MP_QSTR_words__amount => Some(Self::words__amount), + Qstr::MP_QSTR_words__are_you_sure => Some(Self::words__are_you_sure), + Qstr::MP_QSTR_words__array_of => Some(Self::words__array_of), + Qstr::MP_QSTR_words__blockhash => Some(Self::words__blockhash), + Qstr::MP_QSTR_words__buying => Some(Self::words__buying), + Qstr::MP_QSTR_words__confirm => Some(Self::words__confirm), + Qstr::MP_QSTR_words__confirm_fee => Some(Self::words__confirm_fee), + Qstr::MP_QSTR_words__contains => Some(Self::words__contains), + Qstr::MP_QSTR_words__continue_anyway => Some(Self::words__continue_anyway), + Qstr::MP_QSTR_words__continue_with => Some(Self::words__continue_with), + Qstr::MP_QSTR_words__error => Some(Self::words__error), + Qstr::MP_QSTR_words__fee => Some(Self::words__fee), + Qstr::MP_QSTR_words__from => Some(Self::words__from), + Qstr::MP_QSTR_words__keep_it_safe => Some(Self::words__keep_it_safe), + Qstr::MP_QSTR_words__know_what_your_doing => Some(Self::words__know_what_your_doing), + Qstr::MP_QSTR_words__my_trezor => Some(Self::words__my_trezor), + Qstr::MP_QSTR_words__no => Some(Self::words__no), + Qstr::MP_QSTR_words__outputs => Some(Self::words__outputs), + Qstr::MP_QSTR_words__please_check_again => Some(Self::words__please_check_again), + Qstr::MP_QSTR_words__please_try_again => Some(Self::words__please_try_again), + Qstr::MP_QSTR_words__really_wanna => Some(Self::words__really_wanna), + Qstr::MP_QSTR_words__title_recipient => Some(Self::words__title_recipient), + Qstr::MP_QSTR_words__sign => Some(Self::words__sign), + Qstr::MP_QSTR_words__signer => Some(Self::words__signer), + Qstr::MP_QSTR_words__title_check => Some(Self::words__title_check), + Qstr::MP_QSTR_words__title_group => Some(Self::words__title_group), + Qstr::MP_QSTR_words__title_information => Some(Self::words__title_information), + Qstr::MP_QSTR_words__title_remember => Some(Self::words__title_remember), + Qstr::MP_QSTR_words__title_share => Some(Self::words__title_share), + Qstr::MP_QSTR_words__title_shares => Some(Self::words__title_shares), + Qstr::MP_QSTR_words__title_success => Some(Self::words__title_success), + Qstr::MP_QSTR_words__title_summary => Some(Self::words__title_summary), + Qstr::MP_QSTR_words__title_threshold => Some(Self::words__title_threshold), + Qstr::MP_QSTR_words__unknown => Some(Self::words__unknown), + Qstr::MP_QSTR_words__warning => Some(Self::words__warning), + Qstr::MP_QSTR_words__writable => Some(Self::words__writable), + Qstr::MP_QSTR_words__yes => Some(Self::words__yes), + Qstr::MP_QSTR_reboot_to_bootloader__just_a_moment => Some(Self::reboot_to_bootloader__just_a_moment), + Qstr::MP_QSTR_inputs__previous => Some(Self::inputs__previous), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_title_claim => Some(Self::ethereum__staking_title_claim), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_title_claim_address => Some(Self::ethereum__staking_title_claim_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_claim_intro => Some(Self::ethereum__staking_claim_intro), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_title_stake => Some(Self::ethereum__staking_title_stake), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_title_stake_address => Some(Self::ethereum__staking_title_stake_address), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_stake_intro => Some(Self::ethereum__staking_stake_intro), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_title_unstake => Some(Self::ethereum__staking_title_unstake), + #[cfg(feature = "universal_fw")] + Qstr::MP_QSTR_ethereum__staking_unstake_intro => Some(Self::ethereum__staking_unstake_intro), + Qstr::MP_QSTR_storage_msg__title_starting => Some(Self::storage_msg__title_starting), + Qstr::MP_QSTR_storage_msg__title_verifying_pin => Some(Self::storage_msg__title_verifying_pin), + Qstr::MP_QSTR_storage_msg__title_wrong_pin => Some(Self::storage_msg__title_wrong_pin), + _ => None, + } + } +} diff --git a/core/embed/rust/src/translations/generated/translated_string_upper.rs.mako b/core/embed/rust/src/translations/generated/translated_string_upper.rs.mako new file mode 100644 index 000000000..ce315d5b4 --- /dev/null +++ b/core/embed/rust/src/translations/generated/translated_string_upper.rs.mako @@ -0,0 +1,75 @@ +//! generated from ${THIS_FILE.name} +//! (by running `make templates` in `core`) +//! do not edit manually! + +#![cfg_attr(rustfmt, rustfmt_skip)] +<% +import json +from trezorlib._internal.translations import uppercase_titles_and_buttons + +ALTCOIN_PREFIXES = ( + "binance", + "cardano", + "eos", + "ethereum", + "fido", + "monero", + "nem", + "ripple", + "solana", + "stellar", + "tezos", + "u2f", +) + +TR_DIR = ROOT / "core" / "translations" + +order_file = TR_DIR / "order.json" +order_index_name = json.loads(order_file.read_text()) +order = {int(k): v for k, v in order_index_name.items()} + + +en_file = TR_DIR / "en.json" +en_data = json.loads(en_file.read_text())["translations"] + +%>\ +#[cfg(feature = "micropython")] +use crate::micropython::qstr::Qstr; + +#[derive(Debug, Copy, Clone, FromPrimitive, PartialEq, Eq)] +#[repr(u16)] +#[allow(non_camel_case_types)] +pub enum TranslatedString { +% for idx, name in order.items(): + %if any(name.startswith(prefix + "__") for prefix in ALTCOIN_PREFIXES): + #[cfg(feature = "universal_fw")] + %endif + ${name} = ${idx}, // ${json.dumps(en_data.get(name, '""'))} +% endfor +} + +impl TranslatedString { + pub fn untranslated(self) -> &'static str { + match self { +% for name in order.values(): + %if any(name.startswith(prefix + "__") for prefix in ALTCOIN_PREFIXES): + #[cfg(feature = "universal_fw")] + %endif + Self::${name} => ${uppercase_titles_and_buttons(json.dumps(en_data.get(name, '""')), name, "T2T1")}, +% endfor + } + } + + #[cfg(feature = "micropython")] + pub fn from_qstr(qstr: Qstr) -> Option { + match qstr { +% for name in order.values(): + %if any(name.startswith(prefix + "__") for prefix in ALTCOIN_PREFIXES): + #[cfg(feature = "universal_fw")] + %endif + Qstr::MP_QSTR_${name} => Some(Self::${name}), +% endfor + _ => None, + } + } +} diff --git a/core/embed/rust/src/translations/translated_string.rs b/core/embed/rust/src/translations/translated_string.rs index b10917e2a..ff1ab7e36 100644 --- a/core/embed/rust/src/translations/translated_string.rs +++ b/core/embed/rust/src/translations/translated_string.rs @@ -1,7 +1,7 @@ use crate::strutil::TString; use super::blob::Translations; -pub use super::generated::translated_string::TranslatedString; +pub use super::generated::TranslatedString; impl TranslatedString { pub(super) fn translate<'a>(self, source: Option<&'a Translations>) -> &'a str { diff --git a/core/embed/rust/src/ui/display/font.rs b/core/embed/rust/src/ui/display/font.rs index e6ad0f362..b9474abc6 100644 --- a/core/embed/rust/src/ui/display/font.rs +++ b/core/embed/rust/src/ui/display/font.rs @@ -122,7 +122,7 @@ impl Glyph { } /// Font constants. Keep in sync with FONT_ definitions in -/// `extmod/modtrezorui/fonts/fonts.h`. +/// `embed/lib/fonts/fonts.h`. #[derive(Copy, Clone, PartialEq, Eq, FromPrimitive)] #[repr(u8)] pub enum Font { diff --git a/core/mocks/trezortranslate_keys.pyi b/core/mocks/trezortranslate_keys.pyi index 36769be70..cc11c8eb2 100644 --- a/core/mocks/trezortranslate_keys.pyi +++ b/core/mocks/trezortranslate_keys.pyi @@ -8,25 +8,25 @@ class TR: addr_mismatch__support_url: str = "trezor.io/support" addr_mismatch__wrong_derivation_path: str = "Wrong derivation path for selected account." addr_mismatch__xpub_mismatch: str = "XPUB mismatch?" - address__public_key: str = "Public key" - address__title_cosigner: str = "COSIGNER" - address__title_receive_address: str = "RECEIVE ADDRESS" - address__title_yours: str = "YOURS" + address__title_cosigner: str = "Cosigner" + address__title_public_key: str = "Public key" + address__title_receive_address: str = "Receive address" + address__title_yours: str = "Yours" address_details__derivation_path: str = "Derivation path:" - address_details__title_receive_address: str = "RECEIVE ADDRESS" - address_details__title_receiving_to: str = "RECEIVING TO" + address_details__title_receive_address: str = "Receive address" + address_details__title_receiving_to: str = "Receiving to" authenticate__confirm_template: str = "Allow connected computer to confirm your {0} is genuine?" authenticate__header: str = "Authenticate device" auto_lock__change_template: str = "Auto-lock your Trezor after {0} of inactivity?" - auto_lock__title: str = "AUTO-LOCK DELAY" + auto_lock__title: str = "Auto-lock delay" backup__can_back_up_anytime: str = "You can back up your Trezor once, at any time." backup__it_should_be_backed_up: str = "You should back up your new wallet right now." backup__it_should_be_backed_up_now: str = "It should be backed up now!" backup__new_wallet_created: str = "New wallet created.\n" backup__new_wallet_successfully_created: str = "New wallet created successfully." backup__recover_anytime: str = "You can use your backup to recover your wallet at any time." - backup__title_backup_wallet: str = "BACK UP WALLET" - backup__title_skip: str = "SKIP BACKUP" + backup__title_backup_wallet: str = "Back up wallet" + backup__title_skip: str = "Skip backup" backup__want_to_skip: str = "Are you sure you want to skip the backup?" binance__buy: str = "Buy" binance__confirm_cancel: str = "Confirm cancel" @@ -52,59 +52,59 @@ class TR: bitcoin__new_fee_rate: str = "New fee rate:" bitcoin__simple_send_of: str = "Simple send of" bitcoin__ticket_amount: str = "Ticket amount:" - bitcoin__title_confirm_details: str = "CONFIRM DETAILS" - bitcoin__title_finalize_transaction: str = "FINALIZE TRANSACTION" - bitcoin__title_high_mining_fee: str = "HIGH MINING FEE" - bitcoin__title_meld_transaction: str = "MELD TRANSACTIONS" - bitcoin__title_modify_amount: str = "MODIFY AMOUNT" - bitcoin__title_payjoin: str = "PAYJOIN" - bitcoin__title_proof_of_ownership: str = "PROOF OF OWNERSHIP" - bitcoin__title_purchase_ticket: str = "PURCHASE TICKET" - bitcoin__title_update_transaction: str = "UPDATE TRANSACTION" + bitcoin__title_confirm_details: str = "Confirm details" + bitcoin__title_finalize_transaction: str = "Finalize transaction" + bitcoin__title_high_mining_fee: str = "High mining fee" + bitcoin__title_meld_transaction: str = "Meld transactions" + bitcoin__title_modify_amount: str = "Modify amount" + bitcoin__title_payjoin: str = "Payjoin" + bitcoin__title_proof_of_ownership: str = "Proof of ownership" + bitcoin__title_purchase_ticket: str = "Purchase ticket" + bitcoin__title_update_transaction: str = "Update transaction" bitcoin__unknown_path: str = "Unknown path" bitcoin__unknown_transaction: str = "Unknown transaction" bitcoin__unusually_high_fee: str = "Unusually high fee." bitcoin__unverified_external_inputs: str = "The transaction contains unverified external inputs." bitcoin__valid_signature: str = "The signature is valid." bitcoin__voting_rights: str = "Voting rights to:" - buttons__abort: str = "ABORT" - buttons__access: str = "ACCESS" - buttons__again: str = "AGAIN" - buttons__allow: str = "ALLOW" - buttons__back: str = "BACK" - buttons__back_up: str = "BACK UP" - buttons__cancel: str = "CANCEL" - buttons__change: str = "CHANGE" - buttons__check: str = "CHECK" - buttons__check_again: str = "CHECK AGAIN" - buttons__close: str = "CLOSE" - buttons__confirm: str = "CONFIRM" - buttons__continue: str = "CONTINUE" - buttons__details: str = "DETAILS" - buttons__enable: str = "ENABLE" - buttons__enter: str = "ENTER" - buttons__enter_share: str = "ENTER SHARE" - buttons__export: str = "EXPORT" - buttons__format: str = "FORMAT" - buttons__go_back: str = "GO BACK" - buttons__hold_to_confirm: str = "HOLD TO CONFIRM" - buttons__info: str = "INFO" - buttons__install: str = "INSTALL" - buttons__more_info: str = "MORE INFO" - buttons__ok_i_understand: str = "OK, I UNDERSTAND" - buttons__purchase: str = "PURCHASE" - buttons__quit: str = "QUIT" - buttons__restart: str = "RESTART" - buttons__retry: str = "RETRY" - buttons__select: str = "SELECT" - buttons__set: str = "SET" - buttons__show_all: str = "SHOW ALL" - buttons__show_details: str = "SHOW DETAILS" - buttons__show_words: str = "SHOW WORDS" - buttons__skip: str = "SKIP" - buttons__try_again: str = "TRY AGAIN" - buttons__turn_off: str = "TURN OFF" - buttons__turn_on: str = "TURN ON" + buttons__abort: str = "Abort" + buttons__access: str = "Access" + buttons__again: str = "Again" + buttons__allow: str = "Allow" + buttons__back: str = "Back" + buttons__back_up: str = "Back up" + buttons__cancel: str = "Cancel" + buttons__change: str = "Change" + buttons__check: str = "Check" + buttons__check_again: str = "Check again" + buttons__close: str = "Close" + buttons__confirm: str = "Confirm" + buttons__continue: str = "Continue" + buttons__details: str = "Details" + buttons__enable: str = "Enable" + buttons__enter: str = "Enter" + buttons__enter_share: str = "Enter share" + buttons__export: str = "Export" + buttons__format: str = "Format" + buttons__go_back: str = "Go back" + buttons__hold_to_confirm: str = "Hold to confirm" + buttons__info: str = "Info" + buttons__install: str = "Install" + buttons__more_info: str = "More info" + buttons__ok_i_understand: str = "Ok, i understand" + buttons__purchase: str = "Purchase" + buttons__quit: str = "Quit" + buttons__restart: str = "Restart" + buttons__retry: str = "Retry" + buttons__select: str = "Select" + buttons__set: str = "Set" + buttons__show_all: str = "Show all" + buttons__show_details: str = "Show details" + buttons__show_words: str = "Show words" + buttons__skip: str = "Skip" + buttons__try_again: str = "Try again" + buttons__turn_off: str = "Turn off" + buttons__turn_on: str = "Turn on" cardano__addr_base: str = "Base" cardano__addr_enterprise: str = "Enterprise" cardano__addr_legacy: str = "Legacy" @@ -218,21 +218,21 @@ class TR: coinjoin__do_not_disconnect: str = "Do not disconnect your Trezor!" coinjoin__max_mining_fee: str = "Max mining fee" coinjoin__max_rounds: str = "Max rounds" - coinjoin__title: str = "AUTHORIZE COINJOIN" - coinjoin__title_do_not_disconnect: str = "DO NOT DISCONNECT YOUR TREZOR!" - coinjoin__title_progress: str = "COINJOIN IN PROGRESS" + coinjoin__title: str = "Authorize coinjoin" + coinjoin__title_do_not_disconnect: str = "Do not disconnect your trezor!" + coinjoin__title_progress: str = "Coinjoin in progress" coinjoin__waiting_for_others: str = "Waiting for others" confirm_total__fee_rate: str = "Fee rate:" confirm_total__sending_from_account: str = "Sending from account:" - confirm_total__title_fee: str = "FEE INFORMATION" - confirm_total__title_sending_from: str = "SENDING FROM" + confirm_total__title_fee: str = "Fee information" + confirm_total__title_sending_from: str = "Sending from" debug__loading_seed: str = "Loading seed" debug__loading_seed_not_recommended: str = "Loading private seed is not recommended." device_name__change_template: str = "Change device name to {0}?" - device_name__title: str = "DEVICE NAME" + device_name__title: str = "Device name" entropy__send: str = "Do you really want to send entropy?" - entropy__title: str = "INTERNAL ENTROPY" - entropy__title_confirm: str = "CONFIRM ENTROPY" + entropy__title: str = "Internal entropy" + entropy__title_confirm: str = "Confirm entropy" eos__about_to_sign_template: str = "You are about to sign {0}." eos__action_name: str = "Action Name:" eos__arbitrary_data: str = "Arbitrary data" @@ -288,26 +288,26 @@ class TR: ethereum__show_full_message: str = "Show full message" ethereum__show_full_struct: str = "Show full struct" ethereum__sign_eip712: str = "Really sign EIP-712 typed data?" - ethereum__staking_claim: str = "CLAIM" - ethereum__staking_claim_address: str = "CLAIM ADDRESS" ethereum__staking_claim_intro: str = "Claim ETH from Everstake?" - ethereum__staking_stake: str = "STAKE" - ethereum__staking_stake_address: str = "STAKE ADDRESS" ethereum__staking_stake_intro: str = "Stake ETH on Everstake?" - ethereum__staking_unstake: str = "UNSTAKE" + ethereum__staking_title_claim: str = "Claim" + ethereum__staking_title_claim_address: str = "Claim address" + ethereum__staking_title_stake: str = "Stake" + ethereum__staking_title_stake_address: str = "Stake address" + ethereum__staking_title_unstake: str = "Unstake" ethereum__staking_unstake_intro: str = "Unstake ETH from Everstake?" - ethereum__title_confirm_data: str = "CONFIRM DATA" - ethereum__title_confirm_domain: str = "CONFIRM DOMAIN" - ethereum__title_confirm_message: str = "CONFIRM MESSAGE" - ethereum__title_confirm_struct: str = "CONFIRM STRUCT" - ethereum__title_confirm_typed_data: str = "CONFIRM TYPED DATA" - ethereum__title_signing_address: str = "SIGNING ADDRESS" + ethereum__title_confirm_data: str = "Confirm data" + ethereum__title_confirm_domain: str = "Confirm domain" + ethereum__title_confirm_message: str = "Confirm message" + ethereum__title_confirm_struct: str = "Confirm struct" + ethereum__title_confirm_typed_data: str = "Confirm typed data" + ethereum__title_signing_address: str = "Signing address" ethereum__units_template: str = "{0} units" ethereum__unknown_token: str = "Unknown token" ethereum__valid_signature: str = "The signature is valid." experimental_mode__enable: str = "Enable experimental features?" experimental_mode__only_for_dev: str = "Only for development and beta testing!" - experimental_mode__title: str = "EXPERIMENTAL MODE" + experimental_mode__title: str = "Experimental mode" fido__already_registered: str = "Already registered" fido__device_already_registered: str = "This device is already registered with this application." fido__device_already_registered_with_template: str = "This device is already registered with {0}." @@ -318,61 +318,61 @@ class TR: fido__not_registered: str = "Not registered" fido__not_registered_with_template: str = "This device is not registered with\n{0}." fido__please_enable_pin_protection: str = "Please enable PIN protection." - fido__title_authenticate: str = "FIDO2 AUTHENTICATE" - fido__title_import_credential: str = "IMPORT CREDENTIAL" - fido__title_list_credentials: str = "LIST CREDENTIALS" - fido__title_register: str = "FIDO2 REGISTER" - fido__title_remove_credential: str = "REMOVE CREDENTIAL" - fido__title_reset: str = "FIDO2 RESET" - fido__title_u2f_auth: str = "U2F AUTHENTICATE" - fido__title_u2f_register: str = "U2F REGISTER" - fido__title_verify_user: str = "FIDO2 VERIFY USER" + fido__title_authenticate: str = "Fido2 authenticate" + fido__title_import_credential: str = "Import credential" + fido__title_list_credentials: str = "List credentials" + fido__title_register: str = "Fido2 register" + fido__title_remove_credential: str = "Remove credential" + fido__title_reset: str = "FIDO2 reset" + fido__title_u2f_auth: str = "U2F authenticate" + fido__title_u2f_register: str = "U2F register" + fido__title_verify_user: str = "FIDO2 verify user" fido__unable_to_verify_user: str = "Unable to verify user." fido__wanna_erase_credentials: str = "Do you really want to erase all credentials?" - firmware_update__title: str = "UPDATE FIRMWARE" - firmware_update__title_fingerprint: str = "FW FINGERPRINT" + firmware_update__title: str = "Update firmware" + firmware_update__title_fingerprint: str = "FW fingerprint" homescreen__click_to_connect: str = "Click to Connect" homescreen__click_to_unlock: str = "Click to Unlock" - homescreen__title_backup_failed: str = "BACKUP FAILED" - homescreen__title_backup_needed: str = "BACKUP NEEDED" - homescreen__title_coinjoin_authorized: str = "COINJOIN AUTHORIZED" - homescreen__title_experimental_mode: str = "EXPERIMENTAL MODE" - homescreen__title_no_usb_connection: str = "NO USB CONNECTION" - homescreen__title_pin_not_set: str = "PIN NOT SET" - homescreen__title_seedless: str = "SEEDLESS" - homescreen__title_set: str = "CHANGE HOMESCREEN?" - inputs__back: str = "BACK" - inputs__cancel: str = "CANCEL" - inputs__delete: str = "DELETE" - inputs__enter: str = "ENTER" - inputs__previous: str = "PREVIOUS" - inputs__return: str = "RETURN" - inputs__show: str = "SHOW" - inputs__space: str = "SPACE" - joint__title: str = "JOINT TRANSACTION" + homescreen__title_backup_failed: str = "Backup failed" + homescreen__title_backup_needed: str = "Backup needed" + homescreen__title_coinjoin_authorized: str = "Coinjoin authorized" + homescreen__title_experimental_mode: str = "Experimental mode" + homescreen__title_no_usb_connection: str = "No USB connection" + homescreen__title_pin_not_set: str = "PIN not set" + homescreen__title_seedless: str = "Seedless" + homescreen__title_set: str = "Change homescreen?" + inputs__back: str = "Back" + inputs__cancel: str = "Cancel" + inputs__delete: str = "Delete" + inputs__enter: str = "Enter" + inputs__previous: str = "Previous" + inputs__return: str = "Return" + inputs__show: str = "Show" + inputs__space: str = "Space" + joint__title: str = "Joint transaction" joint__to_the_total_amount: str = "To the total amount:" joint__you_are_contributing: str = "You are contributing:" language__change_to_template: str = "Change language to {0}?" language__changed: str = "Language changed successfully" language__progress: str = "Changing language" - language__title: str = "LANGUAGE SETTINGS" + language__title: str = "Language settings" lockscreen__tap_to_connect: str = "Tap to connect" lockscreen__tap_to_unlock: str = "Tap to unlock" - lockscreen__title_locked: str = "LOCKED" - lockscreen__title_not_connected: str = "NOT CONNECTED" + lockscreen__title_locked: str = "Locked" + lockscreen__title_not_connected: str = "Not connected" misc__decrypt_value: str = "Decrypt value" misc__encrypt_value: str = "Encrypt value" - misc__title_suite_labeling: str = "SUITE LABELING" + misc__title_suite_labeling: str = "Suite labeling" modify_amount__decrease_amount: str = "Decrease amount by:" modify_amount__increase_amount: str = "Increase amount by:" modify_amount__new_amount: str = "New amount:" - modify_amount__title: str = "MODIFY AMOUNT" + modify_amount__title: str = "Modify amount" modify_fee__decrease_fee: str = "Decrease fee by:" modify_fee__fee_rate: str = "Fee rate:" modify_fee__increase_fee: str = "Increase fee by:" modify_fee__new_transaction_fee: str = "New transaction fee:" modify_fee__no_change: str = "Fee did not change.\n" - modify_fee__title: str = "MODIFY FEE" + modify_fee__title: str = "Modify fee" modify_fee__transaction_fee: str = "Transaction fee:" monero__confirm_export: str = "Confirm export" monero__confirm_ki_sync: str = "Confirm ki sync" @@ -451,11 +451,11 @@ class TR: passphrase__next_screen_will_show_passphrase: str = "Next screen will show the passphrase." passphrase__please_enter: str = "Please enter your passphrase." passphrase__revoke_on_device: str = "Do you want to revoke the passphrase on device setting?" - passphrase__title_confirm: str = "CONFIRM PASSPHRASE" - passphrase__title_enter: str = "ENTER PASSPHRASE" - passphrase__title_hide: str = "HIDE PASSPHRASE" - passphrase__title_settings: str = "PASSPHRASE SETTINGS" - passphrase__title_source: str = "PASSPHRASE SOURCE" + passphrase__title_confirm: str = "Confirm passphrase" + passphrase__title_enter: str = "Enter passphrase" + passphrase__title_hide: str = "Hide passphrase" + passphrase__title_settings: str = "Passphrase settings" + passphrase__title_source: str = "Passphrase source" passphrase__turn_off: str = "Turn off passphrase protection?" passphrase__turn_on: str = "Turn on passphrase protection?" pin__change: str = "Change PIN?" @@ -476,9 +476,9 @@ class TR: pin__reenter_new: str = "Re-enter new PIN" pin__reenter_to_confirm: str = "Please re-enter PIN to confirm." pin__should_be_long: str = "PIN should be 4-50 digits long." - pin__title_check_pin: str = "CHECK PIN" - pin__title_settings: str = "PIN SETTINGS" - pin__title_wrong_pin: str = "WRONG PIN" + pin__title_check_pin: str = "Check PIN" + pin__title_settings: str = "PIN settings" + pin__title_wrong_pin: str = "Wrong PIN" pin__tries_left: str = "tries left" pin__turn_off: str = "Are you sure you want to turn off PIN protection?" pin__turn_on: str = "Turn on PIN protection?" @@ -497,14 +497,14 @@ class TR: progress__loading_transaction: str = "Loading transaction..." progress__locking_device: str = "Locking the device..." progress__one_second_left: str = "1 second left" - progress__please_wait: str = "PLEASE WAIT" progress__refreshing: str = "Refreshing..." progress__signing_transaction: str = "Signing transaction..." progress__syncing: str = "Syncing..." + progress__title_please_wait: str = "Please wait" progress__x_seconds_left_template: str = "{0} seconds left" reboot_to_bootloader__just_a_moment: str = "Just a moment..." reboot_to_bootloader__restart: str = "Trezor will restart in bootloader mode." - reboot_to_bootloader__title: str = "GO TO BOOTLOADER" + reboot_to_bootloader__title: str = "Go to bootloader" reboot_to_bootloader__version_by_template: str = "Firmware version {0}\nby {1}" recovery__cancel_dry_run: str = "Cancel backup check" recovery__check_dry_run: str = "Check your backup?" @@ -529,18 +529,18 @@ class TR: recovery__share_already_entered: str = "Share already entered" recovery__share_from_another_shamir: str = "You have entered a share from another Shamir Backup." recovery__share_num_template: str = "Share {0}" - recovery__title: str = "RECOVER WALLET" - recovery__title_cancel_dry_run: str = "CANCEL BACKUP CHECK" - recovery__title_cancel_recovery: str = "CANCEL RECOVERY" - recovery__title_dry_run: str = "BACKUP CHECK" - recovery__title_recover: str = "RECOVER WALLET" - recovery__title_remaining_shares: str = "REMAINING SHARES" + recovery__title: str = "Recover wallet" + recovery__title_cancel_dry_run: str = "Cancel backup check" + recovery__title_cancel_recovery: str = "Cancel recovery" + recovery__title_dry_run: str = "Backup check" + recovery__title_recover: str = "Recover wallet" + recovery__title_remaining_shares: str = "Remaining shares" recovery__type_word_x_of_y_template: str = "Type word {0} of {1}" recovery__wallet_recovered: str = "Wallet recovered successfully" recovery__wanna_cancel_dry_run: str = "Are you sure you want to cancel the backup check?" recovery__wanna_cancel_recovery: str = "Are you sure you want to cancel the recovery process?" recovery__word_count_template: str = "({0} words)" - recovery__word_x_of_y_template: str = "WORD {0} OF {1}" + recovery__word_x_of_y_title_template: str = "Word {0} of {1}" recovery__x_more_items_starting_template_plural: str = "{count} more {plural} starting" recovery__x_more_shares_needed_template_plural: str = "{count} more {plural} needed." recovery__x_of_y_entered_template: str = "{0} of {1} shares entered successfully." @@ -548,13 +548,13 @@ class TR: reset__advanced_group_threshold_info: str = "The group threshold specifies the number of groups required to recover your wallet." reset__all_x_of_y_template: str = "all {0} of {1} shares" reset__any_x_of_y_template: str = "any {0} of {1} shares" - reset__button_create: str = "CREATE WALLET" - reset__button_recover: str = "RECOVER WALLET" + reset__button_create: str = "Create wallet" + reset__button_recover: str = "Recover wallet" reset__by_continuing: str = "By continuing you agree to Trezor Company's terms and conditions." - reset__check_backup_title: str = "CHECK BACKUP" - reset__check_group_share_title_template: str = "CHECK G{0} - SHARE {1}" - reset__check_seed_title: str = "CHECK SEED" - reset__check_share_title_template: str = "CHECK SHARE #{0}" + reset__check_backup_title: str = "Check backup" + reset__check_group_share_title_template: str = "Check g{0} - share {1}" + reset__check_seed_title: str = "Check seed" + reset__check_share_title_template: str = "Check share #{0}" reset__continue_with_next_share: str = "Continue with the next share." reset__continue_with_share_template: str = "Continue with share #{0}." reset__finished_verifying_group_template: str = "You have finished verifying your recovery shares for group {0}." @@ -563,7 +563,7 @@ class TR: reset__group_description: str = "A group is made up of recovery shares." reset__group_info: str = "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds." reset__group_share_checked_successfully_template: str = "Group {0} - Share {1} checked successfully." - reset__group_share_title_template: str = "GROUP {0} - SHARE {1}" + reset__group_share_title_template: str = "Group {0} - share {1}" reset__more_info_at: str = "More info at" reset__need_all_share_template: str = "For recovery you need all {0} of the shares." reset__need_any_share_template: str = "For recovery you need any {0} of the shares." @@ -577,15 +577,15 @@ class TR: reset__number_of_shares_info: str = "= total number of unique word lists used for wallet backup." reset__one_share: str = "1 share" reset__only_one_share_will_be_created: str = "Only one share will be created." - reset__recovery_seed_title: str = "RECOVERY SEED" - reset__recovery_share_title_template: str = "RECOVERY SHARE #{0}" + reset__recovery_seed_title: str = "Recovery seed" + reset__recovery_share_title_template: str = "Recovery share #{0}" reset__required_number_of_groups: str = "The required number of groups for recovery." reset__select_correct_word: str = "Select the correct word for each position." - reset__select_word_template: str = "SELECT {0} WORD" + reset__select_word_title_template: str = "Select {0} word" reset__select_word_x_of_y_template: str = "Select word {0} of {1}:" reset__set_it_to_count_template: str = "Set it to {0} and you will need " reset__share_checked_successfully_template: str = "Recovery share #{0} checked successfully." - reset__share_words_title: str = "STANDARD BACKUP" + reset__share_words_title: str = "Standard backup" reset__slip39_checklist_num_groups: str = "Number of groups" reset__slip39_checklist_num_shares: str = "Number of shares" reset__slip39_checklist_set_num_groups: str = "Set number of groups" @@ -593,21 +593,21 @@ class TR: reset__slip39_checklist_set_sizes: str = "Set sizes and thresholds" reset__slip39_checklist_set_sizes_longer: str = "Set size and threshold for each group" reset__slip39_checklist_set_threshold: str = "Set threshold" - reset__slip39_checklist_title: str = "BACKUP CHECKLIST" + reset__slip39_checklist_title: str = "Backup checklist" reset__slip39_checklist_write_down: str = "Write down and check all shares" reset__slip39_checklist_write_down_recovery: str = "Write down and check all recovery shares" reset__the_threshold_sets_the_number_of_shares: str = "The threshold sets the number of shares " reset__threshold_info: str = "= minimum number of unique word lists used for recovery." - reset__title_backup_is_done: str = "BACKUP IS DONE" - reset__title_create_wallet: str = "CREATE WALLET" - reset__title_create_wallet_shamir: str = "CREATE WALLET (SHAMIR)" - reset__title_group_threshold: str = "GROUP THRESHOLD" - reset__title_number_of_groups: str = "NUMBER OF GROUPS" - reset__title_number_of_shares: str = "NUMBER OF SHARES" - reset__title_set_group_threshold: str = "SET GROUP THRESHOLD" - reset__title_set_number_of_groups: str = "SET NUMBER OF GROUPS" - reset__title_set_number_of_shares: str = "SET NUMBER OF SHARES" - reset__title_set_threshold: str = "SET THRESHOLD" + reset__title_backup_is_done: str = "Backup is done" + reset__title_create_wallet: str = "Create wallet" + reset__title_create_wallet_shamir: str = "Create wallet (shamir)" + reset__title_group_threshold: str = "Group threshold" + reset__title_number_of_groups: str = "Number of groups" + reset__title_number_of_shares: str = "Number of shares" + reset__title_set_group_threshold: str = "Set group threshold" + reset__title_set_number_of_groups: str = "Set number of groups" + reset__title_set_number_of_shares: str = "Set number of shares" + reset__title_set_threshold: str = "Set threshold" reset__to_form_group_template: str = "to form Group {0}." reset__tos_link: str = "trezor.io/tos" reset__total_number_of_shares_in_group_template: str = "Set the total number of shares in Group {0}." @@ -622,13 +622,13 @@ class TR: rotation__east: str = "east" rotation__north: str = "north" rotation__south: str = "south" - rotation__title_change: str = "CHANGE ROTATION" + rotation__title_change: str = "Change rotation" rotation__west: str = "west" safety_checks__approve_unsafe_always: str = "Trezor will allow you to approve some actions which might be unsafe." safety_checks__approve_unsafe_temporary: str = "Trezor will temporarily allow you to approve some actions which might be unsafe." safety_checks__enforce_strict: str = "Do you really want to enforce strict safety checks (recommended)?" - safety_checks__title: str = "SAFETY CHECKS" - safety_checks__title_safety_override: str = "SAFETY OVERRIDE" + safety_checks__title: str = "Safety checks" + safety_checks__title_safety_override: str = "Safety override" sd_card__all_data_will_be_lost: str = "All data on the SD card will be lost." sd_card__card_required: str = "SD card required." sd_card__disable: str = "Do you really want to remove SD card protection from your device?" @@ -644,25 +644,25 @@ class TR: sd_card__refresh: str = "Do you really want to replace the current SD card secret with a newly generated one?" sd_card__refreshed: str = "You have successfully refreshed SD protection." sd_card__restart: str = "Do you want to restart Trezor in bootloader mode?" - sd_card__title: str = "SD CARD PROTECTION" - sd_card__title_problem: str = "SD CARD PROBLEM" + sd_card__title: str = "SD card protection" + sd_card__title_problem: str = "SD card problem" sd_card__unknown_filesystem: str = "Unknown filesystem." sd_card__unplug_and_insert_correct: str = "Please unplug the device and insert the correct SD card." sd_card__use_different_card: str = "Use a different card or format the SD card to the FAT32 filesystem." sd_card__wanna_format: str = "Do you really want to format the SD card?" sd_card__wrong_sd_card: str = "Wrong SD card." send__address_path: str = "address path" - send__confirm_sending: str = "SENDING AMOUNT" + send__confirm_sending: str = "Sending amount" send__from_multiple_accounts: str = "Sending from multiple accounts." send__including_fee: str = "Including fee:" send__maximum_fee: str = "Maximum fee:" send__receiving_to_multisig: str = "Receiving to a multisig address." - send__title_confirm_sending: str = "CONFIRM SENDING" - send__title_joint_transaction: str = "JOINT TRANSACTION" - send__title_receiving_to: str = "RECEIVING TO" - send__title_sending: str = "SENDING" - send__title_sending_amount: str = "SENDING AMOUNT" - send__title_sending_to: str = "SENDING TO" + send__title_confirm_sending: str = "Confirm sending" + send__title_joint_transaction: str = "Joint transaction" + send__title_receiving_to: str = "Receiving to" + send__title_sending: str = "Sending" + send__title_sending_amount: str = "Sending amount" + send__title_sending_to: str = "Sending to" send__to_the_total_amount: str = "To the total amount:" send__total_amount: str = "Total amount:" send__transaction_id: str = "Transaction ID:" @@ -670,10 +670,10 @@ class TR: share_words__words_in_order: str = " words in order." share_words__wrote_down_all: str = "I wrote down all " sign_message__bytes_template: str = "{0} Bytes" - sign_message__confirm_address: str = "SIGNING ADDRESS" - sign_message__confirm_message: str = "CONFIRM MESSAGE" sign_message__message_size: str = "Message size:" - sign_message__verify_address: str = "VERIFY ADDRESS" + sign_message__title_confirm_address: str = "Signing address" + sign_message__title_confirm_message: str = "Confirm message" + sign_message__title_verify_address: str = "Verify address" solana__account_index: str = "Account index" solana__associated_token_account: str = "Associated token account" solana__confirm_multisig: str = "Confirm multisig" @@ -755,10 +755,10 @@ class TR: stellar__value_sha256: str = "Value (SHA-256):" stellar__wanna_clean_value_key_template: str = "Do you want to clear value key {0}?" stellar__your_account: str = " your account" - storage_msg__processing: str = "PROCESSING" - storage_msg__starting: str = "STARTING UP" - storage_msg__verifying_pin: str = "VERIFYING PIN" - storage_msg__wrong_pin: str = "WRONG PIN" + storage_msg__title_processing: str = "Processing" + storage_msg__title_starting: str = "Starting up" + storage_msg__title_verifying_pin: str = "Verifying pin" + storage_msg__title_wrong_pin: str = "Wrong pin" tezos__baker_address: str = "Baker address:" tezos__balance: str = "Balance:" tezos__ballot: str = "Ballot:" @@ -784,10 +784,10 @@ class TR: tutorial__welcome_press_right: str = "Welcome to Trezor. Press right to continue." u2f__get: str = "Increase and retrieve the U2F counter?" u2f__set_template: str = "Set the U2F counter to {0}?" - u2f__title_get: str = "GET U2F COUNTER" - u2f__title_set: str = "SET U2F COUNTER" + u2f__title_get: str = "Get U2F counter" + u2f__title_set: str = "Set U2F counter" wipe__info: str = "All data will be erased." - wipe__title: str = "WIPE DEVICE" + wipe__title: str = "Wipe device" wipe__want_to_wipe: str = "Do you really want to wipe the device?\n" wipe_code__change: str = "Change wipe code?" wipe_code__changed: str = "Wipe code changed." @@ -800,13 +800,13 @@ class TR: wipe_code__mismatch: str = "The wipe codes you entered do not match." wipe_code__reenter: str = "Re-enter wipe code" wipe_code__reenter_to_confirm: str = "Please re-enter wipe code to confirm." - wipe_code__title_check: str = "CHECK WIPE CODE" - wipe_code__title_invalid: str = "INVALID WIPE CODE" - wipe_code__title_settings: str = "WIPE CODE SETTINGS" + wipe_code__title_check: str = "Check wipe code" + wipe_code__title_invalid: str = "Invalid wipe code" + wipe_code__title_settings: str = "Wipe code settings" wipe_code__turn_off: str = "Turn off wipe code protection?" wipe_code__turn_on: str = "Turn on wipe code protection?" wipe_code__wipe_code_mismatch: str = "Wipe code mismatch" - word_count__title: str = "NUMBER OF WORDS" + word_count__title: str = "Number of words" words__account: str = "Account" words__account_colon: str = "Account:" words__address: str = "Address" @@ -831,18 +831,18 @@ class TR: words__please_check_again: str = "Please check again" words__please_try_again: str = "Please try again" words__really_wanna: str = "Do you really want to" - words__recipient: str = "Recipient" words__sign: str = "Sign" words__signer: str = "Signer" - words__title_check: str = "CHECK" - words__title_group: str = "GROUP" - words__title_information: str = "INFORMATION" - words__title_remember: str = "REMEMBER" - words__title_share: str = "SHARE" - words__title_shares: str = "SHARES" - words__title_success: str = "SUCCESS" - words__title_summary: str = "SUMMARY" - words__title_threshold: str = "THRESHOLD" + words__title_check: str = "Check" + words__title_group: str = "Group" + words__title_information: str = "Information" + words__title_recipient: str = "Recipient" + words__title_remember: str = "Remember" + words__title_share: str = "Share" + words__title_shares: str = "Shares" + words__title_success: str = "Success" + words__title_summary: str = "Summary" + words__title_threshold: str = "Threshold" words__unknown: str = "Unknown" words__warning: str = "Warning" words__writable: str = "Writable" diff --git a/core/src/apps/base.py b/core/src/apps/base.py index 4ba716ce4..66d53fb40 100644 --- a/core/src/apps/base.py +++ b/core/src/apps/base.py @@ -304,7 +304,7 @@ async def handle_UnlockPath(msg: UnlockPath) -> protobuf.MessageType: else: await confirm_action( "confirm_coinjoin_access", - title="Coinjoin", + title="COINJOIN", description=TR.coinjoin__access_account, verb=TR.buttons__access, ) diff --git a/core/src/apps/cardano/get_public_key.py b/core/src/apps/cardano/get_public_key.py index 8b2856e87..a9bab3a03 100644 --- a/core/src/apps/cardano/get_public_key.py +++ b/core/src/apps/cardano/get_public_key.py @@ -40,7 +40,7 @@ async def get_public_key( from apps.common.paths import address_n_to_str path = address_n_to_str(address_n) - await show_pubkey(key.xpub, TR.address__public_key, path=path) + await show_pubkey(key.xpub, TR.address__title_public_key, path=path) return key diff --git a/core/src/apps/ethereum/layout.py b/core/src/apps/ethereum/layout.py index 20bd76cb7..291945fa5 100644 --- a/core/src/apps/ethereum/layout.py +++ b/core/src/apps/ethereum/layout.py @@ -58,13 +58,13 @@ async def require_confirm_stake( addr_str = address_from_bytes(addr_bytes, network) total_amount = format_ethereum_amount(value, None, network) await confirm_ethereum_staking_tx( - TR.ethereum__staking_stake, # title + TR.ethereum__staking_title_stake, # title TR.ethereum__staking_stake_intro, # intro_question - TR.ethereum__staking_stake, # verb + TR.ethereum__staking_title_stake, # verb total_amount, # total_amount maximum_fee, # maximum_fee addr_str, # address - TR.ethereum__staking_stake_address, # address_title + TR.ethereum__staking_title_stake_address, # address_title fee_info_items, # info_items chunkify=chunkify, ) @@ -83,13 +83,13 @@ async def require_confirm_unstake( total_amount = format_ethereum_amount(value, None, network) await confirm_ethereum_staking_tx( - TR.ethereum__staking_unstake, # title + TR.ethereum__staking_title_unstake, # title TR.ethereum__staking_unstake_intro, # intro_question - TR.ethereum__staking_unstake, # verb + TR.ethereum__staking_title_unstake, # verb total_amount, # total_amount maximum_fee, # maximum_fee addr_str, # address - TR.ethereum__staking_stake_address, # address_title + TR.ethereum__staking_title_stake_address, # address_title fee_info_items, # info_items chunkify=chunkify, ) @@ -105,13 +105,13 @@ async def require_confirm_claim( addr_str = address_from_bytes(addr_bytes, network) await confirm_ethereum_staking_tx( - TR.ethereum__staking_claim, # title + TR.ethereum__staking_title_claim, # title TR.ethereum__staking_claim_intro, # intro_question - TR.ethereum__staking_claim, # verb + TR.ethereum__staking_title_claim, # verb "", # total_amount maximum_fee, # maximum_fee addr_str, # address - TR.ethereum__staking_claim_address, # address_title + TR.ethereum__staking_title_claim_address, # address_title fee_info_items, # info_items chunkify=chunkify, ) diff --git a/core/src/apps/solana/layout.py b/core/src/apps/solana/layout.py index 81aac811a..c06a24c33 100644 --- a/core/src/apps/solana/layout.py +++ b/core/src/apps/solana/layout.py @@ -266,7 +266,7 @@ async def confirm_system_transfer( blockhash: bytes, ) -> None: await confirm_value( - title=TR.words__recipient, + title=TR.words__title_recipient, value=base58.encode(transfer_instruction.recipient_account[0]), description="", br_type="confirm_recipient", @@ -295,7 +295,7 @@ async def confirm_token_transfer( blockhash: bytes, ): await confirm_value( - title=TR.words__recipient, + title=TR.words__title_recipient, value=base58.encode(destination_account), description="", br_type="confirm_recipient", diff --git a/core/src/trezor/ui/layouts/progress.py b/core/src/trezor/ui/layouts/progress.py index e08592d87..6f9648df9 100644 --- a/core/src/trezor/ui/layouts/progress.py +++ b/core/src/trezor/ui/layouts/progress.py @@ -18,13 +18,13 @@ def _storage_message_to_str(message: config.StorageMessage | None) -> str | None if message == config.StorageMessage.NO_MSG: return "" if message == config.StorageMessage.VERIFYING_PIN_MSG: - return TR.storage_msg__verifying_pin + return TR.storage_msg__title_verifying_pin if message == config.StorageMessage.PROCESSING_MSG: - return TR.storage_msg__processing + return TR.storage_msg__title_processing if message == config.StorageMessage.STARTING_MSG: - return TR.storage_msg__starting + return TR.storage_msg__title_starting if message == config.StorageMessage.WRONG_PIN_MSG: - return TR.storage_msg__wrong_pin + return TR.storage_msg__title_wrong_pin raise RuntimeError # unknown message @@ -56,14 +56,13 @@ def progress( indeterminate: bool = False, ) -> ProgressLayout: if description is None: - description = TR.progress__please_wait # def_arg - - if title is not None: - title = title.upper() - elif not utils.MODEL_IS_T2B1: - # on TT, uppercase the description which ends up on top of the screen - # when no title is set - description = description.upper() + description = TR.progress__title_please_wait # def_arg + + # elif not utils.MODEL_IS_T2B1: + # TODO: keep this? + # # on TT, uppercase the description which ends up on top of the screen + # # when no title is set + # description = description.upper() return RustProgress( layout=trezorui2.show_progress( diff --git a/core/src/trezor/ui/layouts/tr/__init__.py b/core/src/trezor/ui/layouts/tr/__init__.py index f99cc9487..3121d9ee9 100644 --- a/core/src/trezor/ui/layouts/tr/__init__.py +++ b/core/src/trezor/ui/layouts/tr/__init__.py @@ -403,7 +403,7 @@ def confirm_reset_device( interact( RustLayout( trezorui2.confirm_reset_device( - title=title.upper(), + title=title, button=button, ) ), @@ -563,7 +563,7 @@ def show_pubkey( mismatch_title: str | None = None, br_type: str = "show_pubkey", ) -> Awaitable[None]: - title = title or TR.address__public_key # def_arg + title = title or TR.address__title_public_key # def_arg mismatch_title = mismatch_title or TR.addr_mismatch__key_mismatch # def_arg return show_address( address=pubkey, @@ -691,8 +691,8 @@ async def confirm_output( output_index: int | None = None, chunkify: bool = False, ) -> None: - title = title or TR.send__confirm_sending # def_arg - address_title = TR.words__recipient + title = title or TR.send__title_sending_amount # def_arg + address_title = TR.words__title_recipient if output_index is not None: address_title += f" #{output_index + 1}" amount_title = TR.words__amount @@ -748,7 +748,7 @@ async def should_show_payment_request_details( memos_str = "\n".join(memos) await _placeholder_confirm( "confirm_payment_request", - TR.send__title_confirm_sending, + TR.send__title_sending_amount, description=f"{amount} to\n{recipient_name}\n{memos_str}", br_code=ButtonRequestType.ConfirmOutput, ) @@ -1107,7 +1107,7 @@ if not utils.BITCOIN_ONLY: ) # confirmation - if verb == TR.ethereum__staking_claim: + if verb == TR.ethereum__staking_title_claim: amount_title = verb amount_value = "" else: @@ -1183,7 +1183,7 @@ if not utils.BITCOIN_ONLY: # Allowing going back and forth between recipient and summary/details await confirm_blob( br_type, - TR.words__recipient, + TR.words__title_recipient, recipient, verb=TR.buttons__continue, chunkify=chunkify, @@ -1365,7 +1365,7 @@ async def confirm_signverify( while True: await confirm_blob( br_type, - TR.sign_message__confirm_address, + TR.sign_message__title_confirm_address, address, verb=TR.buttons__continue, br_code=BR_TYPE_OTHER, @@ -1374,7 +1374,7 @@ async def confirm_signverify( try: await confirm_blob( br_type, - TR.sign_message__confirm_message, + TR.sign_message__title_confirm_message, message, verb_cancel="^", br_code=BR_TYPE_OTHER, diff --git a/core/src/trezor/ui/layouts/tr/recovery.py b/core/src/trezor/ui/layouts/tr/recovery.py index 4d21f59d1..e8b8ccfe4 100644 --- a/core/src/trezor/ui/layouts/tr/recovery.py +++ b/core/src/trezor/ui/layouts/tr/recovery.py @@ -23,7 +23,7 @@ async def request_word( ) -> str: from trezor.wire.context import wait - prompt = TR.recovery__word_x_of_y_template.format(word_index + 1, word_count) + prompt = TR.recovery__word_x_of_y_title_template.format(word_index + 1, word_count) can_go_back = word_index > 0 diff --git a/core/src/trezor/ui/layouts/tr/reset.py b/core/src/trezor/ui/layouts/tr/reset.py index 28397f117..a04cf8d0e 100644 --- a/core/src/trezor/ui/layouts/tr/reset.py +++ b/core/src/trezor/ui/layouts/tr/reset.py @@ -93,7 +93,7 @@ async def select_word( RustLayout( trezorui2.select_word( title="", - description=TR.reset__select_word_template.format(word_ordinal), + description=TR.reset__select_word_title_template.format(word_ordinal), words=(words[0].lower(), words[1].lower(), words[2].lower()), ) ) diff --git a/core/src/trezor/ui/layouts/tt/__init__.py b/core/src/trezor/ui/layouts/tt/__init__.py index 919f9a962..78173cbc2 100644 --- a/core/src/trezor/ui/layouts/tt/__init__.py +++ b/core/src/trezor/ui/layouts/tt/__init__.py @@ -256,11 +256,6 @@ def confirm_action( exc: ExceptionType = ActionCancelled, br_code: ButtonRequestType = BR_TYPE_OTHER, ) -> Awaitable[None]: - if verb is not None: - verb = verb.upper() - if verb_cancel is not None: - verb_cancel = verb_cancel.upper() - if description is not None and description_param is not None: description = description.format(description_param) @@ -268,7 +263,7 @@ def confirm_action( interact( RustLayout( trezorui2.confirm_action( - title=title.upper(), + title=title, action=action, description=description, verb=verb, @@ -292,8 +287,6 @@ def confirm_single( description_param: str | None = None, verb: str | None = None, ) -> Awaitable[None]: - if verb is not None: - verb = verb.upper() description_param = description_param or "" # Placeholders are coming from translations in form of {0} @@ -306,7 +299,7 @@ def confirm_single( interact( RustLayout( trezorui2.confirm_emphasized( - title=title.upper(), + title=title, items=(begin, (True, description_param), end), verb=verb, ) @@ -327,7 +320,7 @@ def confirm_reset_device(title: str, recovery: bool = False) -> Awaitable[None]: interact( RustLayout( trezorui2.confirm_reset_device( - title=title.upper(), + title=title, button=button, ) ), @@ -362,7 +355,7 @@ async def prompt_backup() -> bool: result = await interact( RustLayout( trezorui2.confirm_action( - title=TR.words__warning.upper(), + title=TR.words__warning, action=TR.backup__want_to_skip, description=TR.backup__can_back_up_anytime, verb=TR.buttons__back_up, @@ -511,11 +504,11 @@ def show_pubkey( mismatch_title: str | None = None, br_type: str = "show_pubkey", ) -> Awaitable[None]: - title = title or TR.address__public_key # def_arg + title = title or TR.address__title_public_key # def_arg mismatch_title = mismatch_title or TR.addr_mismatch__key_mismatch # def_arg return show_address( address=pubkey, - title=title.upper(), + title=title, account=account, path=path, br_type=br_type, @@ -538,7 +531,7 @@ async def show_error_and_raise( trezorui2.show_error( title=subheader or "", description=content, - button=button.upper(), + button=button, allow_cancel=False, ) ), @@ -562,7 +555,7 @@ def show_warning( trezorui2.show_warning( title=content, description=subheader or "", - button=button.upper(), + button=button, ) ), br_type, @@ -584,7 +577,7 @@ def show_success( trezorui2.show_success( title=content, description=subheader or "", - button=button.upper(), + button=button, allow_cancel=False, ) ), @@ -612,16 +605,16 @@ async def confirm_output( recipient_title = title elif output_index is not None: amount_title = f"{TR.words__amount} #{output_index + 1}" - recipient_title = f"{TR.words__recipient} #{output_index + 1}" + recipient_title = f"{TR.words__title_recipient} #{output_index + 1}" else: - amount_title = TR.send__confirm_sending + amount_title = TR.send__title_sending_amount recipient_title = TR.send__title_sending_to while True: result = await interact( RustLayout( trezorui2.confirm_value( - title=recipient_title.upper(), + title=recipient_title, subtitle=address_label, description=None, value=address, @@ -640,7 +633,7 @@ async def confirm_output( result = await interact( RustLayout( trezorui2.confirm_value( - title=amount_title.upper(), + title=amount_title, subtitle=None, description=None, value=amount, @@ -709,10 +702,10 @@ async def should_show_more( result = await interact( RustLayout( trezorui2.confirm_with_info( - title=title.upper(), + title=title, items=para, - button=confirm.upper(), - info_button=button_text.upper(), + button=confirm, + info_button=button_text, ) ), br_type, @@ -780,7 +773,7 @@ def confirm_blob( chunkify: bool = False, ) -> Awaitable[None]: verb = verb or TR.buttons__confirm # def_arg - title = title.upper() + title = title layout = RustLayout( trezorui2.confirm_blob( title=title, @@ -881,7 +874,7 @@ def confirm_value( raise ValueError("Either verb or hold=True must be set") if verb: - verb = verb.upper() + verb = verb info_items = info_items or [] info_layout = RustLayout( @@ -896,7 +889,7 @@ def confirm_value( with_info( RustLayout( trezorui2.confirm_value( - title=title.upper(), + title=title, subtitle=subtitle, description=description, value=value, @@ -927,7 +920,7 @@ def confirm_properties( interact( RustLayout( trezorui2.confirm_properties( - title=title.upper(), + title=title, items=items, hold=hold, ) @@ -984,7 +977,7 @@ def confirm_summary( total_layout = RustLayout( trezorui2.confirm_total( - title=title.upper(), + title=title, items=items, info_button=bool(info_items), ) @@ -992,7 +985,7 @@ def confirm_summary( info_items = info_items or [] info_layout = RustLayout( trezorui2.show_info_with_cancel( - title=info_title.upper() if info_title else TR.words__title_information, + title=info_title if info_title else TR.words__title_information, items=info_items, ) ) @@ -1034,7 +1027,7 @@ if not utils.BITCOIN_ONLY: # Allowing going back and forth between recipient and summary/details await confirm_blob( br_type, - TR.words__recipient.upper(), + TR.words__title_recipient, recipient, verb=TR.buttons__continue, chunkify=chunkify, @@ -1077,7 +1070,7 @@ if not utils.BITCOIN_ONLY: ) # confirmation - if verb == TR.ethereum__staking_claim: + if verb == TR.ethereum__staking_title_claim: items = ((TR.send__maximum_fee, maximum_fee),) else: items = ( @@ -1144,11 +1137,11 @@ def confirm_metadata( verb = verb or TR.buttons__continue # def_arg return confirm_action( br_type, - title=title.upper(), + title=title, action="", description=content, description_param=param, - verb=verb.upper(), + verb=verb, hold=hold, br_code=br_code, ) @@ -1157,7 +1150,7 @@ def confirm_metadata( def confirm_replacement(title: str, txid: str) -> Awaitable[None]: return confirm_blob( "confirm_replacement", - title.upper(), + title, txid, TR.send__transaction_id, TR.buttons__continue, @@ -1244,7 +1237,7 @@ def confirm_modify_fee( ) -> Awaitable[None]: fee_layout = RustLayout( trezorui2.confirm_modify_fee( - title=title.upper(), + title=title, sign=sign, user_fee_change=user_fee_change, total_fee_new=total_fee_new, @@ -1302,10 +1295,10 @@ async def confirm_signverify( chunkify: bool = False, ) -> None: if verify: - address_title = TR.sign_message__verify_address + address_title = TR.sign_message__title_verify_address br_type = "verify_message" else: - address_title = TR.sign_message__confirm_address + address_title = TR.sign_message__title_confirm_address br_type = "sign_message" address_layout = RustLayout( @@ -1341,7 +1334,7 @@ async def confirm_signverify( message_layout = RustLayout( trezorui2.confirm_blob( - title=TR.sign_message__confirm_message, + title=TR.sign_message__title_confirm_message, description=None, data=message, extra=None, @@ -1499,7 +1492,7 @@ def confirm_set_new_pin( interact( RustLayout( trezorui2.confirm_emphasized( - title=title.upper(), + title=title, items=( (True, description + "\n\n"), information, diff --git a/core/src/trezor/ui/layouts/tt/fido.py b/core/src/trezor/ui/layouts/tt/fido.py index 9dc42c152..f4f628e46 100644 --- a/core/src/trezor/ui/layouts/tt/fido.py +++ b/core/src/trezor/ui/layouts/tt/fido.py @@ -56,7 +56,7 @@ async def confirm_fido( """Webauthn confirmation for one or more credentials.""" confirm = _RustFidoLayout( trezorui2.confirm_fido( - title=header.upper(), + title=header, app_name=app_name, icon_name=icon_name, accounts=accounts, diff --git a/core/src/trezor/ui/layouts/tt/recovery.py b/core/src/trezor/ui/layouts/tt/recovery.py index 10c8f3aa5..a3c99e4fc 100644 --- a/core/src/trezor/ui/layouts/tt/recovery.py +++ b/core/src/trezor/ui/layouts/tt/recovery.py @@ -132,7 +132,7 @@ async def continue_recovery( trezorui2.confirm_recovery( title=text, description=description, - button=button_label.upper(), + button=button_label, info_button=info_func is not None, dry_run=dry_run, ) @@ -161,7 +161,7 @@ async def show_recovery_warning( trezorui2.show_warning( title=content, description=subheader or "", - button=button.upper(), + button=button, allow_cancel=False, ) ), diff --git a/core/src/trezor/ui/layouts/tt/reset.py b/core/src/trezor/ui/layouts/tt/reset.py index 0dd51dc96..eb9e2ef55 100644 --- a/core/src/trezor/ui/layouts/tt/reset.py +++ b/core/src/trezor/ui/layouts/tt/reset.py @@ -158,7 +158,7 @@ async def _prompt_number( ) -> int: num_input = RustLayout( trezorui2.request_number( - title=title.upper(), + title=title, description=description, count=count, min_count=min_count, @@ -359,7 +359,7 @@ async def show_reset_warning( trezorui2.show_warning( title=subheader or "", description=content, - button=button.upper(), + button=button, allow_cancel=False, ) ), diff --git a/core/tools/codegen/gen_font.py b/core/tools/codegen/gen_font.py index 018d5994a..762c6aa44 100755 --- a/core/tools/codegen/gen_font.py +++ b/core/tools/codegen/gen_font.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -# script used to generate /embed/extmod/modtrezorui/font_*_*.c +# script used to generate /embed/lib/fonts/font_*_*.c from __future__ import annotations diff --git a/core/tools/translations/rules.json b/core/tools/translations/rules.json index fc34403a4..8327a6942 100644 --- a/core/tools/translations/rules.json +++ b/core/tools/translations/rules.json @@ -5,7 +5,7 @@ "addr_mismatch__support_url": "text,1", "addr_mismatch__wrong_derivation_path": "text,2", "addr_mismatch__xpub_mismatch": "text,1", - "address__public_key": "text,1", + "address__title_public_key": "text,1", "address__title_cosigner": "title,1", "address__title_receive_address": "title,1", "address__title_yours": "title,1", @@ -487,7 +487,7 @@ "progress__loading_transaction": "text,1", "progress__locking_device": "text,1", "progress__one_second_left": "text,1", - "progress__please_wait": "text,1", + "progress__title_please_wait": "text,1", "progress__processing": "text,1", "progress__refreshing": "text,1", "progress__signing_transaction": "text,1", @@ -531,7 +531,7 @@ "recovery__wanna_cancel_dry_run": "text,3", "recovery__wanna_cancel_recovery": "text,3", "recovery__word_count_template": "text,1", - "recovery__word_x_of_y_template": "text,1", + "recovery__word_x_of_y_title_template": "text,1", "recovery__x_more_items_starting_template_plural": "text,2", "recovery__x_more_shares_needed_template_plural": "text,2", "recovery__x_of_y_entered_template": "text,2", @@ -572,7 +572,7 @@ "reset__recovery_share_title_template": "title,1", "reset__required_number_of_groups": "text,3", "reset__select_correct_word": "text,3", - "reset__select_word_template": "text,1", + "reset__select_word_title_template": "text,1", "reset__select_word_x_of_y_template": "text,1", "reset__set_it_to_count_template": "text,2", "reset__share_checked_successfully_template": "text,2", @@ -661,10 +661,10 @@ "share_words__words_in_order": "text,2", "share_words__wrote_down_all": "text,2", "sign_message__bytes_template": "text,1", - "sign_message__confirm_address": "title,1", - "sign_message__confirm_message": "title,1", + "sign_message__title_confirm_address": "title,1", + "sign_message__title_confirm_message": "title,1", "sign_message__message_size": "text,1", - "sign_message__verify_address": "text,1", + "sign_message__title_verify_address": "text,1", "solana__account_index": "text,1", "solana__associated_token_account": "text,2", "solana__confirm_multisig": "text,1", diff --git a/core/translations/cs.json b/core/translations/cs.json index 550fe6082..3ae27ab24 100644 --- a/core/translations/cs.json +++ b/core/translations/cs.json @@ -33,7 +33,7 @@ "addr_mismatch__support_url": "trezor.io/support", "addr_mismatch__wrong_derivation_path": "Chybná derivační cesta pro vybraný účet.", "addr_mismatch__xpub_mismatch": "Neshoduje se XPUB?", - "address__public_key": "Veřejný klíč", + "address__title_public_key": "Veřejný klíč", "address__title_cosigner": "DALŠÍ PODEPISUJÍCÍ", "address__title_receive_address": "PŘIJÍMACÍ ADRESA", "address__title_yours": "VAŠE", @@ -322,13 +322,13 @@ "ethereum__units_template": "Jednotky: {0}", "ethereum__unknown_token": "Neznámý token", "ethereum__valid_signature": "Podpis je platný.", - "ethereum__staking_stake": "STAKE", - "ethereum__staking_stake_address": "STAKE ADRESA", + "ethereum__staking_title_stake": "STAKE", + "ethereum__staking_title_stake_address": "STAKE ADRESA", "ethereum__staking_stake_intro": "Stakovat ETH na Everstake?", - "ethereum__staking_unstake": "ZRUŠIT STAKOVÁNÍ", + "ethereum__staking_title_unstake": "ZRUŠIT STAKOVÁNÍ", "ethereum__staking_unstake_intro": "Zrušit stakování ETH z Everstake?", - "ethereum__staking_claim": "NÁROKOVAT", - "ethereum__staking_claim_address": "NÁROKOVAT ADRESU", + "ethereum__staking_title_claim": "NÁROKOVAT", + "ethereum__staking_title_claim_address": "NÁROKOVAT ADRESU", "ethereum__staking_claim_intro": "Nárokovat ETH z Everstake?", "experimental_mode__enable": "Povolit experimentální funkce?", "experimental_mode__only_for_dev": "Pouze pro vývoj a beta testování!", @@ -522,7 +522,7 @@ "progress__loading_transaction": "Načítání transakce...", "progress__locking_device": "Zamykání zařízení...", "progress__one_second_left": "Zbývá 1 s", - "progress__please_wait": "POČKEJTE", + "progress__title_please_wait": "POČKEJTE", "progress__refreshing": "Obnovování...", "progress__signing_transaction": "Podpis transakce...", "progress__syncing": "Synchronizace...", @@ -565,7 +565,7 @@ "recovery__wanna_cancel_dry_run": "Opravdu chcete zrušit kontrolu zálohy?", "recovery__wanna_cancel_recovery": "Opravdu chcete proces obnovy zrušit?", "recovery__word_count_template": "(slova: {0})", - "recovery__word_x_of_y_template": "SLOVO {0} Z {1}", + "recovery__word_x_of_y_title_template": "SLOVO {0} Z {1}", "recovery__x_more_items_starting_template_plural": "Zahajuje se dalších {count} {plural}", "recovery__x_more_shares_needed_template_plural": "Je potřeba dalších {count} {plural}.", "recovery__x_of_y_entered_template": "Zadáno {0} částí z {1}.", @@ -606,7 +606,7 @@ "reset__recovery_share_title_template": "ČÁST ZÁLOHY Č. {0}", "reset__required_number_of_groups": "Požadovaný počet skupin pro obnovení.", "reset__select_correct_word": "Pro každou pozici vyberte správné slovo.", - "reset__select_word_template": "VYBRAT SLOVO {0}", + "reset__select_word_title_template": "VYBRAT SLOVO {0}", "reset__select_word_x_of_y_template": "Vyb. slovo {0} z {1}:", "reset__set_it_to_count_template": "Nastavte {0} a budete potřebovat ", "reset__share_checked_successfully_template": "Proběhla kontrola {0}. části zálohy.", @@ -695,10 +695,10 @@ "share_words__words_in_order": " slova v pořadí.", "share_words__wrote_down_all": "Zapsal/a jsem si všechna ", "sign_message__bytes_template": "{0} bajtů", - "sign_message__confirm_address": "PODEPISOVÁNÍ ADRESY", - "sign_message__confirm_message": "POTVRDIT ZPRÁVU", + "sign_message__title_confirm_address": "PODEPISOVÁNÍ ADRESY", + "sign_message__title_confirm_message": "POTVRDIT ZPRÁVU", "sign_message__message_size": "Velikost zprávy:", - "sign_message__verify_address": "OVĚŘIT ADRESU", + "sign_message__title_verify_address": "OVĚŘIT ADRESU", "solana__account_index": "Index účtu", "solana__associated_token_account": "Přidružený tokenový účet", "solana__confirm_multisig": "Potvrďte multisig", @@ -780,10 +780,10 @@ "stellar__value_sha256": "Hodnota (SHA-256):", "stellar__wanna_clean_value_key_template": "Chcete vymazat klíč hodnoty {0}?", "stellar__your_account": " váš účet", - "storage_msg__verifying_pin": "OVĚŘOVÁNÍ PINU", - "storage_msg__processing": "ZPRACOVÁVÁNÍ", - "storage_msg__starting": "SPOUŠTĚNÍ", - "storage_msg__wrong_pin": "ŠPATNÝ PIN", + "storage_msg__title_verifying_pin": "OVĚŘOVÁNÍ PINU", + "storage_msg__title_processing": "ZPRACOVÁVÁNÍ", + "storage_msg__title_starting": "SPOUŠTĚNÍ", + "storage_msg__title_wrong_pin": "ŠPATNÝ PIN", "tezos__baker_address": "Adresa bakera:", "tezos__balance": "Zůstatek:", "tezos__ballot": "Hlasování:", @@ -856,7 +856,7 @@ "words__please_check_again": "Zkontrolujte to znovu", "words__please_try_again": "Zkuste to znovu", "words__really_wanna": "Opravdu chcete", - "words__recipient": "Příjemce", + "words__title_recipient": "Příjemce", "words__sign": "Podepsat", "words__signer": "Podepisující osoba", "words__title_check": "ZKONTROLOVAT", diff --git a/core/translations/de.json b/core/translations/de.json index 417f3c86e..1f58cc93c 100644 --- a/core/translations/de.json +++ b/core/translations/de.json @@ -33,7 +33,7 @@ "addr_mismatch__support_url": "trezor.io/support", "addr_mismatch__wrong_derivation_path": "Ableitungspfad für gewähltes Konto falsch.", "addr_mismatch__xpub_mismatch": "XPUB passt nicht?", - "address__public_key": "Public Key", + "address__title_public_key": "Public Key", "address__title_cosigner": "MITUNTERZEICH.", "address__title_receive_address": "EMPFÄNG-ADRESSE", "address__title_yours": "DEINER", @@ -322,13 +322,13 @@ "ethereum__units_template": "{0} Einheiten", "ethereum__unknown_token": "Ungültiger Token", "ethereum__valid_signature": "Die Signatur ist gültig.", - "ethereum__staking_stake": "STAKE", - "ethereum__staking_stake_address": "STAKING ADRESSE", + "ethereum__staking_title_stake": "STAKE", + "ethereum__staking_title_stake_address": "STAKING ADRESSE", "ethereum__staking_stake_intro": "ETH auf Everstake staken?", - "ethereum__staking_unstake": "ENTSTAKEN", + "ethereum__staking_title_unstake": "ENTSTAKEN", "ethereum__staking_unstake_intro": "ETH von Everstake entstaken?", - "ethereum__staking_claim": "EINLÖSEN", - "ethereum__staking_claim_address": "ADRESSE ZUM EINLÖSEN", + "ethereum__staking_title_claim": "EINLÖSEN", + "ethereum__staking_title_claim_address": "ADRESSE ZUM EINLÖSEN", "ethereum__staking_claim_intro": "ETH von Everstake einlösen?", "experimental_mode__enable": "Experimentelle Funktionen aktivieren?", "experimental_mode__only_for_dev": "Nur für Entwicklung und Beta-Tests.", @@ -522,7 +522,7 @@ "progress__loading_transaction": "Transakt. lädt...", "progress__locking_device": "Das Gerät sperren...", "progress__one_second_left": "1 Sekunde verbleibend", - "progress__please_wait": "BITTE WARTEN", + "progress__title_please_wait": "BITTE WARTEN", "progress__refreshing": "Wird aktualisiert...", "progress__signing_transaction": "Transakt. wird signiert", "progress__syncing": "Wird synchronisiert...", @@ -565,7 +565,7 @@ "recovery__wanna_cancel_dry_run": "Möchtest du die Backup-Überprüfung wirklich abbrechen?", "recovery__wanna_cancel_recovery": "Möchtest du die Wiederherstellung wirklich abbrechen?", "recovery__word_count_template": "({0} Wörter)", - "recovery__word_x_of_y_template": "WORT {0} VON {1}", + "recovery__word_x_of_y_title_template": "WORT {0} VON {1}", "recovery__x_more_items_starting_template_plural": "{count} mehr {plural} gestartet", "recovery__x_more_shares_needed_template_plural": "{count} mehr {plural} erforderlich.", "recovery__x_of_y_entered_template": "{0} von {1} Shares erfolgreich eingegeben.", @@ -606,7 +606,7 @@ "reset__recovery_share_title_template": "RECOVERY SHARE #{0}", "reset__required_number_of_groups": "Zur Wiederherstellung erforderliche Anzahl von Gruppen.", "reset__select_correct_word": "Wähle für jede Position das richtige Wort.", - "reset__select_word_template": "{0} WORT AUSWÄHLEN", + "reset__select_word_title_template": "{0} WORT AUSWÄHLEN", "reset__select_word_x_of_y_template": "Wort {0} von {1}:", "reset__set_it_to_count_template": "Bei {0} benötigst du ", "reset__share_checked_successfully_template": "Recovery Share #{0} erfolgreich geprüft.", @@ -695,10 +695,10 @@ "share_words__words_in_order": " Wörter der Reihe nach notiert.", "share_words__wrote_down_all": "Ich habe alle ", "sign_message__bytes_template": "{0} Bytes", - "sign_message__confirm_address": "SIGNIERADRESSE", - "sign_message__confirm_message": "NACHR. BESTÄTIGEN", + "sign_message__title_confirm_address": "SIGNIERADRESSE", + "sign_message__title_confirm_message": "NACHR. BESTÄTIGEN", "sign_message__message_size": "Größe der Nachricht:", - "sign_message__verify_address": "ADRESSE VERIFIZIEREN", + "sign_message__title_verify_address": "ADRESSE VERIFIZIEREN", "solana__account_index": "Konto-Index", "solana__associated_token_account": "Zugehöriges Token-Konto", "solana__confirm_multisig": "Multisig bestätigen", @@ -780,10 +780,10 @@ "stellar__value_sha256": "Wert (SHA-256):", "stellar__wanna_clean_value_key_template": "Möchtest du den Wert-Key {0} löschen?", "stellar__your_account": " dein Konto", - "storage_msg__verifying_pin": "PIN ÜBERPRÜFEN", - "storage_msg__processing": "VERARBEITUNG", - "storage_msg__starting": "STARTVORGANG", - "storage_msg__wrong_pin": "FALSCHER PIN", + "storage_msg__title_verifying_pin": "PIN ÜBERPRÜFEN", + "storage_msg__title_processing": "VERARBEITUNG", + "storage_msg__title_starting": "STARTVORGANG", + "storage_msg__title_wrong_pin": "FALSCHER PIN", "tezos__baker_address": "Baker-Adresse:", "tezos__balance": "Guthaben:", "tezos__ballot": "Abstimmung:", @@ -856,7 +856,7 @@ "words__please_check_again": "Noch einmal prüfen", "words__please_try_again": "Noch einmal versuchen", "words__really_wanna": "Möchtest du wirklich", - "words__recipient": "Empfänger", + "words__title_recipient": "Empfänger", "words__sign": "Signieren", "words__signer": "Unterzeichner", "words__title_check": "PRÜFEN", diff --git a/core/translations/en.json b/core/translations/en.json index 7cbd5407f..73bf229ea 100644 --- a/core/translations/en.json +++ b/core/translations/en.json @@ -10,25 +10,25 @@ "addr_mismatch__support_url": "trezor.io/support", "addr_mismatch__wrong_derivation_path": "Wrong derivation path for selected account.", "addr_mismatch__xpub_mismatch": "XPUB mismatch?", - "address__public_key": "Public key", - "address__title_cosigner": "COSIGNER", - "address__title_receive_address": "RECEIVE ADDRESS", - "address__title_yours": "YOURS", + "address__title_public_key": "Public key", + "address__title_cosigner": "Cosigner", + "address__title_receive_address": "Receive address", + "address__title_yours": "Yours", "address_details__derivation_path": "Derivation path:", - "address_details__title_receive_address": "RECEIVE ADDRESS", - "address_details__title_receiving_to": "RECEIVING TO", + "address_details__title_receive_address": "Receive address", + "address_details__title_receiving_to": "Receiving to", "authenticate__confirm_template": "Allow connected computer to confirm your {0} is genuine?", "authenticate__header": "Authenticate device", "auto_lock__change_template": "Auto-lock your Trezor after {0} of inactivity?", - "auto_lock__title": "AUTO-LOCK DELAY", + "auto_lock__title": "Auto-lock delay", "backup__can_back_up_anytime": "You can back up your Trezor once, at any time.", "backup__it_should_be_backed_up": "You should back up your new wallet right now.", "backup__it_should_be_backed_up_now": "It should be backed up now!", "backup__new_wallet_created": "New wallet created.\n", "backup__new_wallet_successfully_created": "New wallet created successfully.", "backup__recover_anytime": "You can use your backup to recover your wallet at any time.", - "backup__title_backup_wallet": "BACK UP WALLET", - "backup__title_skip": "SKIP BACKUP", + "backup__title_backup_wallet": "Back up wallet", + "backup__title_skip": "Skip backup", "backup__want_to_skip": "Are you sure you want to skip the backup?", "binance__buy": "Buy", "binance__confirm_cancel": "Confirm cancel", @@ -54,59 +54,59 @@ "bitcoin__new_fee_rate": "New fee rate:", "bitcoin__simple_send_of": "Simple send of", "bitcoin__ticket_amount": "Ticket amount:", - "bitcoin__title_confirm_details": "CONFIRM DETAILS", - "bitcoin__title_finalize_transaction": "FINALIZE TRANSACTION", - "bitcoin__title_high_mining_fee": "HIGH MINING FEE", - "bitcoin__title_meld_transaction": "MELD TRANSACTIONS", - "bitcoin__title_modify_amount": "MODIFY AMOUNT", - "bitcoin__title_payjoin": "PAYJOIN", - "bitcoin__title_proof_of_ownership": "PROOF OF OWNERSHIP", - "bitcoin__title_purchase_ticket": "PURCHASE TICKET", - "bitcoin__title_update_transaction": "UPDATE TRANSACTION", + "bitcoin__title_confirm_details": "Confirm details", + "bitcoin__title_finalize_transaction": "Finalize transaction", + "bitcoin__title_high_mining_fee": "High mining fee", + "bitcoin__title_meld_transaction": "Meld transactions", + "bitcoin__title_modify_amount": "Modify amount", + "bitcoin__title_payjoin": "Payjoin", + "bitcoin__title_proof_of_ownership": "Proof of ownership", + "bitcoin__title_purchase_ticket": "Purchase ticket", + "bitcoin__title_update_transaction": "Update transaction", "bitcoin__unknown_path": "Unknown path", "bitcoin__unknown_transaction": "Unknown transaction", "bitcoin__unusually_high_fee": "Unusually high fee.", "bitcoin__unverified_external_inputs": "The transaction contains unverified external inputs.", "bitcoin__valid_signature": "The signature is valid.", "bitcoin__voting_rights": "Voting rights to:", - "buttons__abort": "ABORT", - "buttons__access": "ACCESS", - "buttons__again": "AGAIN", - "buttons__allow": "ALLOW", - "buttons__back": "BACK", - "buttons__back_up": "BACK UP", - "buttons__cancel": "CANCEL", - "buttons__change": "CHANGE", - "buttons__check": "CHECK", - "buttons__check_again": "CHECK AGAIN", - "buttons__close": "CLOSE", - "buttons__confirm": "CONFIRM", - "buttons__continue": "CONTINUE", - "buttons__details": "DETAILS", - "buttons__enable": "ENABLE", - "buttons__enter": "ENTER", - "buttons__enter_share": "ENTER SHARE", - "buttons__export": "EXPORT", - "buttons__format": "FORMAT", - "buttons__go_back": "GO BACK", - "buttons__hold_to_confirm": "HOLD TO CONFIRM", - "buttons__info": "INFO", - "buttons__install": "INSTALL", - "buttons__more_info": "MORE INFO", - "buttons__ok_i_understand": "OK, I UNDERSTAND", - "buttons__purchase": "PURCHASE", - "buttons__quit": "QUIT", - "buttons__restart": "RESTART", - "buttons__retry": "RETRY", - "buttons__select": "SELECT", - "buttons__set": "SET", - "buttons__show_all": "SHOW ALL", - "buttons__show_details": "SHOW DETAILS", - "buttons__show_words": "SHOW WORDS", - "buttons__skip": "SKIP", - "buttons__try_again": "TRY AGAIN", - "buttons__turn_off": "TURN OFF", - "buttons__turn_on": "TURN ON", + "buttons__abort": "Abort", + "buttons__access": "Access", + "buttons__again": "Again", + "buttons__allow": "Allow", + "buttons__back": "Back", + "buttons__back_up": "Back up", + "buttons__cancel": "Cancel", + "buttons__change": "Change", + "buttons__check": "Check", + "buttons__check_again": "Check again", + "buttons__close": "Close", + "buttons__confirm": "Confirm", + "buttons__continue": "Continue", + "buttons__details": "Details", + "buttons__enable": "Enable", + "buttons__enter": "Enter", + "buttons__enter_share": "Enter share", + "buttons__export": "Export", + "buttons__format": "Format", + "buttons__go_back": "Go back", + "buttons__hold_to_confirm": "Hold to confirm", + "buttons__info": "Info", + "buttons__install": "Install", + "buttons__more_info": "More info", + "buttons__ok_i_understand": "Ok, i understand", + "buttons__purchase": "Purchase", + "buttons__quit": "Quit", + "buttons__restart": "Restart", + "buttons__retry": "Retry", + "buttons__select": "Select", + "buttons__set": "Set", + "buttons__show_all": "Show all", + "buttons__show_details": "Show details", + "buttons__show_words": "Show words", + "buttons__skip": "Skip", + "buttons__try_again": "Try again", + "buttons__turn_off": "Turn off", + "buttons__turn_on": "Turn on", "cardano__addr_base": "Base", "cardano__addr_enterprise": "Enterprise", "cardano__addr_legacy": "Legacy", @@ -220,21 +220,21 @@ "coinjoin__do_not_disconnect": "Do not disconnect your Trezor!", "coinjoin__max_mining_fee": "Max mining fee", "coinjoin__max_rounds": "Max rounds", - "coinjoin__title": "AUTHORIZE COINJOIN", - "coinjoin__title_do_not_disconnect": "DO NOT DISCONNECT YOUR TREZOR!", - "coinjoin__title_progress": "COINJOIN IN PROGRESS", + "coinjoin__title": "Authorize coinjoin", + "coinjoin__title_do_not_disconnect": "Do not disconnect your trezor!", + "coinjoin__title_progress": "Coinjoin in progress", "coinjoin__waiting_for_others": "Waiting for others", "confirm_total__fee_rate": "Fee rate:", "confirm_total__sending_from_account": "Sending from account:", - "confirm_total__title_fee": "FEE INFORMATION", - "confirm_total__title_sending_from": "SENDING FROM", + "confirm_total__title_fee": "Fee information", + "confirm_total__title_sending_from": "Sending from", "debug__loading_seed": "Loading seed", "debug__loading_seed_not_recommended": "Loading private seed is not recommended.", "device_name__change_template": "Change device name to {0}?", - "device_name__title": "DEVICE NAME", + "device_name__title": "Device name", "entropy__send": "Do you really want to send entropy?", - "entropy__title": "INTERNAL ENTROPY", - "entropy__title_confirm": "CONFIRM ENTROPY", + "entropy__title": "Internal entropy", + "entropy__title_confirm": "Confirm entropy", "eos__about_to_sign_template": "You are about to sign {0}.", "eos__action_name": "Action Name:", "eos__arbitrary_data": "Arbitrary data", @@ -290,26 +290,26 @@ "ethereum__show_full_message": "Show full message", "ethereum__show_full_struct": "Show full struct", "ethereum__sign_eip712": "Really sign EIP-712 typed data?", - "ethereum__title_confirm_data": "CONFIRM DATA", - "ethereum__title_confirm_domain": "CONFIRM DOMAIN", - "ethereum__title_confirm_message": "CONFIRM MESSAGE", - "ethereum__title_confirm_struct": "CONFIRM STRUCT", - "ethereum__title_confirm_typed_data": "CONFIRM TYPED DATA", - "ethereum__title_signing_address": "SIGNING ADDRESS", + "ethereum__title_confirm_data": "Confirm data", + "ethereum__title_confirm_domain": "Confirm domain", + "ethereum__title_confirm_message": "Confirm message", + "ethereum__title_confirm_struct": "Confirm struct", + "ethereum__title_confirm_typed_data": "Confirm typed data", + "ethereum__title_signing_address": "Signing address", "ethereum__units_template": "{0} units", "ethereum__unknown_token": "Unknown token", "ethereum__valid_signature": "The signature is valid.", - "ethereum__staking_stake": "STAKE", - "ethereum__staking_stake_address": "STAKE ADDRESS", + "ethereum__staking_title_stake": "Stake", + "ethereum__staking_title_stake_address": "Stake address", "ethereum__staking_stake_intro": "Stake ETH on Everstake?", - "ethereum__staking_unstake": "UNSTAKE", + "ethereum__staking_title_unstake": "Unstake", "ethereum__staking_unstake_intro": "Unstake ETH from Everstake?", - "ethereum__staking_claim": "CLAIM", - "ethereum__staking_claim_address": "CLAIM ADDRESS", + "ethereum__staking_title_claim": "Claim", + "ethereum__staking_title_claim_address": "Claim address", "ethereum__staking_claim_intro": "Claim ETH from Everstake?", "experimental_mode__enable": "Enable experimental features?", "experimental_mode__only_for_dev": "Only for development and beta testing!", - "experimental_mode__title": "EXPERIMENTAL MODE", + "experimental_mode__title": "Experimental mode", "fido__already_registered": "Already registered", "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}.", @@ -320,61 +320,61 @@ "fido__not_registered": "Not registered", "fido__not_registered_with_template": "This device is not registered with\n{0}.", "fido__please_enable_pin_protection": "Please enable PIN protection.", - "fido__title_authenticate": "FIDO2 AUTHENTICATE", - "fido__title_import_credential": "IMPORT CREDENTIAL", - "fido__title_list_credentials": "LIST CREDENTIALS", - "fido__title_register": "FIDO2 REGISTER", - "fido__title_remove_credential": "REMOVE CREDENTIAL", - "fido__title_reset": "FIDO2 RESET", - "fido__title_u2f_auth": "U2F AUTHENTICATE", - "fido__title_u2f_register": "U2F REGISTER", - "fido__title_verify_user": "FIDO2 VERIFY USER", + "fido__title_authenticate": "Fido2 authenticate", + "fido__title_import_credential": "Import credential", + "fido__title_list_credentials": "List credentials", + "fido__title_register": "Fido2 register", + "fido__title_remove_credential": "Remove credential", + "fido__title_reset": "FIDO2 reset", + "fido__title_u2f_auth": "U2F authenticate", + "fido__title_u2f_register": "U2F register", + "fido__title_verify_user": "FIDO2 verify user", "fido__unable_to_verify_user": "Unable to verify user.", "fido__wanna_erase_credentials": "Do you really want to erase all credentials?", - "firmware_update__title": "UPDATE FIRMWARE", - "firmware_update__title_fingerprint": "FW FINGERPRINT", + "firmware_update__title": "Update firmware", + "firmware_update__title_fingerprint": "FW fingerprint", "homescreen__click_to_connect": "Click to Connect", "homescreen__click_to_unlock": "Click to Unlock", - "homescreen__title_backup_failed": "BACKUP FAILED", - "homescreen__title_backup_needed": "BACKUP NEEDED", - "homescreen__title_coinjoin_authorized": "COINJOIN AUTHORIZED", - "homescreen__title_experimental_mode": "EXPERIMENTAL MODE", - "homescreen__title_no_usb_connection": "NO USB CONNECTION", - "homescreen__title_pin_not_set": "PIN NOT SET", - "homescreen__title_seedless": "SEEDLESS", - "homescreen__title_set": "CHANGE HOMESCREEN?", - "inputs__back": "BACK", - "inputs__cancel": "CANCEL", - "inputs__delete": "DELETE", - "inputs__enter": "ENTER", - "inputs__return": "RETURN", - "inputs__previous": "PREVIOUS", - "inputs__show": "SHOW", - "inputs__space": "SPACE", - "joint__title": "JOINT TRANSACTION", + "homescreen__title_backup_failed": "Backup failed", + "homescreen__title_backup_needed": "Backup needed", + "homescreen__title_coinjoin_authorized": "Coinjoin authorized", + "homescreen__title_experimental_mode": "Experimental mode", + "homescreen__title_no_usb_connection": "No USB connection", + "homescreen__title_pin_not_set": "PIN not set", + "homescreen__title_seedless": "Seedless", + "homescreen__title_set": "Change homescreen?", + "inputs__back": "Back", + "inputs__cancel": "Cancel", + "inputs__delete": "Delete", + "inputs__enter": "Enter", + "inputs__return": "Return", + "inputs__previous": "Previous", + "inputs__show": "Show", + "inputs__space": "Space", + "joint__title": "Joint transaction", "joint__to_the_total_amount": "To the total amount:", "joint__you_are_contributing": "You are contributing:", "language__change_to_template": "Change language to {0}?", "language__changed": "Language changed successfully", "language__progress": "Changing language", - "language__title": "LANGUAGE SETTINGS", + "language__title": "Language settings", "lockscreen__tap_to_connect": "Tap to connect", "lockscreen__tap_to_unlock": "Tap to unlock", - "lockscreen__title_locked": "LOCKED", - "lockscreen__title_not_connected": "NOT CONNECTED", + "lockscreen__title_locked": "Locked", + "lockscreen__title_not_connected": "Not connected", "misc__decrypt_value": "Decrypt value", "misc__encrypt_value": "Encrypt value", - "misc__title_suite_labeling": "SUITE LABELING", + "misc__title_suite_labeling": "Suite labeling", "modify_amount__decrease_amount": "Decrease amount by:", "modify_amount__increase_amount": "Increase amount by:", "modify_amount__new_amount": "New amount:", - "modify_amount__title": "MODIFY AMOUNT", + "modify_amount__title": "Modify amount", "modify_fee__decrease_fee": "Decrease fee by:", "modify_fee__fee_rate": "Fee rate:", "modify_fee__increase_fee": "Increase fee by:", "modify_fee__new_transaction_fee": "New transaction fee:", "modify_fee__no_change": "Fee did not change.\n", - "modify_fee__title": "MODIFY FEE", + "modify_fee__title": "Modify fee", "modify_fee__transaction_fee": "Transaction fee:", "monero__confirm_export": "Confirm export", "monero__confirm_ki_sync": "Confirm ki sync", @@ -453,11 +453,11 @@ "passphrase__next_screen_will_show_passphrase": "Next screen will show the passphrase.", "passphrase__please_enter": "Please enter your passphrase.", "passphrase__revoke_on_device": "Do you want to revoke the passphrase on device setting?", - "passphrase__title_confirm": "CONFIRM PASSPHRASE", - "passphrase__title_enter": "ENTER PASSPHRASE", - "passphrase__title_hide": "HIDE PASSPHRASE", - "passphrase__title_settings": "PASSPHRASE SETTINGS", - "passphrase__title_source": "PASSPHRASE SOURCE", + "passphrase__title_confirm": "Confirm passphrase", + "passphrase__title_enter": "Enter passphrase", + "passphrase__title_hide": "Hide passphrase", + "passphrase__title_settings": "Passphrase settings", + "passphrase__title_source": "Passphrase source", "passphrase__turn_off": "Turn off passphrase protection?", "passphrase__turn_on": "Turn on passphrase protection?", "pin__change": "Change PIN?", @@ -478,9 +478,9 @@ "pin__reenter_new": "Re-enter new PIN", "pin__reenter_to_confirm": "Please re-enter PIN to confirm.", "pin__should_be_long": "PIN should be 4-50 digits long.", - "pin__title_check_pin": "CHECK PIN", - "pin__title_settings": "PIN SETTINGS", - "pin__title_wrong_pin": "WRONG PIN", + "pin__title_check_pin": "Check PIN", + "pin__title_settings": "PIN settings", + "pin__title_wrong_pin": "Wrong PIN", "pin__tries_left": "tries left", "pin__turn_off": "Are you sure you want to turn off PIN protection?", "pin__turn_on": "Turn on PIN protection?", @@ -499,13 +499,13 @@ "progress__loading_transaction": "Loading transaction...", "progress__locking_device": "Locking the device...", "progress__one_second_left": "1 second left", - "progress__please_wait": "PLEASE WAIT", + "progress__title_please_wait": "Please wait", "progress__refreshing": "Refreshing...", "progress__signing_transaction": "Signing transaction...", "progress__syncing": "Syncing...", "progress__x_seconds_left_template": "{0} seconds left", "reboot_to_bootloader__restart": "Trezor will restart in bootloader mode.", - "reboot_to_bootloader__title": "GO TO BOOTLOADER", + "reboot_to_bootloader__title": "Go to bootloader", "reboot_to_bootloader__version_by_template": "Firmware version {0}\nby {1}", "reboot_to_bootloader__just_a_moment": "Just a moment...", "recovery__cancel_dry_run": "Cancel backup check", @@ -531,18 +531,18 @@ "recovery__share_already_entered": "Share already entered", "recovery__share_from_another_shamir": "You have entered a share from another Shamir Backup.", "recovery__share_num_template": "Share {0}", - "recovery__title": "RECOVER WALLET", - "recovery__title_cancel_dry_run": "CANCEL BACKUP CHECK", - "recovery__title_cancel_recovery": "CANCEL RECOVERY", - "recovery__title_dry_run": "BACKUP CHECK", - "recovery__title_recover": "RECOVER WALLET", - "recovery__title_remaining_shares": "REMAINING SHARES", + "recovery__title": "Recover wallet", + "recovery__title_cancel_dry_run": "Cancel backup check", + "recovery__title_cancel_recovery": "Cancel recovery", + "recovery__title_dry_run": "Backup check", + "recovery__title_recover": "Recover wallet", + "recovery__title_remaining_shares": "Remaining shares", "recovery__type_word_x_of_y_template": "Type word {0} of {1}", "recovery__wallet_recovered": "Wallet recovered successfully", "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": "WORD {0} OF {1}", + "recovery__word_x_of_y_title_template": "Word {0} of {1}", "recovery__x_more_items_starting_template_plural": "{count} more {plural} starting", "recovery__x_more_shares_needed_template_plural": "{count} more {plural} needed.", "recovery__x_of_y_entered_template": "{0} of {1} shares entered successfully.", @@ -550,13 +550,13 @@ "reset__advanced_group_threshold_info": "The group threshold specifies the number of groups required to recover your wallet.", "reset__all_x_of_y_template": "all {0} of {1} shares", "reset__any_x_of_y_template": "any {0} of {1} shares", - "reset__button_create": "CREATE WALLET", - "reset__button_recover": "RECOVER WALLET", + "reset__button_create": "Create wallet", + "reset__button_recover": "Recover wallet", "reset__by_continuing": "By continuing you agree to Trezor Company's terms and conditions.", - "reset__check_backup_title": "CHECK BACKUP", - "reset__check_group_share_title_template": "CHECK G{0} - SHARE {1}", - "reset__check_seed_title": "CHECK SEED", - "reset__check_share_title_template": "CHECK SHARE #{0}", + "reset__check_backup_title": "Check backup", + "reset__check_group_share_title_template": "Check g{0} - share {1}", + "reset__check_seed_title": "Check seed", + "reset__check_share_title_template": "Check share #{0}", "reset__continue_with_next_share": "Continue with the next share.", "reset__continue_with_share_template": "Continue with share #{0}.", "reset__finished_verifying_group_template": "You have finished verifying your recovery shares for group {0}.", @@ -565,7 +565,7 @@ "reset__group_description": "A group is made up of recovery shares.", "reset__group_info": "Each group has a set number of shares and its own threshold. In the next steps you will set the numbers of shares and the thresholds.", "reset__group_share_checked_successfully_template": "Group {0} - Share {1} checked successfully.", - "reset__group_share_title_template": "GROUP {0} - SHARE {1}", + "reset__group_share_title_template": "Group {0} - share {1}", "reset__more_info_at": "More info at", "reset__need_all_share_template": "For recovery you need all {0} of the shares.", "reset__need_any_share_template": "For recovery you need any {0} of the shares.", @@ -579,15 +579,15 @@ "reset__number_of_shares_info": "= total number of unique word lists used for wallet backup.", "reset__one_share": "1 share", "reset__only_one_share_will_be_created": "Only one share will be created.", - "reset__recovery_seed_title": "RECOVERY SEED", - "reset__recovery_share_title_template": "RECOVERY SHARE #{0}", + "reset__recovery_seed_title": "Recovery seed", + "reset__recovery_share_title_template": "Recovery share #{0}", "reset__required_number_of_groups": "The required number of groups for recovery.", "reset__select_correct_word": "Select the correct word for each position.", - "reset__select_word_template": "SELECT {0} WORD", + "reset__select_word_title_template": "Select {0} word", "reset__select_word_x_of_y_template": "Select word {0} of {1}:", "reset__set_it_to_count_template": "Set it to {0} and you will need ", "reset__share_checked_successfully_template": "Recovery share #{0} checked successfully.", - "reset__share_words_title": "STANDARD BACKUP", + "reset__share_words_title": "Standard backup", "reset__slip39_checklist_num_groups": "Number of groups", "reset__slip39_checklist_num_shares": "Number of shares", "reset__slip39_checklist_set_num_groups": "Set number of groups", @@ -595,21 +595,21 @@ "reset__slip39_checklist_set_sizes": "Set sizes and thresholds", "reset__slip39_checklist_set_sizes_longer": "Set size and threshold for each group", "reset__slip39_checklist_set_threshold": "Set threshold", - "reset__slip39_checklist_title": "BACKUP CHECKLIST", + "reset__slip39_checklist_title": "Backup checklist", "reset__slip39_checklist_write_down": "Write down and check all shares", "reset__slip39_checklist_write_down_recovery": "Write down and check all recovery shares", "reset__the_threshold_sets_the_number_of_shares": "The threshold sets the number of shares ", "reset__threshold_info": "= minimum number of unique word lists used for recovery.", - "reset__title_backup_is_done": "BACKUP IS DONE", - "reset__title_create_wallet": "CREATE WALLET", - "reset__title_create_wallet_shamir": "CREATE WALLET (SHAMIR)", - "reset__title_group_threshold": "GROUP THRESHOLD", - "reset__title_number_of_groups": "NUMBER OF GROUPS", - "reset__title_number_of_shares": "NUMBER OF SHARES", - "reset__title_set_group_threshold": "SET GROUP THRESHOLD", - "reset__title_set_number_of_groups": "SET NUMBER OF GROUPS", - "reset__title_set_number_of_shares": "SET NUMBER OF SHARES", - "reset__title_set_threshold": "SET THRESHOLD", + "reset__title_backup_is_done": "Backup is done", + "reset__title_create_wallet": "Create wallet", + "reset__title_create_wallet_shamir": "Create wallet (shamir)", + "reset__title_group_threshold": "Group threshold", + "reset__title_number_of_groups": "Number of groups", + "reset__title_number_of_shares": "Number of shares", + "reset__title_set_group_threshold": "Set group threshold", + "reset__title_set_number_of_groups": "Set number of groups", + "reset__title_set_number_of_shares": "Set number of shares", + "reset__title_set_threshold": "Set threshold", "reset__to_form_group_template": "to form Group {0}.", "reset__tos_link": "trezor.io/tos", "reset__total_number_of_shares_in_group_template": "Set the total number of shares in Group {0}.", @@ -624,13 +624,13 @@ "rotation__east": "east", "rotation__north": "north", "rotation__south": "south", - "rotation__title_change": "CHANGE ROTATION", + "rotation__title_change": "Change rotation", "rotation__west": "west", "safety_checks__approve_unsafe_always": "Trezor will allow you to approve some actions which might be unsafe.", "safety_checks__approve_unsafe_temporary": "Trezor will temporarily allow you to approve some actions which might be unsafe.", "safety_checks__enforce_strict": "Do you really want to enforce strict safety checks (recommended)?", - "safety_checks__title": "SAFETY CHECKS", - "safety_checks__title_safety_override": "SAFETY OVERRIDE", + "safety_checks__title": "Safety checks", + "safety_checks__title_safety_override": "Safety override", "sd_card__all_data_will_be_lost": "All data on the SD card will be lost.", "sd_card__card_required": "SD card required.", "sd_card__disable": "Do you really want to remove SD card protection from your device?", @@ -646,25 +646,25 @@ "sd_card__refresh": "Do you really want to replace the current SD card secret with a newly generated one?", "sd_card__refreshed": "You have successfully refreshed SD protection.", "sd_card__restart": "Do you want to restart Trezor in bootloader mode?", - "sd_card__title": "SD CARD PROTECTION", - "sd_card__title_problem": "SD CARD PROBLEM", + "sd_card__title": "SD card protection", + "sd_card__title_problem": "SD card problem", "sd_card__unknown_filesystem": "Unknown filesystem.", "sd_card__unplug_and_insert_correct": "Please unplug the device and insert the correct SD card.", "sd_card__use_different_card": "Use a different card or format the SD card to the FAT32 filesystem.", "sd_card__wanna_format": "Do you really want to format the SD card?", "sd_card__wrong_sd_card": "Wrong SD card.", "send__address_path": "address path", - "send__confirm_sending": "SENDING AMOUNT", + "send__confirm_sending": "Sending amount", "send__from_multiple_accounts": "Sending from multiple accounts.", "send__including_fee": "Including fee:", "send__maximum_fee": "Maximum fee:", "send__receiving_to_multisig": "Receiving to a multisig address.", - "send__title_confirm_sending": "CONFIRM SENDING", - "send__title_joint_transaction": "JOINT TRANSACTION", - "send__title_receiving_to": "RECEIVING TO", - "send__title_sending": "SENDING", - "send__title_sending_amount": "SENDING AMOUNT", - "send__title_sending_to": "SENDING TO", + "send__title_confirm_sending": "Confirm sending", + "send__title_joint_transaction": "Joint transaction", + "send__title_receiving_to": "Receiving to", + "send__title_sending": "Sending", + "send__title_sending_amount": "Sending amount", + "send__title_sending_to": "Sending to", "send__to_the_total_amount": "To the total amount:", "send__total_amount": "Total amount:", "send__transaction_id": "Transaction ID:", @@ -672,14 +672,14 @@ "share_words__words_in_order": " words in order.", "share_words__wrote_down_all": "I wrote down all ", "sign_message__bytes_template": "{0} Bytes", - "sign_message__confirm_address": "SIGNING ADDRESS", - "sign_message__confirm_message": "CONFIRM MESSAGE", + "sign_message__title_confirm_address": "Signing address", + "sign_message__title_confirm_message": "Confirm message", "sign_message__message_size": "Message size:", - "sign_message__verify_address": "VERIFY ADDRESS", - "storage_msg__verifying_pin": "VERIFYING PIN", - "storage_msg__processing": "PROCESSING", - "storage_msg__starting": "STARTING UP", - "storage_msg__wrong_pin": "WRONG PIN", + "sign_message__title_verify_address": "Verify address", + "storage_msg__title_verifying_pin": "Verifying pin", + "storage_msg__title_processing": "Processing", + "storage_msg__title_starting": "Starting up", + "storage_msg__title_wrong_pin": "Wrong pin", "solana__account_index": "Account index", "solana__associated_token_account": "Associated token account", "solana__confirm_multisig": "Confirm multisig", @@ -786,10 +786,10 @@ "tutorial__welcome_press_right": "Welcome to Trezor. Press right to continue.", "u2f__get": "Increase and retrieve the U2F counter?", "u2f__set_template": "Set the U2F counter to {0}?", - "u2f__title_get": "GET U2F COUNTER", - "u2f__title_set": "SET U2F COUNTER", + "u2f__title_get": "Get U2F counter", + "u2f__title_set": "Set U2F counter", "wipe__info": "All data will be erased.", - "wipe__title": "WIPE DEVICE", + "wipe__title": "Wipe device", "wipe__want_to_wipe": "Do you really want to wipe the device?\n", "wipe_code__change": "Change wipe code?", "wipe_code__changed": "Wipe code changed.", @@ -802,13 +802,13 @@ "wipe_code__mismatch": "The wipe codes you entered do not match.", "wipe_code__reenter": "Re-enter wipe code", "wipe_code__reenter_to_confirm": "Please re-enter wipe code to confirm.", - "wipe_code__title_check": "CHECK WIPE CODE", - "wipe_code__title_invalid": "INVALID WIPE CODE", - "wipe_code__title_settings": "WIPE CODE SETTINGS", + "wipe_code__title_check": "Check wipe code", + "wipe_code__title_invalid": "Invalid wipe code", + "wipe_code__title_settings": "Wipe code settings", "wipe_code__turn_off": "Turn off wipe code protection?", "wipe_code__turn_on": "Turn on wipe code protection?", "wipe_code__wipe_code_mismatch": "Wipe code mismatch", - "word_count__title": "NUMBER OF WORDS", + "word_count__title": "Number of words", "words__account": "Account", "words__account_colon": "Account:", "words__address": "Address", @@ -833,18 +833,18 @@ "words__please_check_again": "Please check again", "words__please_try_again": "Please try again", "words__really_wanna": "Do you really want to", - "words__recipient": "Recipient", + "words__title_recipient": "Recipient", "words__sign": "Sign", "words__signer": "Signer", - "words__title_check": "CHECK", - "words__title_group": "GROUP", - "words__title_information": "INFORMATION", - "words__title_remember": "REMEMBER", - "words__title_share": "SHARE", - "words__title_shares": "SHARES", - "words__title_success": "SUCCESS", - "words__title_summary": "SUMMARY", - "words__title_threshold": "THRESHOLD", + "words__title_check": "Check", + "words__title_group": "Group", + "words__title_information": "Information", + "words__title_remember": "Remember", + "words__title_share": "Share", + "words__title_shares": "Shares", + "words__title_success": "Success", + "words__title_summary": "Summary", + "words__title_threshold": "Threshold", "words__unknown": "Unknown", "words__warning": "Warning", "words__writable": "Writable", diff --git a/core/translations/es.json b/core/translations/es.json index 179fb9e48..0995edbbf 100644 --- a/core/translations/es.json +++ b/core/translations/es.json @@ -33,7 +33,7 @@ "addr_mismatch__support_url": "trezor.io/support", "addr_mismatch__wrong_derivation_path": "Cuenta seleccionada: Derivación incorrecta", "addr_mismatch__xpub_mismatch": "¿La XPUB no coincide?", - "address__public_key": "Clave pública", + "address__title_public_key": "Clave pública", "address__title_cosigner": "COFIRMANTE", "address__title_receive_address": "DIRECCIÓN DESTINO", "address__title_yours": "TUYO", @@ -322,13 +322,13 @@ "ethereum__units_template": "{0} unidades", "ethereum__unknown_token": "Token desconocido", "ethereum__valid_signature": "La firma es válida.", - "ethereum__staking_stake": "HACER STAKE", - "ethereum__staking_stake_address": "DIRECCIÓN DE STAKE", + "ethereum__staking_title_stake": "HACER STAKE", + "ethereum__staking_title_stake_address": "DIRECCIÓN DE STAKE", "ethereum__staking_stake_intro": "¿Hacer stake de ETH en Everstake?", - "ethereum__staking_unstake": "RETIRAR STAKE", + "ethereum__staking_title_unstake": "RETIRAR STAKE", "ethereum__staking_unstake_intro": "¿Retirar ETH de Everstake?", - "ethereum__staking_claim": "RECLAMAR", - "ethereum__staking_claim_address": "DIR. DE RECLAMO", + "ethereum__staking_title_claim": "RECLAMAR", + "ethereum__staking_title_claim_address": "DIR. DE RECLAMO", "ethereum__staking_claim_intro": "¿Reclamar ETH de Everstake?", "experimental_mode__enable": "¿Activar funciones experimentales?", "experimental_mode__only_for_dev": "Solo para desarrollo y pruebas beta.", @@ -522,7 +522,7 @@ "progress__loading_transaction": "Cargando transacc...", "progress__locking_device": "Bloq. el dispositivo...", "progress__one_second_left": "Queda 1 segundo", - "progress__please_wait": "ESPERA", + "progress__title_please_wait": "ESPERA", "progress__refreshing": "Actualizando...", "progress__signing_transaction": "Firmando transacción...", "progress__syncing": "Sincronizando...", @@ -565,7 +565,7 @@ "recovery__wanna_cancel_dry_run": "¿Quieres anular la revisión de la copia de seguridad?", "recovery__wanna_cancel_recovery": "¿Quieres anular el proceso de recuperación?", "recovery__word_count_template": "({0} palabras)", - "recovery__word_x_of_y_template": "PALABRA {0} DE {1}", + "recovery__word_x_of_y_title_template": "PALABRA {0} DE {1}", "recovery__x_more_items_starting_template_plural": "Se están iniciando {count} {plural} más", "recovery__x_more_shares_needed_template_plural": "Se necesitan {count} {plural} más.", "recovery__x_of_y_entered_template": "Rec. comp. introducidos: {0} de {1}.", @@ -606,7 +606,7 @@ "reset__recovery_share_title_template": "REC. RECUP. nro.{0}", "reset__required_number_of_groups": "El nro.de grupos necesario para la recuperación.", "reset__select_correct_word": "Selecciona la palabra correcta para cada posición.", - "reset__select_word_template": "USAR {0} PALABRA", + "reset__select_word_title_template": "USAR {0} PALABRA", "reset__select_word_x_of_y_template": "Palabra {0} de {1}:", "reset__set_it_to_count_template": "Ajústalo en {0} y necesitarás ", "reset__share_checked_successfully_template": "Verificado: Rec de recuperación nro.{0}.", @@ -695,10 +695,10 @@ "share_words__words_in_order": " palabras en orden.", "share_words__wrote_down_all": "Escribí las ", "sign_message__bytes_template": "{0} bytes", - "sign_message__confirm_address": "DIRECCIÓN FIRMA", - "sign_message__confirm_message": "VALIDAR MENSAJE", + "sign_message__title_confirm_address": "DIRECCIÓN FIRMA", + "sign_message__title_confirm_message": "VALIDAR MENSAJE", "sign_message__message_size": "Tamaño del mensaje:", - "sign_message__verify_address": "VERIFICAR DIRECCIÓN", + "sign_message__title_verify_address": "VERIFICAR DIRECCIÓN", "solana__account_index": "Índice de la cuenta", "solana__associated_token_account": "Cuenta de token asociada", "solana__confirm_multisig": "Confirmar multifirma", @@ -780,10 +780,10 @@ "stellar__value_sha256": "Valor (SHA-256):", "stellar__wanna_clean_value_key_template": "¿Quieres borrar la clave de valor {0}?", "stellar__your_account": " tu cuenta", - "storage_msg__verifying_pin": "VERIFICANDO PIN", - "storage_msg__processing": "PROCESANDO", - "storage_msg__starting": "INICIANDO", - "storage_msg__wrong_pin": "PIN INCORRECTO", + "storage_msg__title_verifying_pin": "VERIFICANDO PIN", + "storage_msg__title_processing": "PROCESANDO", + "storage_msg__title_starting": "INICIANDO", + "storage_msg__title_wrong_pin": "PIN INCORRECTO", "tezos__baker_address": "Dirección de panadero:", "tezos__balance": "Saldo:", "tezos__ballot": "Papeleta:", @@ -856,7 +856,7 @@ "words__please_check_again": "Vuelve a comprobarlo", "words__please_try_again": "Inténtalo de nuevo", "words__really_wanna": "¿Seguro que quieres", - "words__recipient": "Destinatario", + "words__title_recipient": "Destinatario", "words__sign": "Firmar", "words__signer": "Firmante", "words__title_check": "REVISAR", diff --git a/core/translations/fr.json b/core/translations/fr.json index cec826076..118345a88 100644 --- a/core/translations/fr.json +++ b/core/translations/fr.json @@ -33,7 +33,7 @@ "addr_mismatch__support_url": "trezor.io/support", "addr_mismatch__wrong_derivation_path": "Chemin dériv. incorrect du compte sélectionné.", "addr_mismatch__xpub_mismatch": "Err. clé publ. (XPUB) ?", - "address__public_key": "Clé publique", + "address__title_public_key": "Clé publique", "address__title_cosigner": "COSIGNATAIRE", "address__title_receive_address": "ADR. DE RÉCEP.", "address__title_yours": "LA VÔTRE", @@ -322,13 +322,13 @@ "ethereum__units_template": "{0} unités", "ethereum__unknown_token": "Jeton inconnu", "ethereum__valid_signature": "Signature valide.", - "ethereum__staking_stake": "STAKE", - "ethereum__staking_stake_address": "ADRESSE DE STAKING", + "ethereum__staking_title_stake": "STAKE", + "ethereum__staking_title_stake_address": "ADRESSE DE STAKING", "ethereum__staking_stake_intro": "Staker de l'ETH sur Everstake?", - "ethereum__staking_unstake": "UNSTAKE", + "ethereum__staking_title_unstake": "UNSTAKE", "ethereum__staking_unstake_intro": "Terminer le Staking de l'ETH sur Everstake?", - "ethereum__staking_claim": "RETIRER", - "ethereum__staking_claim_address": "ADRESSE DE RETRAIT", + "ethereum__staking_title_claim": "RETIRER", + "ethereum__staking_title_claim_address": "ADRESSE DE RETRAIT", "ethereum__staking_claim_intro": "Retirer l'ETH d'Everstake?", "experimental_mode__enable": "Activer les fonct. expérimentales ?", "experimental_mode__only_for_dev": "Uniquement pour le dév. et les tests bêta !", @@ -522,7 +522,7 @@ "progress__loading_transaction": "Charg. de la trans...", "progress__locking_device": "Verrouill. l'appareil...", "progress__one_second_left": "1 seconde restante", - "progress__please_wait": "PATIENTEZ", + "progress__title_please_wait": "PATIENTEZ", "progress__refreshing": "Actualisation en cours", "progress__signing_transaction": "Signature en cours...", "progress__syncing": "Synch. en cours", @@ -565,7 +565,7 @@ "recovery__wanna_cancel_dry_run": "Voulez-vous vraiment annuler la vér. de la sauv. ?", "recovery__wanna_cancel_recovery": "Voulez-vous vraiment annuler le processus de récup. ?", "recovery__word_count_template": "({0} mots)", - "recovery__word_x_of_y_template": "MOT {0} SUR {1}", + "recovery__word_x_of_y_title_template": "MOT {0} SUR {1}", "recovery__x_more_items_starting_template_plural": "{count} plus {plural} ont commencé", "recovery__x_more_shares_needed_template_plural": "{count} plus {plural} sont nécessaires.", "recovery__x_of_y_entered_template": "{0} fragm. sur {1} saisis avec succès.", @@ -606,7 +606,7 @@ "reset__recovery_share_title_template": "FRAGM. DE RÉCUP. #{0}", "reset__required_number_of_groups": "Le nbre de groupes requis pour la récup.", "reset__select_correct_word": "Sélect. le mot correct par emplacement.", - "reset__select_word_template": "SÉLECTIONNER {0} MOT", + "reset__select_word_tile_template": "SÉLECTIONNER {0} MOT", "reset__select_word_x_of_y_template": "Mot {0} sur {1}:", "reset__set_it_to_count_template": "Définissez-le sur {0} et vous aurez besoin ", "reset__share_checked_successfully_template": "Le fragm. de récup. #{0} a été vérifié.", @@ -695,10 +695,10 @@ "share_words__words_in_order": " mots dans l'ordre.", "share_words__wrote_down_all": "J'ai noté tous les ", "sign_message__bytes_template": "{0} octets", - "sign_message__confirm_address": "ADR. DE SIGNATURE", - "sign_message__confirm_message": "CONF. MESSAGE", + "sign_message__title_confirm_address": "ADR. DE SIGNATURE", + "sign_message__title_confirm_message": "CONF. MESSAGE", "sign_message__message_size": "Taille du message :", - "sign_message__verify_address": "VÉRIFIER L'ADR.", + "sign_message__title_verify_address": "VÉRIFIER L'ADR.", "solana__account_index": "Index du compte", "solana__associated_token_account": "Compte de jetons associé", "solana__confirm_multisig": "Conf. multisignatures", @@ -781,10 +781,10 @@ "stellar__wanna_clean_value_key_template": "Voulez-vous effacer la clé de valeur {0} ?", "stellar__your_account": " votre compte", "tezos__baker_address": "Adr. du baker :", - "storage_msg__verifying_pin": "VÉRIFICATION DU PIN", - "storage_msg__processing": "TRAITEMENT", - "storage_msg__starting": "DÉMARRAGE", - "storage_msg__wrong_pin": "PIN INCORRECT", + "storage_msg__title_verifying_pin": "VÉRIFICATION DU PIN", + "storage_msg__title_processing": "TRAITEMENT", + "storage_msg__title_starting": "DÉMARRAGE", + "storage_msg__title_wrong_pin": "PIN INCORRECT", "tezos__balance": "Solde :", "tezos__ballot": "Bulletin de vote :", "tezos__confirm_delegation": "Conf. délégation", @@ -856,7 +856,7 @@ "words__please_check_again": "Revérifiez", "words__please_try_again": "Réessayez", "words__really_wanna": "Voulez-vous vraiment", - "words__recipient": "Destinataire", + "words__title_recipient": "Destinataire", "words__sign": "Signer", "words__signer": "Signataire", "words__title_check": "VÉRIFIER", diff --git a/core/translations/order.json b/core/translations/order.json index 379154902..4e85dc4ab 100644 --- a/core/translations/order.json +++ b/core/translations/order.json @@ -5,7 +5,7 @@ "3": "addr_mismatch__support_url", "4": "addr_mismatch__wrong_derivation_path", "5": "addr_mismatch__xpub_mismatch", - "6": "address__public_key", + "6": "address__title_public_key", "7": "address__title_cosigner", "8": "address__title_receive_address", "9": "address__title_yours", @@ -485,8 +485,8 @@ "483": "progress__loading_transaction", "484": "progress__locking_device", "485": "progress__one_second_left", - "486": "progress__please_wait", - "487": "storage_msg__processing", + "486": "progress__title_please_wait", + "487": "storage_msg__title_processing", "488": "progress__refreshing", "489": "progress__signing_transaction", "490": "progress__syncing", @@ -528,7 +528,7 @@ "526": "recovery__wanna_cancel_dry_run", "527": "recovery__wanna_cancel_recovery", "528": "recovery__word_count_template", - "529": "recovery__word_x_of_y_template", + "529": "recovery__word_x_of_y_title_template", "530": "recovery__x_more_items_starting_template_plural", "531": "recovery__x_more_shares_needed_template_plural", "532": "recovery__x_of_y_entered_template", @@ -569,7 +569,7 @@ "567": "reset__recovery_share_title_template", "568": "reset__required_number_of_groups", "569": "reset__select_correct_word", - "570": "reset__select_word_template", + "570": "reset__select_word_title_template", "571": "reset__select_word_x_of_y_template", "572": "reset__set_it_to_count_template", "573": "reset__share_checked_successfully_template", @@ -658,10 +658,10 @@ "656": "share_words__words_in_order", "657": "share_words__wrote_down_all", "658": "sign_message__bytes_template", - "659": "sign_message__confirm_address", - "660": "sign_message__confirm_message", + "659": "sign_message__title_confirm_address", + "660": "sign_message__title_confirm_message", "661": "sign_message__message_size", - "662": "sign_message__verify_address", + "662": "sign_message__title_verify_address", "663": "solana__account_index", "664": "solana__associated_token_account", "665": "solana__confirm_multisig", @@ -815,7 +815,7 @@ "813": "words__please_check_again", "814": "words__please_try_again", "815": "words__really_wanna", - "816": "words__recipient", + "816": "words__title_recipient", "817": "words__sign", "818": "words__signer", "819": "words__title_check", @@ -833,15 +833,15 @@ "831": "words__yes", "832": "reboot_to_bootloader__just_a_moment", "833": "inputs__previous", - "834": "ethereum__staking_claim", - "835": "ethereum__staking_claim_address", + "834": "ethereum__staking_title_claim", + "835": "ethereum__staking_title_claim_address", "836": "ethereum__staking_claim_intro", - "837": "ethereum__staking_stake", - "838": "ethereum__staking_stake_address", + "837": "ethereum__staking_title_stake", + "838": "ethereum__staking_title_stake_address", "839": "ethereum__staking_stake_intro", - "840": "ethereum__staking_unstake", + "840": "ethereum__staking_title_unstake", "841": "ethereum__staking_unstake_intro", - "842": "storage_msg__starting", - "843": "storage_msg__verifying_pin", - "844": "storage_msg__wrong_pin" + "842": "storage_msg__title_starting", + "843": "storage_msg__title_verifying_pin", + "844": "storage_msg__title_wrong_pin" } diff --git a/core/translations/signatures.json b/core/translations/signatures.json index b53e8b66f..9bfa4ac7b 100644 --- a/core/translations/signatures.json +++ b/core/translations/signatures.json @@ -1,8 +1,8 @@ { "current": { - "merkle_root": "83f62541670df59f347bfdf577f36c1ef504f769fd8a498c0f76aa78f9021cda", - "datetime": "2024-03-30T11:28:31.004037", - "commit": "1c36c0927c33fd05b4eff4b3a020940e33074b54" + "merkle_root": "4622d85e1e3c9b634b4d4f900a2ab06e2aa5e0f62fc9d4e5ed4a83917cc460d3", + "datetime": "2024-04-14T12:45:50.699461", + "commit": "73a2f276878a95b6f736281a52e93699843e9f9a" }, "history": [ { diff --git a/python/src/trezorlib/_internal/translations.py b/python/src/trezorlib/_internal/translations.py index 809725119..9096f8c00 100644 --- a/python/src/trezorlib/_internal/translations.py +++ b/python/src/trezorlib/_internal/translations.py @@ -293,6 +293,61 @@ class TranslationsBlob(Struct): # ==================== +def uppercase_titles_and_buttons(s: str, key: str, model_internal_name: str) -> str: + # strings used in titles and button labels are uppercased for model T and model R + MODELS_WITH_UPPER_TITLES_AND_BUTTONS = ("T2T1", "T2B1") + # KEY_SUBSTR_UPPER_MODELS_T_AND_R = ("_title", "_button", "buttons__", "inputs__") + KEY_SUBSTR_UPPER_MODELS_T_AND_R = ( + "_title", + "_button", + "buttons__", + "inputs__", + # FIXME: below are strings which should contain '_title' or `_button`. This is just to test if it's sufficient + "stellar__confirm_issuer", + "stellar__confirm_stellar", + "stellar__confirm_issuer", + "stellar__revoke_trust", + "stellar__confirm_memo", + "nem__final_confirm", + "bitcoin__confirm_locktime", + "binance__confirm_cancel", + "binance__confirm_input", + "binance__confirm_order", + "binance__confirm_output", + "cardano__verify_script", + "cardano__sending", # should include many cardano__... + # "progress__loading_transaction", + # "progress__signing_transaction", + "language__progress", + # FIXME: words might be used in multiple places, consider creating more versions, e.g. "words__title_amount", etc. + "words__amount", + "words__confirm", + "words__sign", + "words__warning", + "debug__loading_seed", + "passphrase__hidden_wallet", + "sd_card__error", + "sd_card__format_card", + "misc__decrypt_value", + "misc__encrypt_value", + "misc__title_suite_labeling", + ) + + KEY_SKIP = ( + "debug__loading_seed_not_recommended", + ) + + should_upper: bool = ( + model_internal_name in MODELS_WITH_UPPER_TITLES_AND_BUTTONS + and any(sub in key for sub in KEY_SUBSTR_UPPER_MODELS_T_AND_R) + and key not in KEY_SKIP + ) + if should_upper: + return s.upper() + else: + return s + + def order_from_json(json_order: dict[str, str]) -> Order: return {int(k): v for k, v in json_order.items()} @@ -306,10 +361,14 @@ def blob_from_defs( ) -> TranslationsBlob: json_header: JsonHeader = lang_data["header"] - # order translations -- python dicts keep insertion order - translations_ordered: list[str] = [ - lang_data["translations"].get(key, "") for _, key in sorted(order.items()) - ] + # order translations -- dicts keep insertion order as of Python 3.7 + translations_ordered: list[str] = [] * len(order) + for _, key in sorted(order.items()): + translation: str = lang_data["translations"].get(key, "") + translation = uppercase_titles_and_buttons( + translation, key, model.internal_name + ) + translations_ordered.append(translation) translations = TranslatedStrings.from_items(translations_ordered) diff --git a/tests/input_flows_helpers.py b/tests/input_flows_helpers.py index 05c800c76..47c6a4875 100644 --- a/tests/input_flows_helpers.py +++ b/tests/input_flows_helpers.py @@ -310,7 +310,7 @@ class EthereumFlow: go_back_from_summary: bool = False, ) -> BRGeneratorType: yield - TR.assert_equals(self.debug.wait_layout().title(), "words__recipient") + TR.assert_equals(self.debug.wait_layout().title(), "words__title_recipient") if self.client.model in (models.T2T1, models.T3T1): if cancel: @@ -374,9 +374,9 @@ class EthereumFlow: TR.assert_equals_multiple( self.debug.wait_layout().title(), [ - "ethereum__staking_stake", - "ethereum__staking_unstake", - "ethereum__staking_claim", + "ethereum__staking_title_stake", + "ethereum__staking_title_unstake", + "ethereum__staking_title_claim", ], ) TR.assert_equals_multiple( @@ -394,8 +394,8 @@ class EthereumFlow: TR.assert_equals_multiple( self.debug.wait_layout().title(), [ - "ethereum__staking_stake_address", - "ethereum__staking_claim_address", + "ethereum__staking_title_stake_address", + "ethereum__staking_title_claim_address", ], ) self.debug.press_no(wait=True) @@ -421,8 +421,8 @@ class EthereumFlow: TR.assert_equals_multiple( self.debug.wait_layout().title(), [ - "ethereum__staking_stake_address", - "ethereum__staking_claim_address", + "ethereum__staking_title_stake_address", + "ethereum__staking_title_claim_address", ], ) self.debug.press_left(wait=True)