From 250593125cd85f91803db999835ca07a4c267f41 Mon Sep 17 00:00:00 2001 From: obrusvit Date: Wed, 22 May 2024 02:02:20 +0200 Subject: [PATCH] feat(core): update translation strings Based on latest Figma designs. [no changelog] --- core/embed/rust/librust_qstr.h | 52 +++++ .../generated/translated_string.rs | 212 +++++++++++++++--- .../ui/model_mercury/flow/prompt_backup.rs | 2 +- core/mocks/trezortranslate_keys.pyi | 80 +++++-- core/src/trezor/ui/layouts/mercury/reset.py | 2 +- core/src/trezor/ui/layouts/tt/reset.py | 2 +- core/translations/en.json | 80 +++++-- core/translations/order.json | 54 ++++- core/translations/signatures.json | 6 +- .../test_shamir_persistence.py | 2 +- tests/upgrade_tests/test_firmware_upgrades.py | 2 +- 11 files changed, 429 insertions(+), 65 deletions(-) diff --git a/core/embed/rust/librust_qstr.h b/core/embed/rust/librust_qstr.h index f1e8523a25..ac5a9dacf4 100644 --- a/core/embed/rust/librust_qstr.h +++ b/core/embed/rust/librust_qstr.h @@ -62,14 +62,19 @@ static void _librust_qstrs(void) { MP_QSTR_authenticate__header; MP_QSTR_auto_lock__change_template; MP_QSTR_auto_lock__title; + MP_QSTR_auto_lock__turned_on; MP_QSTR_backup__can_back_up_anytime; MP_QSTR_backup__create_backup_to_prevent_loss; + MP_QSTR_backup__info_multi_share_backup; + MP_QSTR_backup__info_single_share_backup; MP_QSTR_backup__it_should_be_backed_up; MP_QSTR_backup__it_should_be_backed_up_now; MP_QSTR_backup__new_wallet_created; MP_QSTR_backup__new_wallet_successfully_created; MP_QSTR_backup__recover_anytime; + MP_QSTR_backup__title_backup_completed; MP_QSTR_backup__title_backup_wallet; + MP_QSTR_backup__title_create_wallet_backup; MP_QSTR_backup__title_skip; MP_QSTR_backup__want_to_skip; MP_QSTR_bitcoin__commitment_data; @@ -228,6 +233,10 @@ static void _librust_qstrs(void) { MP_QSTR_flow_show_share_words; MP_QSTR_flow_warning_hi_prio; MP_QSTR_get_language; + MP_QSTR_haptic_feedback__disable; + MP_QSTR_haptic_feedback__enable; + MP_QSTR_haptic_feedback__subtitle; + MP_QSTR_haptic_feedback__title; MP_QSTR_hold; MP_QSTR_hold_danger; MP_QSTR_homescreen__click_to_connect; @@ -254,11 +263,20 @@ static void _librust_qstrs(void) { MP_QSTR_inputs__return; MP_QSTR_inputs__show; MP_QSTR_inputs__space; + MP_QSTR_instructions__continue_holding; MP_QSTR_instructions__continue_in_app; + MP_QSTR_instructions__enter_next_share; MP_QSTR_instructions__hold_to_confirm; + MP_QSTR_instructions__hold_to_continue; + MP_QSTR_instructions__hold_to_exit_tutorial; + MP_QSTR_instructions__hold_to_finish_tutorial; MP_QSTR_instructions__hold_to_sign; + MP_QSTR_instructions__learn_more; + MP_QSTR_instructions__shares_continue_with_x_template; + MP_QSTR_instructions__shares_start_with_1; MP_QSTR_instructions__swipe_up; MP_QSTR_instructions__tap_to_confirm; + MP_QSTR_instructions__tap_to_start; MP_QSTR_is_type_of; MP_QSTR_items; MP_QSTR_joint__title; @@ -312,6 +330,7 @@ static void _librust_qstrs(void) { MP_QSTR_passphrase__title_confirm; MP_QSTR_passphrase__title_enter; MP_QSTR_passphrase__title_hide; + MP_QSTR_passphrase__title_passphrase; MP_QSTR_passphrase__title_settings; MP_QSTR_passphrase__title_source; MP_QSTR_passphrase__turn_off; @@ -376,16 +395,23 @@ static void _librust_qstrs(void) { MP_QSTR_recovery__cancel_dry_run; MP_QSTR_recovery__check_dry_run; MP_QSTR_recovery__cursor_will_change; + MP_QSTR_recovery__dry_run_backup_not_on_this_device; MP_QSTR_recovery__dry_run_bip39_valid_match; MP_QSTR_recovery__dry_run_bip39_valid_mismatch; + MP_QSTR_recovery__dry_run_invalid_backup_entered; + MP_QSTR_recovery__dry_run_slip39_valid_all_shares; MP_QSTR_recovery__dry_run_slip39_valid_match; MP_QSTR_recovery__dry_run_slip39_valid_mismatch; + MP_QSTR_recovery__dry_run_slip39_valid_share; + MP_QSTR_recovery__dry_run_verify_remaining_shares; MP_QSTR_recovery__enter_any_share; MP_QSTR_recovery__enter_backup; MP_QSTR_recovery__enter_different_share; + MP_QSTR_recovery__enter_each_word; MP_QSTR_recovery__enter_share_from_diff_group; MP_QSTR_recovery__group_num_template; MP_QSTR_recovery__group_threshold_reached; + MP_QSTR_recovery__info_about_disconnect; MP_QSTR_recovery__invalid_share_entered; MP_QSTR_recovery__invalid_wallet_backup_entered; MP_QSTR_recovery__more_shares_needed; @@ -394,6 +420,7 @@ static void _librust_qstrs(void) { MP_QSTR_recovery__progress_will_be_lost; MP_QSTR_recovery__select_num_of_words; MP_QSTR_recovery__share_already_entered; + MP_QSTR_recovery__share_does_not_match; MP_QSTR_recovery__share_from_another_multi_share_backup; MP_QSTR_recovery__share_num_template; MP_QSTR_recovery__title; @@ -424,6 +451,7 @@ static void _librust_qstrs(void) { MP_QSTR_reset__button_create; MP_QSTR_reset__button_recover; MP_QSTR_reset__by_continuing; + MP_QSTR_reset__cancel_create_wallet; MP_QSTR_reset__check_backup_instructions; MP_QSTR_reset__check_backup_title; MP_QSTR_reset__check_group_share_title_template; @@ -439,6 +467,8 @@ static void _librust_qstrs(void) { MP_QSTR_reset__group_info; MP_QSTR_reset__group_share_checked_successfully_template; MP_QSTR_reset__group_share_title_template; + MP_QSTR_reset__incorrect_word_selected; + MP_QSTR_reset__more_at; MP_QSTR_reset__more_info_at; MP_QSTR_reset__need_all_share_template; MP_QSTR_reset__need_any_share_template; @@ -448,6 +478,8 @@ static void _librust_qstrs(void) { MP_QSTR_reset__num_of_share_holders_template; MP_QSTR_reset__num_of_shares_advanced_info_template; MP_QSTR_reset__num_of_shares_basic_info; + MP_QSTR_reset__num_of_shares_how_many; + MP_QSTR_reset__num_of_shares_long_info; MP_QSTR_reset__num_shares_for_group_template; MP_QSTR_reset__number_of_shares_info; MP_QSTR_reset__one_share; @@ -456,18 +488,22 @@ static void _librust_qstrs(void) { MP_QSTR_reset__recovery_wallet_backup_title; MP_QSTR_reset__required_number_of_groups; MP_QSTR_reset__select_correct_word; + MP_QSTR_reset__select_threshold; MP_QSTR_reset__select_word_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; + MP_QSTR_reset__share_completed_template; MP_QSTR_reset__share_words_title; MP_QSTR_reset__slip39_checklist_num_groups; MP_QSTR_reset__slip39_checklist_num_shares; + MP_QSTR_reset__slip39_checklist_num_shares_x_template; MP_QSTR_reset__slip39_checklist_set_num_groups; MP_QSTR_reset__slip39_checklist_set_num_shares; MP_QSTR_reset__slip39_checklist_set_sizes; MP_QSTR_reset__slip39_checklist_set_sizes_longer; MP_QSTR_reset__slip39_checklist_set_threshold; + MP_QSTR_reset__slip39_checklist_threshold_x_template; MP_QSTR_reset__slip39_checklist_title; MP_QSTR_reset__slip39_checklist_write_down; MP_QSTR_reset__slip39_checklist_write_down_recovery; @@ -549,6 +585,7 @@ static void _librust_qstrs(void) { MP_QSTR_send__total_amount; MP_QSTR_send__total_amount_colon; MP_QSTR_send__transaction_id; + MP_QSTR_send__transaction_signed; MP_QSTR_send__you_are_contributing; MP_QSTR_share_words; MP_QSTR_share_words__words_in_order; @@ -600,17 +637,28 @@ static void _librust_qstrs(void) { MP_QSTR_trezorproto; MP_QSTR_trezorui2; MP_QSTR_tutorial; + MP_QSTR_tutorial__continue; + MP_QSTR_tutorial__exit; + MP_QSTR_tutorial__first_transaction_finish; + MP_QSTR_tutorial__first_transaction_intro; + MP_QSTR_tutorial__menu; MP_QSTR_tutorial__middle_click; + MP_QSTR_tutorial__one_more_step; MP_QSTR_tutorial__press_and_hold; MP_QSTR_tutorial__ready_to_use; + MP_QSTR_tutorial__ready_to_use_safe5; MP_QSTR_tutorial__scroll_down; + MP_QSTR_tutorial__subtitle_safe5; MP_QSTR_tutorial__sure_you_want_skip; + MP_QSTR_tutorial__swipe_up_and_down; MP_QSTR_tutorial__title_hello; + MP_QSTR_tutorial__title_navigation; MP_QSTR_tutorial__title_screen_scroll; MP_QSTR_tutorial__title_skip; MP_QSTR_tutorial__title_tutorial_complete; MP_QSTR_tutorial__use_trezor; MP_QSTR_tutorial__welcome_press_right; + MP_QSTR_tutorial__welcome_safe5; MP_QSTR_type_for_name; MP_QSTR_type_for_wire; MP_QSTR_usb_event; @@ -660,6 +708,7 @@ static void _librust_qstrs(void) { MP_QSTR_words__error; MP_QSTR_words__fee; MP_QSTR_words__from; + MP_QSTR_words__good_to_know; MP_QSTR_words__important; MP_QSTR_words__instructions; MP_QSTR_words__keep_it_safe; @@ -667,11 +716,13 @@ static void _librust_qstrs(void) { MP_QSTR_words__my_trezor; MP_QSTR_words__no; MP_QSTR_words__not_recommended; + MP_QSTR_words__operation_cancelled; MP_QSTR_words__outputs; MP_QSTR_words__please_check_again; MP_QSTR_words__please_try_again; MP_QSTR_words__really_wanna; MP_QSTR_words__recipient; + MP_QSTR_words__settings; MP_QSTR_words__sign; MP_QSTR_words__signer; MP_QSTR_words__title_check; @@ -683,6 +734,7 @@ static void _librust_qstrs(void) { MP_QSTR_words__title_success; MP_QSTR_words__title_summary; MP_QSTR_words__title_threshold; + MP_QSTR_words__try_again; MP_QSTR_words__unknown; MP_QSTR_words__warning; MP_QSTR_words__writable; diff --git a/core/embed/rust/src/translations/generated/translated_string.rs b/core/embed/rust/src/translations/generated/translated_string.rs index 537d2b976b..0ccfe35a0d 100644 --- a/core/embed/rust/src/translations/generated/translated_string.rs +++ b/core/embed/rust/src/translations/generated/translated_string.rs @@ -25,13 +25,13 @@ pub enum TranslatedString { 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__change_template = 15, // "Auto-lock 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__new_wallet_created = 20, // "Wallet created.\n" + backup__new_wallet_successfully_created = 21, // "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" @@ -717,11 +717,11 @@ pub enum TranslatedString { #[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__always_on_device = 433, // "Always enter your passphrase on Trezor?" 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__next_screen_will_show_passphrase = 437, // "The next screen shows your 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" @@ -782,13 +782,13 @@ pub enum TranslatedString { 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 wallet backup is valid and matches the one in the device." + recovery__dry_run_bip39_valid_match = 498, // "The entered wallet backup is valid and matches the one in this device." recovery__dry_run_bip39_valid_mismatch = 499, // "The entered wallet backup 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_different_share = 504, // "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." @@ -800,7 +800,7 @@ pub enum TranslatedString { 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_multi_share_backup = 516, // "You have entered a share from another multi-share backup." + recovery__share_from_another_multi_share_backup = 516, // "You have entered a share from a different backup." recovery__share_num_template = 517, // "Share {0}" recovery__title = 518, // "Recover wallet" recovery__title_cancel_dry_run = 519, // "Cancel backup check" @@ -809,14 +809,14 @@ pub enum TranslatedString { 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__wallet_recovered = 525, // "Wallet recovery completed" 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__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__x_more_shares_needed_template_plural = 531, // "{count} more {plural} needed" + recovery__x_of_y_entered_template = 532, // "{0} of {1} shares entered" 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" @@ -857,7 +857,7 @@ pub enum TranslatedString { reset__select_word_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_checked_successfully_template = 573, // "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" @@ -868,7 +868,7 @@ pub enum TranslatedString { 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__slip39_checklist_write_down_recovery = 584, // "Write down & check all wallet backup 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" @@ -885,7 +885,7 @@ pub enum TranslatedString { 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__write_down_words_template = 601, // "Write the following {0} words in order on your wallet backup card." 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." @@ -1276,6 +1276,58 @@ pub enum TranslatedString { confirm_total__fee_rate = 876, // "Fee rate" send__incl_transaction_fee = 877, // "incl. Transaction fee" send__total_amount = 878, // "Total amount" + auto_lock__turned_on = 879, // "Auto-lock turned on" + backup__info_multi_share_backup = 880, // "Your wallet backup contains multiple lists of words in a specific order (shares)." + backup__info_single_share_backup = 881, // "Your wallet backup contains {0} words in a specific order." + backup__title_backup_completed = 882, // "Wallet backup completed" + backup__title_create_wallet_backup = 883, // "Create wallet backup" + haptic_feedback__disable = 884, // "Disable haptic feedback?" + haptic_feedback__enable = 885, // "Enable haptic feedback?" + haptic_feedback__subtitle = 886, // "Setting" + haptic_feedback__title = 887, // "Haptic feedback" + instructions__continue_holding = 888, // "Continue\nholding" + instructions__enter_next_share = 889, // "Enter next share" + instructions__hold_to_continue = 890, // "Hold to continue" + instructions__hold_to_exit_tutorial = 891, // "Hold to exit tutorial" + instructions__hold_to_finish_tutorial = 892, // "Hold to finish tutorial" + instructions__learn_more = 893, // "Learn more" + instructions__shares_continue_with_x_template = 894, // "Continue with Share #{0}" + instructions__shares_start_with_1 = 895, // "Start with share #1" + instructions__tap_to_start = 896, // "Tap to start" + passphrase__title_passphrase = 897, // "Passphrase" + recovery__dry_run_backup_not_on_this_device = 898, // "Wallet backup not on this device" + recovery__dry_run_invalid_backup_entered = 899, // "Invalid wallet backup entered" + recovery__dry_run_slip39_valid_all_shares = 900, // "All shares are valid and belong to the backup in this device" + recovery__dry_run_slip39_valid_share = 901, // "Entered share is valid and belongs to the backup in the device" + recovery__dry_run_verify_remaining_shares = 902, // "Verify remaining recovery shares?" + recovery__enter_each_word = 903, // "Enter each word of your wallet backup in order." + recovery__info_about_disconnect = 904, // "It's safe to disconnect your Trezor while recovering your wallet and continue later." + recovery__share_does_not_match = 905, // "Share doesn't match" + reset__cancel_create_wallet = 906, // "Cancel create wallet" + reset__incorrect_word_selected = 907, // "Incorrect word selected" + reset__more_at = 908, // "More at" + reset__num_of_shares_how_many = 909, // "How many wallet backup shares do you want to create?" + reset__num_of_shares_long_info = 910, // "Each recovery share is a sequence of 20 words. Store each wordlist in a separate, safe location or share with trusted individuals. Collect as needed to recover your wallet." + reset__select_threshold = 911, // "Select the minimum shares required to recover your wallet." + reset__share_completed_template = 912, // "Share #{0} completed" + reset__slip39_checklist_num_shares_x_template = 913, // "Number of shares" + reset__slip39_checklist_threshold_x_template = 914, // "Recovery threshold:" + send__transaction_signed = 915, // "Transaction signed" + tutorial__continue = 916, // "Continue tutorial" + tutorial__exit = 917, // "Exit tutorial" + tutorial__first_transaction_finish = 918, // "took place on 12 January 2009." + tutorial__first_transaction_intro = 919, // "The world's first bitcoin transaction" + tutorial__menu = 920, // "Menu includes context-specific actions and options." + tutorial__one_more_step = 921, // "One more step..." + tutorial__ready_to_use_safe5 = 922, // "Well done!\nNow you're ready to use your Trezor Safe 5." + tutorial__subtitle_safe5 = 923, // "Trezor Safe 5 tutorial" + tutorial__swipe_up_and_down = 924, // "Swipe up & down to move through screens." + tutorial__title_navigation = 925, // "Navigation" + tutorial__welcome_safe5 = 926, // "Welcome to Trezor Safe 5." + words__good_to_know = 927, // "Good to know" + words__operation_cancelled = 928, // "Operation cancelled" + words__settings = 929, // "Settings" + words__try_again = 930, // "Try again." } impl TranslatedString { @@ -1296,13 +1348,13 @@ impl TranslatedString { 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__change_template => "Auto-lock 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__new_wallet_created => "Wallet created.\n", + Self::backup__new_wallet_successfully_created => "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", @@ -1988,11 +2040,11 @@ impl TranslatedString { #[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__always_on_device => "Always enter your passphrase on Trezor?", 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__next_screen_will_show_passphrase => "The next screen shows your 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", @@ -2053,13 +2105,13 @@ impl TranslatedString { 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 wallet backup is valid and matches the one in the device.", + Self::recovery__dry_run_bip39_valid_match => "The entered wallet backup is valid and matches the one in this device.", Self::recovery__dry_run_bip39_valid_mismatch => "The entered wallet backup 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_different_share => "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.", @@ -2071,7 +2123,7 @@ impl TranslatedString { 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_multi_share_backup => "You have entered a share from another multi-share backup.", + Self::recovery__share_from_another_multi_share_backup => "You have entered a share from a different backup.", Self::recovery__share_num_template => "Share {0}", Self::recovery__title => "Recover wallet", Self::recovery__title_cancel_dry_run => "Cancel backup check", @@ -2080,14 +2132,14 @@ impl TranslatedString { 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__wallet_recovered => "Wallet recovery completed", 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__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__x_more_shares_needed_template_plural => "{count} more {plural} needed", + Self::recovery__x_of_y_entered_template => "{0} of {1} shares entered", 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", @@ -2128,7 +2180,7 @@ impl TranslatedString { Self::reset__select_word_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_checked_successfully_template => "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", @@ -2139,7 +2191,7 @@ impl TranslatedString { 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__slip39_checklist_write_down_recovery => "Write down & check all wallet backup 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", @@ -2156,7 +2208,7 @@ impl TranslatedString { 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__write_down_words_template => "Write the following {0} words in order on your wallet backup card.", 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.", @@ -2547,6 +2599,58 @@ impl TranslatedString { Self::confirm_total__fee_rate => "Fee rate", Self::send__incl_transaction_fee => "incl. Transaction fee", Self::send__total_amount => "Total amount", + Self::auto_lock__turned_on => "Auto-lock turned on", + Self::backup__info_multi_share_backup => "Your wallet backup contains multiple lists of words in a specific order (shares).", + Self::backup__info_single_share_backup => "Your wallet backup contains {0} words in a specific order.", + Self::backup__title_backup_completed => "Wallet backup completed", + Self::backup__title_create_wallet_backup => "Create wallet backup", + Self::haptic_feedback__disable => "Disable haptic feedback?", + Self::haptic_feedback__enable => "Enable haptic feedback?", + Self::haptic_feedback__subtitle => "Setting", + Self::haptic_feedback__title => "Haptic feedback", + Self::instructions__continue_holding => "Continue\nholding", + Self::instructions__enter_next_share => "Enter next share", + Self::instructions__hold_to_continue => "Hold to continue", + Self::instructions__hold_to_exit_tutorial => "Hold to exit tutorial", + Self::instructions__hold_to_finish_tutorial => "Hold to finish tutorial", + Self::instructions__learn_more => "Learn more", + Self::instructions__shares_continue_with_x_template => "Continue with Share #{0}", + Self::instructions__shares_start_with_1 => "Start with share #1", + Self::instructions__tap_to_start => "Tap to start", + Self::passphrase__title_passphrase => "Passphrase", + Self::recovery__dry_run_backup_not_on_this_device => "Wallet backup not on this device", + Self::recovery__dry_run_invalid_backup_entered => "Invalid wallet backup entered", + Self::recovery__dry_run_slip39_valid_all_shares => "All shares are valid and belong to the backup in this device", + Self::recovery__dry_run_slip39_valid_share => "Entered share is valid and belongs to the backup in the device", + Self::recovery__dry_run_verify_remaining_shares => "Verify remaining recovery shares?", + Self::recovery__enter_each_word => "Enter each word of your wallet backup in order.", + Self::recovery__info_about_disconnect => "It's safe to disconnect your Trezor while recovering your wallet and continue later.", + Self::recovery__share_does_not_match => "Share doesn't match", + Self::reset__cancel_create_wallet => "Cancel create wallet", + Self::reset__incorrect_word_selected => "Incorrect word selected", + Self::reset__more_at => "More at", + Self::reset__num_of_shares_how_many => "How many wallet backup shares do you want to create?", + Self::reset__num_of_shares_long_info => "Each recovery share is a sequence of 20 words. Store each wordlist in a separate, safe location or share with trusted individuals. Collect as needed to recover your wallet.", + Self::reset__select_threshold => "Select the minimum shares required to recover your wallet.", + Self::reset__share_completed_template => "Share #{0} completed", + Self::reset__slip39_checklist_num_shares_x_template => "Number of shares", + Self::reset__slip39_checklist_threshold_x_template => "Recovery threshold:", + Self::send__transaction_signed => "Transaction signed", + Self::tutorial__continue => "Continue tutorial", + Self::tutorial__exit => "Exit tutorial", + Self::tutorial__first_transaction_finish => "took place on 12 January 2009.", + Self::tutorial__first_transaction_intro => "The world's first bitcoin transaction", + Self::tutorial__menu => "Menu includes context-specific actions and options.", + Self::tutorial__one_more_step => "One more step...", + Self::tutorial__ready_to_use_safe5 => "Well done!\nNow you're ready to use your Trezor Safe 5.", + Self::tutorial__subtitle_safe5 => "Trezor Safe 5 tutorial", + Self::tutorial__swipe_up_and_down => "Swipe up & down to move through screens.", + Self::tutorial__title_navigation => "Navigation", + Self::tutorial__welcome_safe5 => "Welcome to Trezor Safe 5.", + Self::words__good_to_know => "Good to know", + Self::words__operation_cancelled => "Operation cancelled", + Self::words__settings => "Settings", + Self::words__try_again => "Try again.", } } @@ -3819,6 +3923,58 @@ impl TranslatedString { Qstr::MP_QSTR_confirm_total__fee_rate => Some(Self::confirm_total__fee_rate), Qstr::MP_QSTR_send__incl_transaction_fee => Some(Self::send__incl_transaction_fee), Qstr::MP_QSTR_send__total_amount => Some(Self::send__total_amount), + Qstr::MP_QSTR_auto_lock__turned_on => Some(Self::auto_lock__turned_on), + Qstr::MP_QSTR_backup__info_multi_share_backup => Some(Self::backup__info_multi_share_backup), + Qstr::MP_QSTR_backup__info_single_share_backup => Some(Self::backup__info_single_share_backup), + Qstr::MP_QSTR_backup__title_backup_completed => Some(Self::backup__title_backup_completed), + Qstr::MP_QSTR_backup__title_create_wallet_backup => Some(Self::backup__title_create_wallet_backup), + Qstr::MP_QSTR_haptic_feedback__disable => Some(Self::haptic_feedback__disable), + Qstr::MP_QSTR_haptic_feedback__enable => Some(Self::haptic_feedback__enable), + Qstr::MP_QSTR_haptic_feedback__subtitle => Some(Self::haptic_feedback__subtitle), + Qstr::MP_QSTR_haptic_feedback__title => Some(Self::haptic_feedback__title), + Qstr::MP_QSTR_instructions__continue_holding => Some(Self::instructions__continue_holding), + Qstr::MP_QSTR_instructions__enter_next_share => Some(Self::instructions__enter_next_share), + Qstr::MP_QSTR_instructions__hold_to_continue => Some(Self::instructions__hold_to_continue), + Qstr::MP_QSTR_instructions__hold_to_exit_tutorial => Some(Self::instructions__hold_to_exit_tutorial), + Qstr::MP_QSTR_instructions__hold_to_finish_tutorial => Some(Self::instructions__hold_to_finish_tutorial), + Qstr::MP_QSTR_instructions__learn_more => Some(Self::instructions__learn_more), + Qstr::MP_QSTR_instructions__shares_continue_with_x_template => Some(Self::instructions__shares_continue_with_x_template), + Qstr::MP_QSTR_instructions__shares_start_with_1 => Some(Self::instructions__shares_start_with_1), + Qstr::MP_QSTR_instructions__tap_to_start => Some(Self::instructions__tap_to_start), + Qstr::MP_QSTR_passphrase__title_passphrase => Some(Self::passphrase__title_passphrase), + Qstr::MP_QSTR_recovery__dry_run_backup_not_on_this_device => Some(Self::recovery__dry_run_backup_not_on_this_device), + Qstr::MP_QSTR_recovery__dry_run_invalid_backup_entered => Some(Self::recovery__dry_run_invalid_backup_entered), + Qstr::MP_QSTR_recovery__dry_run_slip39_valid_all_shares => Some(Self::recovery__dry_run_slip39_valid_all_shares), + Qstr::MP_QSTR_recovery__dry_run_slip39_valid_share => Some(Self::recovery__dry_run_slip39_valid_share), + Qstr::MP_QSTR_recovery__dry_run_verify_remaining_shares => Some(Self::recovery__dry_run_verify_remaining_shares), + Qstr::MP_QSTR_recovery__enter_each_word => Some(Self::recovery__enter_each_word), + Qstr::MP_QSTR_recovery__info_about_disconnect => Some(Self::recovery__info_about_disconnect), + Qstr::MP_QSTR_recovery__share_does_not_match => Some(Self::recovery__share_does_not_match), + Qstr::MP_QSTR_reset__cancel_create_wallet => Some(Self::reset__cancel_create_wallet), + Qstr::MP_QSTR_reset__incorrect_word_selected => Some(Self::reset__incorrect_word_selected), + Qstr::MP_QSTR_reset__more_at => Some(Self::reset__more_at), + Qstr::MP_QSTR_reset__num_of_shares_how_many => Some(Self::reset__num_of_shares_how_many), + Qstr::MP_QSTR_reset__num_of_shares_long_info => Some(Self::reset__num_of_shares_long_info), + Qstr::MP_QSTR_reset__select_threshold => Some(Self::reset__select_threshold), + Qstr::MP_QSTR_reset__share_completed_template => Some(Self::reset__share_completed_template), + Qstr::MP_QSTR_reset__slip39_checklist_num_shares_x_template => Some(Self::reset__slip39_checklist_num_shares_x_template), + Qstr::MP_QSTR_reset__slip39_checklist_threshold_x_template => Some(Self::reset__slip39_checklist_threshold_x_template), + Qstr::MP_QSTR_send__transaction_signed => Some(Self::send__transaction_signed), + Qstr::MP_QSTR_tutorial__continue => Some(Self::tutorial__continue), + Qstr::MP_QSTR_tutorial__exit => Some(Self::tutorial__exit), + Qstr::MP_QSTR_tutorial__first_transaction_finish => Some(Self::tutorial__first_transaction_finish), + Qstr::MP_QSTR_tutorial__first_transaction_intro => Some(Self::tutorial__first_transaction_intro), + Qstr::MP_QSTR_tutorial__menu => Some(Self::tutorial__menu), + Qstr::MP_QSTR_tutorial__one_more_step => Some(Self::tutorial__one_more_step), + Qstr::MP_QSTR_tutorial__ready_to_use_safe5 => Some(Self::tutorial__ready_to_use_safe5), + Qstr::MP_QSTR_tutorial__subtitle_safe5 => Some(Self::tutorial__subtitle_safe5), + Qstr::MP_QSTR_tutorial__swipe_up_and_down => Some(Self::tutorial__swipe_up_and_down), + Qstr::MP_QSTR_tutorial__title_navigation => Some(Self::tutorial__title_navigation), + Qstr::MP_QSTR_tutorial__welcome_safe5 => Some(Self::tutorial__welcome_safe5), + Qstr::MP_QSTR_words__good_to_know => Some(Self::words__good_to_know), + Qstr::MP_QSTR_words__operation_cancelled => Some(Self::words__operation_cancelled), + Qstr::MP_QSTR_words__settings => Some(Self::words__settings), + Qstr::MP_QSTR_words__try_again => Some(Self::words__try_again), _ => None, } } diff --git a/core/embed/rust/src/ui/model_mercury/flow/prompt_backup.rs b/core/embed/rust/src/ui/model_mercury/flow/prompt_backup.rs index e13aa2c686..84ff800004 100644 --- a/core/embed/rust/src/ui/model_mercury/flow/prompt_backup.rs +++ b/core/embed/rust/src/ui/model_mercury/flow/prompt_backup.rs @@ -80,7 +80,7 @@ pub extern "C" fn new_prompt_backup(n_args: usize, args: *const Obj, kwargs: *mu impl PromptBackup { fn new_obj(_args: &[Obj], _kwargs: &Map) -> Result { - let title: TString = TR::backup__title_backup_wallet.into(); + let title: TString = TR::backup__title_create_wallet_backup.into(); let par_array: [Paragraph<'static>; 1] = [Paragraph::new( &theme::TEXT_MAIN_GREY_LIGHT, // FIXME: should be "contains X words" but the mnemonic/shares are not yet generated at diff --git a/core/mocks/trezortranslate_keys.pyi b/core/mocks/trezortranslate_keys.pyi index 3e9bb6e33d..675404a334 100644 --- a/core/mocks/trezortranslate_keys.pyi +++ b/core/mocks/trezortranslate_keys.pyi @@ -23,16 +23,21 @@ class TR: 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__change_template: str = "Auto-lock Trezor after {0} of inactivity?" auto_lock__title: str = "Auto-lock delay" + auto_lock__turned_on: str = "Auto-lock turned on" backup__can_back_up_anytime: str = "You can back up your Trezor once, at any time." backup__create_backup_to_prevent_loss: str = "Create a backup to avoid losing access to your funds" + backup__info_multi_share_backup: str = "Your wallet backup contains multiple lists of words in a specific order (shares)." + backup__info_single_share_backup: str = "Your wallet backup contains {0} words in a specific order." 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__new_wallet_created: str = "Wallet created.\n" + backup__new_wallet_successfully_created: str = "Wallet created successfully." backup__recover_anytime: str = "You can use your backup to recover your wallet at any time." + backup__title_backup_completed: str = "Wallet backup completed" backup__title_backup_wallet: str = "Back up wallet" + backup__title_create_wallet_backup: str = "Create wallet backup" backup__title_skip: str = "Skip backup" backup__want_to_skip: str = "Are you sure you want to skip the backup?" binance__buy: str = "Buy" @@ -344,6 +349,10 @@ class TR: 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" + haptic_feedback__disable: str = "Disable haptic feedback?" + haptic_feedback__enable: str = "Enable haptic feedback?" + haptic_feedback__subtitle: str = "Setting" + haptic_feedback__title: str = "Haptic feedback" homescreen__click_to_connect: str = "Click to Connect" homescreen__click_to_unlock: str = "Click to Unlock" homescreen__title_backup_failed: str = "Backup failed" @@ -362,11 +371,20 @@ class TR: inputs__return: str = "RETURN" inputs__show: str = "SHOW" inputs__space: str = "SPACE" + instructions__continue_holding: str = "Continue\nholding" instructions__continue_in_app: str = "Continue in the app" + instructions__enter_next_share: str = "Enter next share" instructions__hold_to_confirm: str = "Hold to confirm" + instructions__hold_to_continue: str = "Hold to continue" + instructions__hold_to_exit_tutorial: str = "Hold to exit tutorial" + instructions__hold_to_finish_tutorial: str = "Hold to finish tutorial" instructions__hold_to_sign: str = "Hold to sign" + instructions__learn_more: str = "Learn more" + instructions__shares_continue_with_x_template: str = "Continue with Share #{0}" + instructions__shares_start_with_1: str = "Start with share #1" instructions__swipe_up: str = "Swipe up" instructions__tap_to_confirm: str = "Tap to confirm" + instructions__tap_to_start: str = "Tap to start" joint__title: str = "Joint transaction" joint__to_the_total_amount: str = "To the total amount:" joint__you_are_contributing: str = "You are contributing:" @@ -462,16 +480,17 @@ class TR: nem__unencrypted: str = "Unencrypted:" nem__unknown_mosaic: str = "Unknown mosaic!" passphrase__access_hidden_wallet: str = "Access hidden wallet?" - passphrase__always_on_device: str = "Do you really want to enter passphrase always on the device?" + passphrase__always_on_device: str = "Always enter your passphrase on Trezor?" passphrase__from_host_not_shown: str = "Passphrase provided by host will be used but will not be displayed due to the device settings." passphrase__hidden_wallet: str = "Hidden wallet" passphrase__hide: str = "Hide passphrase coming from host?" - passphrase__next_screen_will_show_passphrase: str = "Next screen will show the passphrase." + passphrase__next_screen_will_show_passphrase: str = "The next screen shows your 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_passphrase: str = "Passphrase" passphrase__title_settings: str = "Passphrase settings" passphrase__title_source: str = "Passphrase source" passphrase__turn_off: str = "Turn off passphrase protection?" @@ -530,16 +549,23 @@ class TR: recovery__cancel_dry_run: str = "Cancel backup check" recovery__check_dry_run: str = "Check your backup?" recovery__cursor_will_change: str = "Position of the cursor will change between entries for enhanced security." - recovery__dry_run_bip39_valid_match: str = "The entered recovery wallet backup is valid and matches the one in the device." + recovery__dry_run_backup_not_on_this_device: str = "Wallet backup not on this device" + recovery__dry_run_bip39_valid_match: str = "The entered wallet backup is valid and matches the one in this device." recovery__dry_run_bip39_valid_mismatch: str = "The entered wallet backup is valid but does not match the one in the device." + recovery__dry_run_invalid_backup_entered: str = "Invalid wallet backup entered" + recovery__dry_run_slip39_valid_all_shares: str = "All shares are valid and belong to the backup in this device" recovery__dry_run_slip39_valid_match: str = "The entered recovery shares are valid and match what is currently in the device." recovery__dry_run_slip39_valid_mismatch: str = "The entered recovery shares are valid but do not match what is currently in the device." + recovery__dry_run_slip39_valid_share: str = "Entered share is valid and belongs to the backup in the device" + recovery__dry_run_verify_remaining_shares: str = "Verify remaining recovery shares?" recovery__enter_any_share: str = "Enter any share" recovery__enter_backup: str = "Enter your backup." - recovery__enter_different_share: str = "Please enter a different share." + recovery__enter_different_share: str = "Enter a different share." + recovery__enter_each_word: str = "Enter each word of your wallet backup in order." recovery__enter_share_from_diff_group: str = "Enter share from a different group." recovery__group_num_template: str = "Group {0}" recovery__group_threshold_reached: str = "Group threshold reached." + recovery__info_about_disconnect: str = "It's safe to disconnect your Trezor while recovering your wallet and continue later." recovery__invalid_share_entered: str = "Invalid recovery share entered." recovery__invalid_wallet_backup_entered: str = "Invalid wallet backup entered." recovery__more_shares_needed: str = "More shares needed" @@ -548,7 +574,8 @@ class TR: recovery__progress_will_be_lost: str = "All progress will be lost." recovery__select_num_of_words: str = "Select the number of words in your backup." recovery__share_already_entered: str = "Share already entered" - recovery__share_from_another_multi_share_backup: str = "You have entered a share from another multi-share backup." + recovery__share_does_not_match: str = "Share doesn't match" + recovery__share_from_another_multi_share_backup: str = "You have entered a share from a different backup." recovery__share_num_template: str = "Share {0}" recovery__title: str = "Recover wallet" recovery__title_cancel_dry_run: str = "Cancel backup check" @@ -557,14 +584,14 @@ class TR: 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__wallet_recovered: str = "Wallet recovery completed" 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__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." + recovery__x_more_shares_needed_template_plural: str = "{count} more {plural} needed" + recovery__x_of_y_entered_template: str = "{0} of {1} shares entered" recovery__you_have_entered: str = "You have entered" 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" @@ -572,6 +599,7 @@ class TR: 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__cancel_create_wallet: str = "Cancel create wallet" reset__check_backup_instructions: str = "Let's do a quick check of your backup." reset__check_backup_title: str = "Check backup" reset__check_group_share_title_template: str = "Check g{0} - share {1}" @@ -587,6 +615,8 @@ class TR: 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__incorrect_word_selected: str = "Incorrect word selected" + reset__more_at: str = "More at" 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." @@ -596,6 +626,8 @@ class TR: reset__num_of_share_holders_template: str = "{0} people or locations will each hold one share." reset__num_of_shares_advanced_info_template: str = "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: str = "Each recovery share is a sequence of 20 words. Next you will choose how many shares you need to recover your wallet." + reset__num_of_shares_how_many: str = "How many wallet backup shares do you want to create?" + reset__num_of_shares_long_info: str = "Each recovery share is a sequence of 20 words. Store each wordlist in a separate, safe location or share with trusted individuals. Collect as needed to recover your wallet." reset__num_shares_for_group_template: str = "The required number of shares to form Group {0}." reset__number_of_shares_info: str = "= total number of unique word lists used for wallet backup." reset__one_share: str = "1 share" @@ -604,21 +636,25 @@ class TR: reset__recovery_wallet_backup_title: str = "Wallet backup" 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_threshold: str = "Select the minimum shares required to recover your wallet." reset__select_word_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_checked_successfully_template: str = "Share #{0} checked successfully." + reset__share_completed_template: str = "Share #{0} completed" 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_num_shares_x_template: str = "Number of shares" reset__slip39_checklist_set_num_groups: str = "Set number of groups" reset__slip39_checklist_set_num_shares: str = "Set number of shares" 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_threshold_x_template: str = "Recovery threshold:" 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__slip39_checklist_write_down_recovery: str = "Write down & check all wallet backup 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" @@ -636,7 +672,7 @@ class TR: reset__total_number_of_shares_in_group_template: str = "Set the total number of shares in Group {0}." reset__use_your_backup: str = "Use your backup when you need to recover your wallet." reset__words_written_down_template: str = "I wrote down all {0} words in order." - reset__write_down_words_template: str = "Write down all {0} words in order." + reset__write_down_words_template: str = "Write the following {0} words in order on your wallet backup card." reset__wrong_word_selected: str = "Wrong word selected!" reset__you_need_one_share: str = "For recovery you need 1 share." reset__your_backup_is_done: str = "Your backup is done." @@ -695,6 +731,7 @@ class TR: send__total_amount: str = "Total amount" send__total_amount_colon: str = "Total amount:" send__transaction_id: str = "Transaction ID:" + send__transaction_signed: str = "Transaction signed" send__you_are_contributing: str = "You are contributing:" share_words__words_in_order: str = " words in order." share_words__wrote_down_all: str = "I wrote down all " @@ -800,17 +837,28 @@ class TR: tezos__submit_ballot: str = "Submit ballot" tezos__submit_proposal: str = "Submit proposal" tezos__submit_proposals: str = "Submit proposals" + tutorial__continue: str = "Continue tutorial" + tutorial__exit: str = "Exit tutorial" + tutorial__first_transaction_finish: str = "took place on 12 January 2009." + tutorial__first_transaction_intro: str = "The world's first bitcoin transaction" + tutorial__menu: str = "Menu includes context-specific actions and options." tutorial__middle_click: str = "Press both left and right at the same\ntime to confirm." + tutorial__one_more_step: str = "One more step..." tutorial__press_and_hold: str = "Press and hold the right button to\napprove important operations." tutorial__ready_to_use: str = "You're ready to\nuse Trezor." + tutorial__ready_to_use_safe5: str = "Well done!\nNow you're ready to use your Trezor Safe 5." tutorial__scroll_down: str = "Press right to scroll down to read all content when text doesn't fit on one screen.\n\rPress left to scroll up." + tutorial__subtitle_safe5: str = "Trezor Safe 5 tutorial" tutorial__sure_you_want_skip: str = "Are you sure you\nwant to skip the tutorial?" + tutorial__swipe_up_and_down: str = "Swipe up & down to move through screens." tutorial__title_hello: str = "Hello" + tutorial__title_navigation: str = "Navigation" tutorial__title_screen_scroll: str = "Screen scroll" tutorial__title_skip: str = "Skip tutorial" tutorial__title_tutorial_complete: str = "Tutorial complete" tutorial__use_trezor: str = "Use Trezor by\nclicking the left and right buttons.\n\rContinue right." tutorial__welcome_press_right: str = "Welcome to Trezor. Press right to continue." + tutorial__welcome_safe5: str = "Welcome to Trezor Safe 5." 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" @@ -853,6 +901,7 @@ class TR: words__error: str = "Error" words__fee: str = "Fee" words__from: str = "from" + words__good_to_know: str = "Good to know" words__important: str = "Important" words__instructions: str = "Instructions" words__keep_it_safe: str = "Keep it safe!" @@ -860,11 +909,13 @@ class TR: words__my_trezor: str = "My Trezor" words__no: str = "No" words__not_recommended: str = "Not recommended!" + words__operation_cancelled: str = "Operation cancelled" words__outputs: str = "outputs" 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__settings: str = "Settings" words__sign: str = "Sign" words__signer: str = "Signer" words__title_check: str = "Check" @@ -876,6 +927,7 @@ class TR: words__title_success: str = "Success" words__title_summary: str = "Summary" words__title_threshold: str = "Threshold" + words__try_again: str = "Try again." words__unknown: str = "Unknown" words__warning: str = "Warning" words__writable: str = "Writable" diff --git a/core/src/trezor/ui/layouts/mercury/reset.py b/core/src/trezor/ui/layouts/mercury/reset.py index 0eade07084..b568ab5c0d 100644 --- a/core/src/trezor/ui/layouts/mercury/reset.py +++ b/core/src/trezor/ui/layouts/mercury/reset.py @@ -237,7 +237,7 @@ async def slip39_prompt_number_of_shares(group_id: int | None = None) -> int: if i == 1: return TR.reset__only_one_share_will_be_created else: - return TR.reset__num_of_share_holders_template.format(i) + return TR.reset__num_of_shares_how_many else: return TR.reset__total_number_of_shares_in_group_template.format( group_id + 1 diff --git a/core/src/trezor/ui/layouts/tt/reset.py b/core/src/trezor/ui/layouts/tt/reset.py index 4ac805594e..cb4a4aff07 100644 --- a/core/src/trezor/ui/layouts/tt/reset.py +++ b/core/src/trezor/ui/layouts/tt/reset.py @@ -108,7 +108,7 @@ async def slip39_show_checklist(step: int, advanced: bool) -> None: ( TR.reset__slip39_checklist_set_num_shares, TR.reset__slip39_checklist_set_threshold, - TR.reset__slip39_checklist_write_down_recovery, + TR.reset__slip39_checklist_write_down, ) if not advanced else ( diff --git a/core/translations/en.json b/core/translations/en.json index 63c9f4b939..22672d7f23 100644 --- a/core/translations/en.json +++ b/core/translations/en.json @@ -25,16 +25,21 @@ "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__change_template": "Auto-lock Trezor after {0} of inactivity?", "auto_lock__title": "Auto-lock delay", + "auto_lock__turned_on": "Auto-lock turned on", "backup__can_back_up_anytime": "You can back up your Trezor once, at any time.", "backup__create_backup_to_prevent_loss": "Create a backup to avoid losing access to your funds", + "backup__info_multi_share_backup": "Your wallet backup contains multiple lists of words in a specific order (shares).", + "backup__info_single_share_backup": "Your wallet backup contains {0} words in a specific order.", "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__new_wallet_created": "Wallet created.\n", + "backup__new_wallet_successfully_created": "Wallet created successfully.", "backup__recover_anytime": "You can use your backup to recover your wallet at any time.", + "backup__title_backup_completed": "Wallet backup completed", "backup__title_backup_wallet": "Back up wallet", + "backup__title_create_wallet_backup": "Create wallet backup", "backup__title_skip": "Skip backup", "backup__want_to_skip": "Are you sure you want to skip the backup?", "binance__buy": "Buy", @@ -346,6 +351,10 @@ "fido__wanna_erase_credentials": "Do you really want to erase all credentials?", "firmware_update__title": "Update firmware", "firmware_update__title_fingerprint": "FW fingerprint", + "haptic_feedback__title": "Haptic feedback", + "haptic_feedback__subtitle": "Setting", + "haptic_feedback__enable": "Enable haptic feedback?", + "haptic_feedback__disable": "Disable haptic feedback?", "homescreen__click_to_connect": "Click to Connect", "homescreen__click_to_unlock": "Click to Unlock", "homescreen__title_backup_failed": "Backup failed", @@ -365,10 +374,19 @@ "inputs__show": "SHOW", "inputs__space": "SPACE", "instructions__continue_in_app": "Continue in the app", + "instructions__continue_holding": "Continue\nholding", + "instructions__enter_next_share": "Enter next share", "instructions__hold_to_confirm": "Hold to confirm", + "instructions__hold_to_continue": "Hold to continue", + "instructions__hold_to_exit_tutorial": "Hold to exit tutorial", + "instructions__hold_to_finish_tutorial": "Hold to finish tutorial", "instructions__hold_to_sign": "Hold to sign", + "instructions__learn_more": "Learn more", + "instructions__shares_continue_with_x_template": "Continue with Share #{0}", + "instructions__shares_start_with_1": "Start with share #1", "instructions__swipe_up": "Swipe up", "instructions__tap_to_confirm": "Tap to confirm", + "instructions__tap_to_start": "Tap to start", "joint__title": "Joint transaction", "joint__to_the_total_amount": "To the total amount:", "joint__you_are_contributing": "You are contributing:", @@ -464,16 +482,17 @@ "nem__unencrypted": "Unencrypted:", "nem__unknown_mosaic": "Unknown mosaic!", "passphrase__access_hidden_wallet": "Access hidden wallet?", - "passphrase__always_on_device": "Do you really want to enter passphrase always on the device?", + "passphrase__always_on_device": "Always enter your passphrase on Trezor?", "passphrase__from_host_not_shown": "Passphrase provided by host will be used but will not be displayed due to the device settings.", "passphrase__hidden_wallet": "Hidden wallet", "passphrase__hide": "Hide passphrase coming from host?", - "passphrase__next_screen_will_show_passphrase": "Next screen will show the passphrase.", + "passphrase__next_screen_will_show_passphrase": "The next screen shows your 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_passphrase": "Passphrase", "passphrase__title_settings": "Passphrase settings", "passphrase__title_source": "Passphrase source", "passphrase__turn_off": "Turn off passphrase protection?", @@ -532,16 +551,23 @@ "recovery__cancel_dry_run": "Cancel backup check", "recovery__check_dry_run": "Check your backup?", "recovery__cursor_will_change": "Position of the cursor will change between entries for enhanced security.", - "recovery__dry_run_bip39_valid_match": "The entered recovery wallet backup is valid and matches the one in the device.", + "recovery__dry_run_bip39_valid_match": "The entered wallet backup is valid and matches the one in this device.", "recovery__dry_run_bip39_valid_mismatch": "The entered wallet backup is valid but does not match the one in the device.", "recovery__dry_run_slip39_valid_match": "The entered recovery shares are valid and match what is currently in the device.", "recovery__dry_run_slip39_valid_mismatch": "The entered recovery shares are valid but do not match what is currently in the device.", + "recovery__dry_run_slip39_valid_share": "Entered share is valid and belongs to the backup in the device", + "recovery__dry_run_slip39_valid_all_shares": "All shares are valid and belong to the backup in this device", + "recovery__dry_run_backup_not_on_this_device": "Wallet backup not on this device", + "recovery__dry_run_invalid_backup_entered": "Invalid wallet backup entered", + "recovery__dry_run_verify_remaining_shares": "Verify remaining recovery shares?", "recovery__enter_any_share": "Enter any share", "recovery__enter_backup": "Enter your backup.", - "recovery__enter_different_share": "Please enter a different share.", + "recovery__enter_different_share": "Enter a different share.", + "recovery__enter_each_word": "Enter each word of your wallet backup in order.", "recovery__enter_share_from_diff_group": "Enter share from a different group.", "recovery__group_num_template": "Group {0}", "recovery__group_threshold_reached": "Group threshold reached.", + "recovery__info_about_disconnect": "It's safe to disconnect your Trezor while recovering your wallet and continue later.", "recovery__invalid_wallet_backup_entered": "Invalid wallet backup entered.", "recovery__invalid_share_entered": "Invalid recovery share entered.", "recovery__more_shares_needed": "More shares needed", @@ -550,7 +576,8 @@ "recovery__progress_will_be_lost": "All progress will be lost.", "recovery__select_num_of_words": "Select the number of words in your backup.", "recovery__share_already_entered": "Share already entered", - "recovery__share_from_another_multi_share_backup": "You have entered a share from another multi-share backup.", + "recovery__share_does_not_match": "Share doesn't match", + "recovery__share_from_another_multi_share_backup": "You have entered a share from a different backup.", "recovery__share_num_template": "Share {0}", "recovery__title": "Recover wallet", "recovery__title_cancel_dry_run": "Cancel backup check", @@ -559,14 +586,14 @@ "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__wallet_recovered": "Wallet recovery completed", "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__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.", + "recovery__x_more_shares_needed_template_plural": "{count} more {plural} needed", + "recovery__x_of_y_entered_template": "{0} of {1} shares entered", "recovery__you_have_entered": "You have entered", "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", @@ -574,6 +601,7 @@ "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__cancel_create_wallet": "Cancel create wallet", "reset__check_backup_title": "Check backup", "reset__check_group_share_title_template": "Check g{0} - share {1}", "reset__check_wallet_backup_title": "Check wallet backup", @@ -589,6 +617,8 @@ "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__incorrect_word_selected": "Incorrect word selected", + "reset__more_at": "More at", "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.", @@ -596,8 +626,10 @@ "reset__needed_to_recover_your_wallet": "needed to recover your wallet. ", "reset__never_make_digital_copy": "Never put your backup anywhere digital.", "reset__num_of_share_holders_template": "{0} people or locations will each hold one share.", + "reset__num_of_shares_how_many": "How many wallet backup shares do you want to create?", "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}.", "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.", + "reset__num_of_shares_long_info": "Each recovery share is a sequence of 20 words. Store each wordlist in a separate, safe location or share with trusted individuals. Collect as needed to recover your wallet.", "reset__num_shares_for_group_template": "The required number of shares to form Group {0}.", "reset__number_of_shares_info": "= total number of unique word lists used for wallet backup.", "reset__one_share": "1 share", @@ -606,21 +638,25 @@ "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_threshold": "Select the minimum shares required to recover your wallet.", "reset__select_word_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_checked_successfully_template": "Share #{0} checked successfully.", + "reset__share_completed_template": "Share #{0} completed", "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_num_shares_x_template": "Number of shares", "reset__slip39_checklist_set_num_groups": "Set number of groups", "reset__slip39_checklist_set_num_shares": "Set number of shares", "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_threshold_x_template": "Recovery threshold:", "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__slip39_checklist_write_down_recovery": "Write down & check all wallet backup 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", @@ -638,7 +674,7 @@ "reset__total_number_of_shares_in_group_template": "Set the total number of shares in Group {0}.", "reset__use_your_backup": "Use your backup when you need to recover your wallet.", "reset__words_written_down_template": "I wrote down all {0} words in order.", - "reset__write_down_words_template": "Write down all {0} words in order.", + "reset__write_down_words_template": "Write the following {0} words in order on your wallet backup card.", "reset__wrong_word_selected": "Wrong word selected!", "reset__you_need_one_share": "For recovery you need 1 share.", "reset__your_backup_is_done": "Your backup is done.", @@ -697,6 +733,7 @@ "send__total_amount": "Total amount", "send__total_amount_colon": "Total amount:", "send__transaction_id": "Transaction ID:", + "send__transaction_signed": "Transaction signed", "send__you_are_contributing": "You are contributing:", "share_words__words_in_order": " words in order.", "share_words__wrote_down_all": "I wrote down all ", @@ -802,17 +839,28 @@ "tezos__submit_ballot": "Submit ballot", "tezos__submit_proposal": "Submit proposal", "tezos__submit_proposals": "Submit proposals", + "tutorial__continue": "Continue tutorial", + "tutorial__exit": "Exit tutorial", + "tutorial__menu": "Menu includes context-specific actions and options.", "tutorial__middle_click": "Press both left and right at the same\ntime to confirm.", + "tutorial__one_more_step": "One more step...", "tutorial__press_and_hold": "Press and hold the right button to\napprove important operations.", "tutorial__ready_to_use": "You're ready to\nuse Trezor.", + "tutorial__ready_to_use_safe5": "Well done!\nNow you're ready to use your Trezor Safe 5.", "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.", "tutorial__sure_you_want_skip": "Are you sure you\nwant to skip the tutorial?", + "tutorial__subtitle_safe5": "Trezor Safe 5 tutorial", + "tutorial__swipe_up_and_down": "Swipe up & down to move through screens.", "tutorial__title_hello": "Hello", + "tutorial__title_navigation": "Navigation", "tutorial__title_screen_scroll": "Screen scroll", "tutorial__title_skip": "Skip tutorial", "tutorial__title_tutorial_complete": "Tutorial complete", "tutorial__use_trezor": "Use Trezor by\nclicking the left and right buttons.\n\rContinue right.", "tutorial__welcome_press_right": "Welcome to Trezor. Press right to continue.", + "tutorial__welcome_safe5": "Welcome to Trezor Safe 5.", + "tutorial__first_transaction_intro": "The world's first bitcoin transaction", + "tutorial__first_transaction_finish": "took place on 12 January 2009.", "u2f__get": "Increase and retrieve the U2F counter?", "u2f__set_template": "Set the U2F counter to {0}?", "u2f__title_get": "Get U2F counter", @@ -855,6 +903,7 @@ "words__error": "Error", "words__fee": "Fee", "words__from": "from", + "words__good_to_know": "Good to know", "words__important": "Important", "words__instructions": "Instructions", "words__keep_it_safe": "Keep it safe!", @@ -862,11 +911,13 @@ "words__my_trezor": "My Trezor", "words__no": "No", "words__not_recommended": "Not recommended!", + "words__operation_cancelled": "Operation cancelled", "words__outputs": "outputs", "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__settings": "Settings", "words__sign": "Sign", "words__signer": "Signer", "words__title_check": "Check", @@ -878,6 +929,7 @@ "words__title_success": "Success", "words__title_summary": "Summary", "words__title_threshold": "Threshold", + "words__try_again": "Try again.", "words__unknown": "Unknown", "words__warning": "Warning", "words__writable": "Writable", diff --git a/core/translations/order.json b/core/translations/order.json index c24bf027a4..310497d629 100644 --- a/core/translations/order.json +++ b/core/translations/order.json @@ -877,5 +877,57 @@ "875": "instructions__hold_to_sign", "876": "confirm_total__fee_rate", "877": "send__incl_transaction_fee", - "878": "send__total_amount" + "878": "send__total_amount", + "879": "auto_lock__turned_on", + "880": "backup__info_multi_share_backup", + "881": "backup__info_single_share_backup", + "882": "backup__title_backup_completed", + "883": "backup__title_create_wallet_backup", + "884": "haptic_feedback__disable", + "885": "haptic_feedback__enable", + "886": "haptic_feedback__subtitle", + "887": "haptic_feedback__title", + "888": "instructions__continue_holding", + "889": "instructions__enter_next_share", + "890": "instructions__hold_to_continue", + "891": "instructions__hold_to_exit_tutorial", + "892": "instructions__hold_to_finish_tutorial", + "893": "instructions__learn_more", + "894": "instructions__shares_continue_with_x_template", + "895": "instructions__shares_start_with_1", + "896": "instructions__tap_to_start", + "897": "passphrase__title_passphrase", + "898": "recovery__dry_run_backup_not_on_this_device", + "899": "recovery__dry_run_invalid_backup_entered", + "900": "recovery__dry_run_slip39_valid_all_shares", + "901": "recovery__dry_run_slip39_valid_share", + "902": "recovery__dry_run_verify_remaining_shares", + "903": "recovery__enter_each_word", + "904": "recovery__info_about_disconnect", + "905": "recovery__share_does_not_match", + "906": "reset__cancel_create_wallet", + "907": "reset__incorrect_word_selected", + "908": "reset__more_at", + "909": "reset__num_of_shares_how_many", + "910": "reset__num_of_shares_long_info", + "911": "reset__select_threshold", + "912": "reset__share_completed_template", + "913": "reset__slip39_checklist_num_shares_x_template", + "914": "reset__slip39_checklist_threshold_x_template", + "915": "send__transaction_signed", + "916": "tutorial__continue", + "917": "tutorial__exit", + "918": "tutorial__first_transaction_finish", + "919": "tutorial__first_transaction_intro", + "920": "tutorial__menu", + "921": "tutorial__one_more_step", + "922": "tutorial__ready_to_use_safe5", + "923": "tutorial__subtitle_safe5", + "924": "tutorial__swipe_up_and_down", + "925": "tutorial__title_navigation", + "926": "tutorial__welcome_safe5", + "927": "words__good_to_know", + "928": "words__operation_cancelled", + "929": "words__settings", + "930": "words__try_again" } diff --git a/core/translations/signatures.json b/core/translations/signatures.json index 626bf5fa71..0c2086a5d2 100644 --- a/core/translations/signatures.json +++ b/core/translations/signatures.json @@ -1,8 +1,8 @@ { "current": { - "merkle_root": "329b06dbf2564bf17ba46d2b3304f91df15abc42794763a55ea33bc04281ac42", - "datetime": "2024-05-20T15:37:23.831427", - "commit": "2a5dc6f8d54701e86c32451fb154d3e40a778ca9" + "merkle_root": "070867d6d288bb46d1eb69dd95bc6d7b6fc09a3f299c75e997d756e7915860d6", + "datetime": "2024-05-22T11:43:31.930638", + "commit": "6bd6027a57b814483947f98aeb118a15f846e3bb" }, "history": [ { diff --git a/tests/persistence_tests/test_shamir_persistence.py b/tests/persistence_tests/test_shamir_persistence.py index 53553d8399..709599f9c5 100644 --- a/tests/persistence_tests/test_shamir_persistence.py +++ b/tests/persistence_tests/test_shamir_persistence.py @@ -179,7 +179,7 @@ def test_recovery_multiple_resets(core_emulator: Emulator): expected_text = "You have entered" debug = _restart(device_handler, core_emulator) - assert "Wallet recovered successfully" in layout.text_content() + assert "Wallet recovery completed" in layout.text_content() device_handler = BackgroundDeviceHandler(core_emulator.client) debug = device_handler.debuglink() diff --git a/tests/upgrade_tests/test_firmware_upgrades.py b/tests/upgrade_tests/test_firmware_upgrades.py index c536296f56..a878b46ff0 100644 --- a/tests/upgrade_tests/test_firmware_upgrades.py +++ b/tests/upgrade_tests/test_firmware_upgrades.py @@ -326,7 +326,7 @@ def test_upgrade_shamir_recovery(gen: str, tag: Optional[str]): # last one layout = recovery_old.enter_share(debug, MNEMONIC_SLIP39_BASIC_20_3of6[1]) assert ( - "Wallet recovered successfully" in layout.text_content() + "Wallet recovery completed" in layout.text_content() or "finished recovering" in layout.text_content() )