1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-02-22 12:32:02 +00:00

WIP - translate Solana

This commit is contained in:
grdddj 2024-01-03 12:43:42 +01:00
parent a969b47f89
commit 687e84a8e4
14 changed files with 303 additions and 62 deletions

View File

@ -113,6 +113,7 @@
"access": "PŘÍSTUP",
"again": "ZNOVU",
"allow": "DOVOLIT",
"back": "ZADNÍ",
"back_up": "ZÁLOHOVAT",
"cancel": "ZRUŠIT",
"change": "ZMĚNIT",
@ -140,6 +141,7 @@
"select": "VYBRAT",
"set": "NASTAVIT",
"show_all": "UKÁZAT VŠE",
"show_details": "UKÁZAT DETAILY",
"show_words": "UKÁZAT SLOVA",
"skip": "PŘESKOČIT",
"try_again": "ZKUSIT ZNOVU",
@ -791,8 +793,22 @@
"message_size": "Velikost zprávy:",
"verify_address": "Ověřte adresu"
},
"solana": {
"account_index": "Index účtu",
"associated_token_account": "Přidružený účet tokenů",
"confirm_multisig": "Potvrďte multisig",
"expected_fee": "Očekávaný poplatek",
"instruction_accounts_template": "Instrukce obsahuje {} účty a její data jsou {} bajty dlouhé.",
"instruction_data": "Instruktážní data",
"instruction_is_multisig": "Následující instrukce je instrukce multisig.",
"is_provided_via_lookup_table_template": "{} je poskytován prostřednictvím vyhledávací tabulky.",
"lookup_table_address": "Adresa tabulky vyhledávání",
"multiple_signers": "Více signatářů",
"token_address": "Adresa tokenů",
"transaction_contains_unknown_instructions": "Transakce obsahuje neznámé pokyny.",
"transaction_requires_x_signers_template": "Transakce vyžaduje {} signatáři, který zvyšuje poplatek."
},
"stellar": {
"account": "Účet",
"account_merge": "Sloučení účtů",
"account_thresholds": "Práhové hodnoty účtu",
"add_signer": "Přidat podepisovatele",
@ -924,8 +940,10 @@
"title": "POČET SLOV"
},
"words": {
"account": "Účet",
"are_you_sure": "Jste si jisti?",
"array_of": "Pole o",
"blockhash": "Blockhash",
"buying": "Koupit",
"confirm": "Potvrdit",
"contains": "Obsahuje",
@ -940,7 +958,9 @@
"please_check_again": "Zkontrolujte to prosím znovu",
"please_try_again": "Zkuste to prosím znovu",
"really_wanna": "Opravdu chcete",
"recipient": "Příjemce",
"sign": "Podepsat",
"signer": "Signer",
"title_check": "KONTROLA",
"title_group": "SKUPINA",
"title_information": "INFORMACE",
@ -951,7 +971,8 @@
"title_summary": "SHRNUTÍ",
"title_threshold": "PRÁH",
"unknown": "Neznámý",
"warning": "Varování"
"warning": "Varování",
"writable": "Zapisovatelný"
}
}
}

View File

@ -83,6 +83,7 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
buttons__access: "PŘÍSTUP",
buttons__again: "ZNOVU",
buttons__allow: "DOVOLIT",
buttons__back: "ZADNÍ",
buttons__back_up: "ZÁLOHOVAT",
buttons__cancel: "ZRUŠIT",
buttons__change: "ZMĚNIT",
@ -110,6 +111,7 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
buttons__select: "VYBRAT",
buttons__set: "NASTAVIT",
buttons__show_all: "UKÁZAT VŠE",
buttons__show_details: "UKÁZAT DETAILY",
buttons__show_words: "UKÁZAT SLOVA",
buttons__skip: "PŘESKOČIT",
buttons__try_again: "ZKUSIT ZNOVU",
@ -692,7 +694,19 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
sign_message__confirm_message: "POTVRDIT ZPRÁVU",
sign_message__message_size: "Velikost zprávy:",
sign_message__verify_address: "Ověřte adresu",
stellar__account: "Účet",
solana__account_index: "Index účtu",
solana__associated_token_account: "Přidružený účet tokenů",
solana__confirm_multisig: "Potvrďte multisig",
solana__expected_fee: "Očekávaný poplatek",
solana__instruction_accounts_template: "Instrukce obsahuje {} účty a její data jsou {} bajty dlouhé.",
solana__instruction_data: "Instruktážní data",
solana__instruction_is_multisig: "Následující instrukce je instrukce multisig.",
solana__is_provided_via_lookup_table_template: "{} je poskytován prostřednictvím vyhledávací tabulky.",
solana__lookup_table_address: "Adresa tabulky vyhledávání",
solana__multiple_signers: "Více signatářů",
solana__token_address: "Adresa tokenů",
solana__transaction_contains_unknown_instructions: "Transakce obsahuje neznámé pokyny.",
solana__transaction_requires_x_signers_template: "Transakce vyžaduje {} signatáři, který zvyšuje poplatek.",
stellar__account_merge: "Sloučení účtů",
stellar__account_thresholds: "Práhové hodnoty účtu",
stellar__add_signer: "Přidat podepisovatele",
@ -810,8 +824,10 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
wipe_code__turn_on: "Zapnout ochranu kódem pro vymazání?",
wipe_code__wipe_code_mismatch: "NESHODA KÓDU PRO VYMAZÁNÍ",
word_count__title: "POČET SLOV",
words__account: "Účet",
words__are_you_sure: "Jste si jisti?",
words__array_of: "Pole o",
words__blockhash: "Blockhash",
words__buying: "Koupit",
words__confirm: "Potvrdit",
words__contains: "Obsahuje",
@ -826,7 +842,9 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
words__please_check_again: "Zkontrolujte to prosím znovu",
words__please_try_again: "Zkuste to prosím znovu",
words__really_wanna: "Opravdu chcete",
words__recipient: "Příjemce",
words__sign: "Podepsat",
words__signer: "Signer",
words__title_check: "KONTROLA",
words__title_group: "SKUPINA",
words__title_information: "INFORMACE",
@ -838,4 +856,5 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
words__title_threshold: "PRÁH",
words__unknown: "Neznámý",
words__warning: "Varování",
words__writable: "Zapisovatelný",
};

View File

@ -95,6 +95,7 @@
"access": "ACCESS",
"again": "AGAIN",
"allow": "ALLOW",
"back": "BACK",
"back_up": "BACK UP",
"cancel": "CANCEL",
"change": "CHANGE",
@ -122,6 +123,7 @@
"select": "SELECT",
"set": "SET",
"show_all": "SHOW ALL",
"show_details": "SHOW DETAILS",
"show_words": "SHOW WORDS",
"skip": "SKIP",
"try_again": "TRY AGAIN",
@ -773,8 +775,22 @@
"message_size": "Message size:",
"verify_address": "VERIFY ADDRESS"
},
"solana": {
"account_index": "Account index",
"associated_token_account": "Associated token account",
"confirm_multisig": "Confirm multisig",
"expected_fee": "Expected fee",
"instruction_accounts_template": "Instruction contains {} accounts and its data is {} bytes long.",
"instruction_data": "Instruction data",
"instruction_is_multisig": "The following instruction is a multisig instruction.",
"is_provided_via_lookup_table_template": "{} is provided via a lookup table.",
"lookup_table_address": "Lookup table address",
"multiple_signers": "Multiple signers",
"token_address": "Token address",
"transaction_contains_unknown_instructions": "Transaction contains unknown instructions.",
"transaction_requires_x_signers_template": "Transaction requires {} signers which increases the fee."
},
"stellar": {
"account": "Account",
"account_merge": "Account Merge",
"account_thresholds": "Account Thresholds",
"add_signer": "Add Signer",
@ -782,8 +798,10 @@
"all_will_be_sent_to": "All XLM will be sent to:",
"allow_trust": "Allow trust",
"asset": "Asset",
"balance_id": "Balance ID",
"bump_sequence": "Bump Sequence",
"buying": "Buying:",
"claim_claimable_balance": "Claim Claimable Balance",
"clear_data": "Clear data",
"clear_flags": "Clear flags",
"confirm_issuer": "Confirm Issuer",
@ -906,14 +924,17 @@
"title": "NUMBER OF WORDS"
},
"words": {
"account": "Account",
"are_you_sure": "Are you sure?",
"array_of": "Array of",
"blockhash": "Blockhash",
"buying": "Buying",
"confirm": "Confirm",
"contains": "Contains",
"continue_anyway": "Continue anyway?",
"continue_with": "Continue with",
"error": "Error",
"fee": "Fee",
"from": "from",
"keep_it_safe": "Keep it safe!",
"know_what_your_doing": "Continue only if you know what you are doing!",
@ -922,7 +943,9 @@
"please_check_again": "Please check again",
"please_try_again": "Please try again",
"really_wanna": "Do you really want to",
"recipient": "Recipient",
"sign": "Sign",
"signer": "Signer",
"title_check": "CHECK",
"title_group": "GROUP",
"title_information": "INFORMATION",
@ -933,7 +956,8 @@
"title_summary": "SUMMARY",
"title_threshold": "THRESHOLD",
"unknown": "Unknown",
"warning": "Warning"
"warning": "Warning",
"writable": "Writable"
}
}
}

View File

@ -80,6 +80,7 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
buttons__access: "ACCESS",
buttons__again: "AGAIN",
buttons__allow: "ALLOW",
buttons__back: "BACK",
buttons__back_up: "BACK UP",
buttons__cancel: "CANCEL",
buttons__change: "CHANGE",
@ -107,6 +108,7 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
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",
@ -689,7 +691,19 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
sign_message__confirm_message: "CONFIRM MESSAGE",
sign_message__message_size: "Message size:",
sign_message__verify_address: "VERIFY ADDRESS",
stellar__account: "Account",
solana__account_index: "Account index",
solana__associated_token_account: "Associated token account",
solana__confirm_multisig: "Confirm multisig",
solana__expected_fee: "Expected fee",
solana__instruction_accounts_template: "Instruction contains {} accounts and its data is {} bytes long.",
solana__instruction_data: "Instruction data",
solana__instruction_is_multisig: "The following instruction is a multisig instruction.",
solana__is_provided_via_lookup_table_template: "{} is provided via a lookup table.",
solana__lookup_table_address: "Lookup table address",
solana__multiple_signers: "Multiple signers",
solana__token_address: "Token address",
solana__transaction_contains_unknown_instructions: "Transaction contains unknown instructions.",
solana__transaction_requires_x_signers_template: "Transaction requires {} signers which increases the fee.",
stellar__account_merge: "Account Merge",
stellar__account_thresholds: "Account Thresholds",
stellar__add_signer: "Add Signer",
@ -697,8 +711,10 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
stellar__all_will_be_sent_to: "All XLM will be sent to:",
stellar__allow_trust: "Allow trust",
stellar__asset: "Asset",
stellar__balance_id: "Balance ID",
stellar__bump_sequence: "Bump Sequence",
stellar__buying: "Buying:",
stellar__claim_claimable_balance: "Claim Claimable Balance",
stellar__clear_data: "Clear data",
stellar__clear_flags: "Clear flags",
stellar__confirm_issuer: "Confirm Issuer",
@ -807,14 +823,17 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
wipe_code__turn_on: "Turn on wipe code protection?",
wipe_code__wipe_code_mismatch: "Wipe code mismatch",
word_count__title: "NUMBER OF WORDS",
words__account: "Account",
words__are_you_sure: "Are you sure?",
words__array_of: "Array of",
words__blockhash: "Blockhash",
words__buying: "Buying",
words__confirm: "Confirm",
words__contains: "Contains",
words__continue_anyway: "Continue anyway?",
words__continue_with: "Continue with",
words__error: "Error",
words__fee: "Fee",
words__from: "from",
words__keep_it_safe: "Keep it safe!",
words__know_what_your_doing: "Continue only if you know what you are doing!",
@ -823,7 +842,9 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
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__sign: "Sign",
words__signer: "Signer",
words__title_check: "CHECK",
words__title_group: "GROUP",
words__title_information: "INFORMATION",
@ -835,4 +856,5 @@ pub const EN_TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
words__title_threshold: "THRESHOLD",
words__unknown: "Unknown",
words__warning: "Warning",
words__writable: "Writable",
};

View File

@ -91,6 +91,7 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// buttons__access: str
/// buttons__again: str
/// buttons__allow: str
/// buttons__back: str
/// buttons__back_up: str
/// buttons__cancel: str
/// buttons__change: str
@ -118,6 +119,7 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// buttons__select: str
/// buttons__set: str
/// buttons__show_all: str
/// buttons__show_details: str
/// buttons__show_words: str
/// buttons__skip: str
/// buttons__try_again: str
@ -700,7 +702,19 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// sign_message__confirm_message: str
/// sign_message__message_size: str
/// sign_message__verify_address: str
/// stellar__account: str
/// solana__account_index: str
/// solana__associated_token_account: str
/// solana__confirm_multisig: str
/// solana__expected_fee: str
/// solana__instruction_accounts_template: str
/// solana__instruction_data: str
/// solana__instruction_is_multisig: str
/// solana__is_provided_via_lookup_table_template: str
/// solana__lookup_table_address: str
/// solana__multiple_signers: str
/// solana__token_address: str
/// solana__transaction_contains_unknown_instructions: str
/// solana__transaction_requires_x_signers_template: str
/// stellar__account_merge: str
/// stellar__account_thresholds: str
/// stellar__add_signer: str
@ -708,8 +722,10 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// stellar__all_will_be_sent_to: str
/// stellar__allow_trust: str
/// stellar__asset: str
/// stellar__balance_id: str
/// stellar__bump_sequence: str
/// stellar__buying: str
/// stellar__claim_claimable_balance: str
/// stellar__clear_data: str
/// stellar__clear_flags: str
/// stellar__confirm_issuer: str
@ -818,14 +834,17 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// wipe_code__turn_on: str
/// wipe_code__wipe_code_mismatch: str
/// word_count__title: str
/// words__account: str
/// words__are_you_sure: str
/// words__array_of: str
/// words__blockhash: str
/// words__buying: str
/// words__confirm: str
/// words__contains: str
/// words__continue_anyway: str
/// words__continue_with: str
/// words__error: str
/// words__fee: str
/// words__from: str
/// words__keep_it_safe: str
/// words__know_what_your_doing: str
@ -834,7 +853,9 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// words__please_check_again: str
/// words__please_try_again: str
/// words__really_wanna: str
/// words__recipient: str
/// words__sign: str
/// words__signer: str
/// words__title_check: str
/// words__title_group: str
/// words__title_information: str
@ -846,5 +867,6 @@ pub static mp_module_trezortranslate: Module = obj_module! {
/// words__title_threshold: str
/// words__unknown: str
/// words__warning: str
/// words__writable: str
Qstr::MP_QSTR_TR => TR_OBJ.as_obj(),
};

View File

@ -113,6 +113,7 @@
"access": "ACCÉDER",
"again": "ENCORE",
"allow": "PERMETTRE",
"back": "DOS",
"back_up": "SAUVEGARDE",
"cancel": "ANNULER",
"change": "CHANGEMENT",
@ -140,6 +141,7 @@
"select": "SÉLECTIONNER",
"set": "ENSEMBLE",
"show_all": "AFFICHER TOUT",
"show_details": "AFFICHER LES DÉTAILS",
"show_words": "MONTRER DES MOTS",
"skip": "SAUTER",
"try_again": "ESSAYER À NOUVEAU",
@ -791,8 +793,22 @@
"message_size": "Taille du message:",
"verify_address": "Vérifier l'adresse"
},
"solana": {
"account_index": "Indice du compte",
"associated_token_account": "Compte de jeton associé",
"confirm_multisig": "Confirmer Multisig",
"expected_fee": "Frais attendus",
"instruction_accounts_template": "L'instruction contient des comptes {} et ses données sont {} octets longs.",
"instruction_data": "Données d'instructions",
"instruction_is_multisig": "L'instruction suivante est une instruction multisig.",
"is_provided_via_lookup_table_template": "{} est fourni via une table de recherche.",
"lookup_table_address": "Adresse de table de recherche",
"multiple_signers": "Signataires multiples",
"token_address": "Adresse de jeton",
"transaction_contains_unknown_instructions": "La transaction contient des instructions inconnues.",
"transaction_requires_x_signers_template": "La transaction nécessite des signataires {} qui augmentent les frais."
},
"stellar": {
"account": "Compte",
"account_merge": "Fusion du compte",
"account_thresholds": "Seuils de compte",
"add_signer": "Ajouter le signataire",
@ -924,8 +940,10 @@
"title": "NOMBRE DE MOTS"
},
"words": {
"account": "Compte",
"are_you_sure": "Es-tu sûr?",
"array_of": "Tableau de",
"blockhash": "Blockhash",
"buying": "Achat",
"confirm": "Confirmer",
"contains": "contient",
@ -940,7 +958,9 @@
"please_check_again": "Veuillez vérifier à nouveau",
"please_try_again": "Veuillez réessayer",
"really_wanna": "Voulez-vous vraiment",
"recipient": "Destinataire",
"sign": "Signe",
"signer": "Signataire",
"title_check": "VÉRIFIER",
"title_group": "GROUPE",
"title_information": "INFORMATION",
@ -951,7 +971,8 @@
"title_summary": "RÉSUMÉ",
"title_threshold": "SEUIL",
"unknown": "Inconnu",
"warning": "Avertissement"
"warning": "Avertissement",
"writable": "Scrutin"
}
}
}

View File

@ -83,6 +83,7 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
buttons__access: "ACCÉDER",
buttons__again: "ENCORE",
buttons__allow: "PERMETTRE",
buttons__back: "DOS",
buttons__back_up: "SAUVEGARDE",
buttons__cancel: "ANNULER",
buttons__change: "CHANGEMENT",
@ -110,6 +111,7 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
buttons__select: "SÉLECTIONNER",
buttons__set: "ENSEMBLE",
buttons__show_all: "AFFICHER TOUT",
buttons__show_details: "AFFICHER LES DÉTAILS",
buttons__show_words: "MONTRER DES MOTS",
buttons__skip: "SAUTER",
buttons__try_again: "ESSAYER À NOUVEAU",
@ -692,7 +694,19 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
sign_message__confirm_message: "Confirmer le message",
sign_message__message_size: "Taille du message:",
sign_message__verify_address: "Vérifier l'adresse",
stellar__account: "Compte",
solana__account_index: "Indice du compte",
solana__associated_token_account: "Compte de jeton associé",
solana__confirm_multisig: "Confirmer Multisig",
solana__expected_fee: "Frais attendus",
solana__instruction_accounts_template: "L'instruction contient des comptes {} et ses données sont {} octets longs.",
solana__instruction_data: "Données d'instructions",
solana__instruction_is_multisig: "L'instruction suivante est une instruction multisig.",
solana__is_provided_via_lookup_table_template: "{} est fourni via une table de recherche.",
solana__lookup_table_address: "Adresse de table de recherche",
solana__multiple_signers: "Signataires multiples",
solana__token_address: "Adresse de jeton",
solana__transaction_contains_unknown_instructions: "La transaction contient des instructions inconnues.",
solana__transaction_requires_x_signers_template: "La transaction nécessite des signataires {} qui augmentent les frais.",
stellar__account_merge: "Fusion du compte",
stellar__account_thresholds: "Seuils de compte",
stellar__add_signer: "Ajouter le signataire",
@ -810,8 +824,10 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
wipe_code__turn_on: "Activer la protection du code d'essuyage?",
wipe_code__wipe_code_mismatch: "Effacer le décalage du code",
word_count__title: "NOMBRE DE MOTS",
words__account: "Compte",
words__are_you_sure: "Es-tu sûr?",
words__array_of: "Tableau de",
words__blockhash: "Blockhash",
words__buying: "Achat",
words__confirm: "Confirmer",
words__contains: "contient",
@ -826,7 +842,9 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
words__please_check_again: "Veuillez vérifier à nouveau",
words__please_try_again: "Veuillez réessayer",
words__really_wanna: "Voulez-vous vraiment",
words__recipient: "Destinataire",
words__sign: "Signe",
words__signer: "Signataire",
words__title_check: "VÉRIFIER",
words__title_group: "GROUPE",
words__title_information: "INFORMATION",
@ -838,4 +856,5 @@ pub const TRANSLATIONS: TranslationsGeneral = TranslationsGeneral {
words__title_threshold: "SEUIL",
words__unknown: "Inconnu",
words__warning: "Avertissement",
words__writable: "Scrutin",
};

View File

@ -677,7 +677,6 @@ pub struct TranslationsGeneral {
pub sign_message__confirm_message: &'static str,
pub sign_message__message_size: &'static str,
pub sign_message__verify_address: &'static str,
pub stellar__account: &'static str,
pub stellar__account_merge: &'static str,
pub stellar__account_thresholds: &'static str,
pub stellar__add_signer: &'static str,
@ -834,6 +833,29 @@ pub struct TranslationsGeneral {
pub plurals__lock_after_x_minutes: &'static str,
pub plurals__lock_after_x_seconds: &'static str,
pub words__confirm: &'static str,
pub buttons__back: &'static str,
pub buttons__show_details: &'static str,
pub solana__account_index: &'static str,
pub solana__associated_token_account: &'static str,
pub solana__confirm_multisig: &'static str,
pub solana__expected_fee: &'static str,
pub solana__instruction_accounts_template: &'static str,
pub solana__instruction_data: &'static str,
pub solana__instruction_is_multisig: &'static str,
pub solana__is_provided_via_lookup_table_template: &'static str,
pub solana__lookup_table_address: &'static str,
pub solana__multiple_signers: &'static str,
pub solana__token_address: &'static str,
pub solana__transaction_contains_unknown_instructions: &'static str,
pub solana__transaction_requires_x_signers_template: &'static str,
pub stellar__balance_id: &'static str,
pub stellar__claim_claimable_balance: &'static str,
pub words__account: &'static str,
pub words__blockhash: &'static str,
pub words__fee: &'static str,
pub words__recipient: &'static str,
pub words__signer: &'static str,
pub words__writable: &'static str,
}
#[rustfmt::skip]
@ -1520,7 +1542,6 @@ impl TranslationsGeneral {
"sign_message__confirm_message" => Some((self.sign_message__confirm_message, 672)),
"sign_message__message_size" => Some((self.sign_message__message_size, 673)),
"sign_message__verify_address" => Some((self.sign_message__verify_address, 674)),
"stellar__account" => Some((self.stellar__account, 675)),
"stellar__account_merge" => Some((self.stellar__account_merge, 676)),
"stellar__account_thresholds" => Some((self.stellar__account_thresholds, 677)),
"stellar__add_signer" => Some((self.stellar__add_signer, 678)),
@ -1677,6 +1698,29 @@ impl TranslationsGeneral {
"plurals__lock_after_x_minutes" => Some((self.plurals__lock_after_x_minutes, 829)),
"plurals__lock_after_x_seconds" => Some((self.plurals__lock_after_x_seconds, 830)),
"words__confirm" => Some((self.words__confirm, 831)),
"buttons__back" => Some((self.buttons__back, 832)),
"buttons__show_details" => Some((self.buttons__show_details, 833)),
"solana__account_index" => Some((self.solana__account_index, 834)),
"solana__associated_token_account" => Some((self.solana__associated_token_account, 835)),
"solana__confirm_multisig" => Some((self.solana__confirm_multisig, 836)),
"solana__expected_fee" => Some((self.solana__expected_fee, 837)),
"solana__instruction_accounts_template" => Some((self.solana__instruction_accounts_template, 838)),
"solana__instruction_data" => Some((self.solana__instruction_data, 839)),
"solana__instruction_is_multisig" => Some((self.solana__instruction_is_multisig, 840)),
"solana__is_provided_via_lookup_table_template" => Some((self.solana__is_provided_via_lookup_table_template, 841)),
"solana__lookup_table_address" => Some((self.solana__lookup_table_address, 842)),
"solana__multiple_signers" => Some((self.solana__multiple_signers, 843)),
"solana__token_address" => Some((self.solana__token_address, 844)),
"solana__transaction_contains_unknown_instructions" => Some((self.solana__transaction_contains_unknown_instructions, 845)),
"solana__transaction_requires_x_signers_template" => Some((self.solana__transaction_requires_x_signers_template, 846)),
"stellar__balance_id" => Some((self.stellar__balance_id, 847)),
"stellar__claim_claimable_balance" => Some((self.stellar__claim_claimable_balance, 848)),
"words__account" => Some((self.words__account, 849)),
"words__blockhash" => Some((self.words__blockhash, 850)),
"words__fee" => Some((self.words__fee, 851)),
"words__recipient" => Some((self.words__recipient, 852)),
"words__signer" => Some((self.words__signer, 853)),
"words__writable" => Some((self.words__writable, 854)),
_ => None,
}
}

View File

@ -830,5 +830,28 @@
"828": "plurals__lock_after_x_milliseconds",
"829": "plurals__lock_after_x_minutes",
"830": "plurals__lock_after_x_seconds",
"831": "words__confirm"
"831": "words__confirm",
"832": "buttons__back",
"833": "buttons__show_details",
"834": "solana__account_index",
"835": "solana__associated_token_account",
"836": "solana__confirm_multisig",
"837": "solana__expected_fee",
"838": "solana__instruction_accounts_template",
"839": "solana__instruction_data",
"840": "solana__instruction_is_multisig",
"841": "solana__is_provided_via_lookup_table_template",
"842": "solana__lookup_table_address",
"843": "solana__multiple_signers",
"844": "solana__token_address",
"845": "solana__transaction_contains_unknown_instructions",
"846": "solana__transaction_requires_x_signers_template",
"847": "stellar__balance_id",
"848": "stellar__claim_claimable_balance",
"849": "words__account",
"850": "words__blockhash",
"851": "words__fee",
"852": "words__recipient",
"853": "words__signer",
"854": "words__writable"
}

View File

@ -83,6 +83,7 @@ class TR:
buttons__access: str
buttons__again: str
buttons__allow: str
buttons__back: str
buttons__back_up: str
buttons__cancel: str
buttons__change: str
@ -110,6 +111,7 @@ class TR:
buttons__select: str
buttons__set: str
buttons__show_all: str
buttons__show_details: str
buttons__show_words: str
buttons__skip: str
buttons__try_again: str
@ -692,7 +694,19 @@ class TR:
sign_message__confirm_message: str
sign_message__message_size: str
sign_message__verify_address: str
stellar__account: str
solana__account_index: str
solana__associated_token_account: str
solana__confirm_multisig: str
solana__expected_fee: str
solana__instruction_accounts_template: str
solana__instruction_data: str
solana__instruction_is_multisig: str
solana__is_provided_via_lookup_table_template: str
solana__lookup_table_address: str
solana__multiple_signers: str
solana__token_address: str
solana__transaction_contains_unknown_instructions: str
solana__transaction_requires_x_signers_template: str
stellar__account_merge: str
stellar__account_thresholds: str
stellar__add_signer: str
@ -700,8 +714,10 @@ class TR:
stellar__all_will_be_sent_to: str
stellar__allow_trust: str
stellar__asset: str
stellar__balance_id: str
stellar__bump_sequence: str
stellar__buying: str
stellar__claim_claimable_balance: str
stellar__clear_data: str
stellar__clear_flags: str
stellar__confirm_issuer: str
@ -810,14 +826,17 @@ class TR:
wipe_code__turn_on: str
wipe_code__wipe_code_mismatch: str
word_count__title: str
words__account: str
words__are_you_sure: str
words__array_of: str
words__blockhash: str
words__buying: str
words__confirm: str
words__contains: str
words__continue_anyway: str
words__continue_with: str
words__error: str
words__fee: str
words__from: str
words__keep_it_safe: str
words__know_what_your_doing: str
@ -826,7 +845,9 @@ class TR:
words__please_check_again: str
words__please_try_again: str
words__really_wanna: str
words__recipient: str
words__sign: str
words__signer: str
words__title_check: str
words__title_group: str
words__title_information: str
@ -838,3 +859,4 @@ class TR:
words__title_threshold: str
words__unknown: str
words__warning: str
words__writable: str

View File

@ -9,6 +9,7 @@ from trezor.ui.layouts import (
confirm_solana_tx,
confirm_value,
)
from trezortranslate import TR
from apps.common.paths import address_n_to_str
@ -34,9 +35,9 @@ def _format_path(path: list[int]) -> str:
def _get_address_reference_props(address: AddressReference, display_name: str):
return (
(f"{display_name} is provided via a lookup table.", ""),
("Lookup table address:", base58.encode(address[0])),
("Account index:", f"{address[1]}"),
(TR.solana__is_provided_via_lookup_table_template.format(display_name), ""),
(f"{TR.solana__lookup_table_address}:", base58.encode(address[0])),
(f"{TR.solana__account_index}:", f"{address[1]}"),
)
@ -100,7 +101,7 @@ async def confirm_instruction(
if len(account_value) == 2:
signer_suffix = ""
if account_value[0] == signer_public_key:
signer_suffix = " (Signer)"
signer_suffix = f" ({TR.words__signer})"
account_data.append(
(
@ -126,8 +127,8 @@ async def confirm_instruction(
if instruction.multisig_signers:
await confirm_metadata(
"confirm_multisig",
"Confirm multisig",
"The following instruction is a multisig instruction.",
TR.solana__confirm_multisig,
TR.solana__instruction_is_multisig,
br_code=ButtonRequestType.Other,
)
@ -140,7 +141,7 @@ async def confirm_instruction(
path_str = f" ({address_n_to_str(signer_path)})"
signers.append(
(f"Signer {i}{path_str}:", base58.encode(multisig_signer[0]))
(f"{TR.words__signer} {i}{path_str}:", base58.encode(multisig_signer[0]))
)
await confirm_properties(
@ -152,13 +153,13 @@ async def confirm_instruction(
def get_address_type(address_type: AddressType) -> str:
if address_type == AddressType.AddressSig:
return "(Writable, Signer)"
return f"({TR.words__writable}, {TR.words__signer})"
if address_type == AddressType.AddressSigReadOnly:
return "(Signer)"
return f"({TR.words__signer})"
if address_type == AddressType.AddressReadOnly:
return ""
if address_type == AddressType.AddressRw:
return "(Writable)"
return f"({TR.words__writable})"
raise ValueError # Invalid address type
@ -176,18 +177,18 @@ async def confirm_unsupported_instruction_details(
(
(
NORMAL,
f"Instruction contains {len(instruction.accounts)} accounts and its data is {len(instruction.instruction_data)} bytes long.",
TR.solana__instruction_accounts_template.format(len(instruction.accounts), len(instruction.instruction_data)),
),
),
"Show details",
confirm="Continue",
TR.buttons__show_details,
confirm=TR.buttons__continue,
)
if should_show_instruction_details:
await confirm_properties(
"instruction_data",
title,
(("Instruction data:", bytes(instruction.instruction_data)),),
((f"{TR.solana__instruction_data}:", bytes(instruction.instruction_data)),),
)
accounts = []
@ -202,14 +203,14 @@ async def confirm_unsupported_instruction_details(
accounts.append(
(
f"Account {i}{path_str} {address_type}:",
f"{TR.words__account} {i}{path_str} {address_type}:",
base58.encode(account_public_key),
)
)
elif len(account) == 3:
address_type = get_address_type(account[2])
accounts += _get_address_reference_props(
account, f"Account {i} {address_type}"
account, f"{TR.words__account} {i} {address_type}"
)
else:
raise ValueError # Invalid account value
@ -259,12 +260,12 @@ async def confirm_system_transfer(
blockhash: bytes,
) -> None:
await confirm_value(
title="Recipient",
title=TR.words__recipient,
value=base58.encode(transfer_instruction.recipient_account[0]),
description="",
br_type="confirm_recipient",
br_code=ButtonRequestType.ConfirmOutput,
verb="CONTINUE",
verb=TR.buttons__continue,
)
await confirm_custom_transaction(
@ -288,24 +289,24 @@ async def confirm_token_transfer(
blockhash: bytes,
):
await confirm_value(
title="Recipient",
title=TR.words__recipient,
value=base58.encode(destination_account),
description="",
br_type="confirm_recipient",
br_code=ButtonRequestType.ConfirmOutput,
verb="CONTINUE",
info_items=(("Associated token account:", base58.encode(token_account)),)
verb=TR.buttons__continue,
info_items=((f"{TR.solana__associated_token_account}:", base58.encode(token_account)),)
if token_account != destination_account
else None,
)
await confirm_value(
title="Token address",
title=TR.solana__token_address,
value=base58.encode(token_mint),
description="",
br_type="confirm_token_address",
br_code=ButtonRequestType.ConfirmOutput,
verb="CONTINUE",
verb=TR.buttons__continue,
)
await confirm_custom_transaction(
@ -329,10 +330,10 @@ async def confirm_custom_transaction(
await confirm_solana_tx(
amount=f"{format_amount(amount, decimals)} {unit}",
fee=f"{format_amount(fee, 9)} SOL",
fee_title="Expected fee:",
fee_title=f"{TR.solana__expected_fee}:",
items=(
("Account:", _format_path(signer_path)),
("Blockhash:", base58.encode(blockhash)),
(f"{TR.words__account}:", _format_path(signer_path)),
(f"{TR.words__blockhash}:", base58.encode(blockhash)),
),
)
@ -344,9 +345,9 @@ async def confirm_transaction(
amount="",
amount_title="",
fee=f"{format_amount(fee, 9)} SOL",
fee_title="Expected fee:",
fee_title=f"{TR.solana__expected_fee}:",
items=(
("Account:", _format_path(signer_path)),
("Blockhash:", base58.encode(blockhash)),
(f"{TR.words__account}:", _format_path(signer_path)),
(f"{TR.words__blockhash}:", base58.encode(blockhash)),
),
)

View File

@ -22,6 +22,7 @@ async def sign_tx(
from trezor.enums import ButtonRequestType
from trezor.messages import SolanaTxSignature
from trezor.ui.layouts import confirm_metadata, show_warning
from trezortranslate import TR
from apps.common import seed
@ -41,14 +42,14 @@ async def sign_tx(
if transaction.blind_signing:
await show_warning(
"warning_blind_signing", "Transaction contains unknown instructions."
"warning_blind_signing", TR.solana__transaction_contains_unknown_instructions
)
if transaction.required_signers_count > 1:
await confirm_metadata(
"multiple_signers",
"Multiple signers",
f"Transaction requires {transaction.required_signers_count} signers which increases the fee.",
TR.solana__multiple_signers,
TR.solana__transaction_requires_x_signers_template.format(transaction.required_signers_count),
br_code=ButtonRequestType.Other,
)

View File

@ -86,7 +86,7 @@ async def confirm_create_account_op(op: StellarCreateAccountOp) -> None:
"op_create_account",
TR.stellar__create_account,
(
(TR.stellar__account, op.new_account),
(TR.words__account, op.new_account),
(TR.stellar__initial_balance, format_amount(op.starting_balance)),
),
)
@ -281,7 +281,7 @@ async def confirm_set_options_op(op: StellarSetOptionsOp) -> None:
title = TR.stellar__remove_signer
data: str | bytes = ""
if signer_type == StellarSignerType.ACCOUNT:
description = f"{TR.stellar__account}:"
description = f"{TR.words__account}:"
data = helpers.address_from_public_key(signer_key)
elif signer_type == StellarSignerType.PRE_AUTH:
description = TR.stellar__preauth_transaction
@ -306,8 +306,8 @@ async def confirm_claim_claimable_balance_op(
balance_id = hexlify(op.balance_id).decode()
await confirm_metadata(
"op_claim_claimable_balance",
"Claim Claimable Balance",
"Balance ID: {}",
TR.stellar__claim_claimable_balance,
TR.stellar__balance_id + ": {}",
balance_id,
)

View File

@ -988,8 +988,8 @@ async def confirm_value(
trezorui2.confirm_with_info(
title=title.upper(),
items=((ui.NORMAL, value),),
button="CONFIRM",
info_button="INFO",
button=TR.buttons__confirm,
info_button=TR.buttons__info,
)
)
@ -1013,7 +1013,7 @@ async def confirm_value(
title=info_title.upper(),
action=info_value,
description=description,
verb="BACK",
verb=TR.buttons__back,
verb_cancel="<",
hold=False,
reverse=False,
@ -1061,11 +1061,13 @@ async def confirm_solana_tx(
amount: str,
fee: str,
items: Iterable[tuple[str, str]],
amount_title="Amount:",
fee_title="Fee",
amount_title: str | None = None,
fee_title: str | None = None,
br_type: str = "confirm_solana_tx",
br_code: ButtonRequestType = ButtonRequestType.SignTx,
):
amount_title = amount_title or f"{TR.words__amount}:" # def_arg
fee_title = fee_title or TR.words__fee # def_arg
await raise_if_not_confirmed(
interact(
RustLayout(
@ -1095,9 +1097,9 @@ async def confirm_ethereum_tx(
) -> None:
summary_layout = RustLayout(
trezorui2.altcoin_tx_summary(
amount_title="Amount:",
amount_title=f"{TR.words__amount}:",
amount_value=total_amount,
fee_title="Maximum fee:",
fee_title=TR.send__maximum_fee,
fee_value=maximum_fee,
items=items,
)
@ -1107,9 +1109,9 @@ async def confirm_ethereum_tx(
# Allowing going back and forth between recipient and summary/details
await confirm_blob(
br_type,
"RECIPIENT",
TR.words__recipient,
recipient,
verb="CONTINUE",
verb=TR.buttons__continue,
chunkify=chunkify,
)
@ -1178,11 +1180,11 @@ async def confirm_modify_output(
) -> None:
address_layout = RustLayout(
trezorui2.confirm_blob(
title="MODIFY AMOUNT",
title=TR.modify_amount__title,
data=address,
verb="CONTINUE",
verb=TR.buttons__continue,
verb_cancel=None,
description="Address:",
description=TR.address__address,
extra=None,
)
)