diff --git a/RadixWallet/Core/FeaturePrelude/FactorSourceCard/FactorSourceCard+DataSource.swift b/RadixWallet/Core/FeaturePrelude/FactorSourceCard/FactorSourceCard+DataSource.swift index dd5e0eeaf8..1a0adfa467 100644 --- a/RadixWallet/Core/FeaturePrelude/FactorSourceCard/FactorSourceCard+DataSource.swift +++ b/RadixWallet/Core/FeaturePrelude/FactorSourceCard/FactorSourceCard+DataSource.swift @@ -66,7 +66,7 @@ extension FactorSourceKind { case .ledgerHqHardwareWallet: L10n.FactorSources.Card.ledgerTitle case .offDeviceMnemonic: - L10n.FactorSources.Card.passphraseTitle + L10n.FactorSources.Card.offDeviceMnemonicTitle case .arculusCard: L10n.FactorSources.Card.arculusCardTitle case .password: @@ -83,7 +83,7 @@ extension FactorSourceKind { case .ledgerHqHardwareWallet: L10n.FactorSources.Card.ledgerDescription case .offDeviceMnemonic: - L10n.FactorSources.Card.passphraseDescription + L10n.FactorSources.Card.offDeviceMnemonicDescription case .arculusCard: L10n.FactorSources.Card.arculusCardDescription case .password: diff --git a/RadixWallet/Core/Resources/Generated/L10n.generated.swift b/RadixWallet/Core/Resources/Generated/L10n.generated.swift index 363ad35b20..dec2b9f51f 100644 --- a/RadixWallet/Core/Resources/Generated/L10n.generated.swift +++ b/RadixWallet/Core/Resources/Generated/L10n.generated.swift @@ -670,8 +670,8 @@ internal enum L10n { internal static let supplyIncreasableByAnyone = L10n.tr("Localizable", "assetDetails_behaviors_supplyIncreasableByAnyone", fallback: "Anyone can increase the supply of this asset.") } internal enum PoolUnitDetails { - /// You have no Pool units - internal static let noPoolUnits = L10n.tr("Localizable", "assetDetails_poolUnitDetails_noPoolUnits", fallback: "You have no Pool units") + /// You have no pool units + internal static let noPoolUnits = L10n.tr("Localizable", "assetDetails_poolUnitDetails_noPoolUnits", fallback: "You have no pool units") } internal enum Staking { /// Current Redeemable Value @@ -700,16 +700,16 @@ internal enum L10n { } } internal enum StakingDetails { - /// You have no Stakes - internal static let noStakes = L10n.tr("Localizable", "assetDetails_stakingDetails_noStakes", fallback: "You have no Stakes") + /// You have no stakes + internal static let noStakes = L10n.tr("Localizable", "assetDetails_stakingDetails_noStakes", fallback: "You have no stakes") } internal enum Tags { /// Official Radix internal static let officialRadix = L10n.tr("Localizable", "assetDetails_tags_officialRadix", fallback: "Official Radix") } internal enum TokenDetails { - /// You have no Tokens - internal static let noTokens = L10n.tr("Localizable", "assetDetails_tokenDetails_noTokens", fallback: "You have no Tokens") + /// You have no tokens + internal static let noTokens = L10n.tr("Localizable", "assetDetails_tokenDetails_noTokens", fallback: "You have no tokens") } } internal enum AssetTransfer { @@ -786,8 +786,8 @@ internal enum L10n { internal static let totalExceedsBalance = L10n.tr("Localizable", "assetTransfer_fungibleResource_totalExceedsBalance", fallback: "Total exceeds your current balance") } internal enum Header { - /// Add Message - internal static let addMessageButton = L10n.tr("Localizable", "assetTransfer_header_addMessageButton", fallback: "Add Message") + /// Add message + internal static let addMessageButton = L10n.tr("Localizable", "assetTransfer_header_addMessageButton", fallback: "Add message") /// Transfer internal static let transfer = L10n.tr("Localizable", "assetTransfer_header_transfer", fallback: "Transfer") } @@ -806,8 +806,8 @@ internal enum L10n { internal static let title = L10n.tr("Localizable", "assetTransfer_maxAmountDialog_title", fallback: "Sending All XRD") } internal enum ReceivingAccount { - /// Add Assets - internal static let addAssetsButton = L10n.tr("Localizable", "assetTransfer_receivingAccount_addAssetsButton", fallback: "Add Assets") + /// Add assets + internal static let addAssetsButton = L10n.tr("Localizable", "assetTransfer_receivingAccount_addAssetsButton", fallback: "Add assets") /// Choose Account internal static let chooseAccountButton = L10n.tr("Localizable", "assetTransfer_receivingAccount_chooseAccountButton", fallback: "Choose Account") } @@ -1029,10 +1029,10 @@ internal enum L10n { } } internal enum ConfigurationBackup { - /// You need an up-to-date Configuration Backup to recover your Accounts and Personas if you lose access to them. + /// You need an up-to-date configuration backup to recover your Accounts and Personas if you lose access to them. /// - /// Your Backup does not contain your keys or seed phrase. - internal static let heading = L10n.tr("Localizable", "configurationBackup_heading", fallback: "You need an up-to-date Configuration Backup to recover your Accounts and Personas if you lose access to them.\n\nYour Backup does not contain your keys or seed phrase.") + /// Your backup does not contain your keys or seed phrase. + internal static let heading = L10n.tr("Localizable", "configurationBackup_heading", fallback: "You need an up-to-date configuration backup to recover your Accounts and Personas if you lose access to them.\n\nYour backup does not contain your keys or seed phrase.") /// Configuration Backup internal static let title = L10n.tr("Localizable", "configurationBackup_title", fallback: "Configuration Backup") internal enum Automated { @@ -1094,8 +1094,8 @@ internal enum L10n { internal static let walletTransferredTitle = L10n.tr("Localizable", "configurationBackup_automated_walletTransferredTitle", fallback: "Wallet Control Has Been Transferred") /// Transfer Control Back to This Phone internal static let walletTransferredTransferBackButton = L10n.tr("Localizable", "configurationBackup_automated_walletTransferredTransferBackButton", fallback: "Transfer Control Back to This Phone") - /// Without an updated Configuration Backup, you cannot recover your Accounts and Personas. - internal static let warning = L10n.tr("Localizable", "configurationBackup_automated_warning", fallback: "Without an updated Configuration Backup, you cannot recover your Accounts and Personas.") + /// Without an updated configuration backup, you cannot recover your Accounts and Personas. + internal static let warning = L10n.tr("Localizable", "configurationBackup_automated_warning", fallback: "Without an updated configuration backup, you cannot recover your Accounts and Personas.") } internal enum Manual { /// Export Backup File @@ -1106,10 +1106,10 @@ internal enum L10n { internal static func lastBackup(_ p1: Any) -> String { return L10n.tr("Localizable", "configurationBackup_manual_lastBackup", String(describing: p1), fallback: "Last backup: %@") } - /// You can export your own Configuration Backup file and save it locally - internal static let text = L10n.tr("Localizable", "configurationBackup_manual_text", fallback: "You can export your own Configuration Backup file and save it locally") - /// You’ll need to export a new Backup file each time you make a change in your wallet. - internal static let warning = L10n.tr("Localizable", "configurationBackup_manual_warning", fallback: "You’ll need to export a new Backup file each time you make a change in your wallet.") + /// You can export your own configuration backup file and save it locally + internal static let text = L10n.tr("Localizable", "configurationBackup_manual_text", fallback: "You can export your own configuration backup file and save it locally") + /// You’ll need to export a new backup file each time you make a change in your wallet. + internal static let warning = L10n.tr("Localizable", "configurationBackup_manual_warning", fallback: "You’ll need to export a new backup file each time you make a change in your wallet.") } } internal enum ConfirmMnemonicBackedUp { @@ -1834,9 +1834,9 @@ internal enum L10n { return L10n.tr("Localizable", "factorSources_card_linkedAccountsOrPersonasSomeHidden", String(describing: p1), fallback: "Linked to %@ (and some hidden)") } /// Enter a seed phrase to approve - internal static let passphraseDescription = L10n.tr("Localizable", "factorSources_card_passphraseDescription", fallback: "Enter a seed phrase to approve") + internal static let offDeviceMnemonicDescription = L10n.tr("Localizable", "factorSources_card_offDeviceMnemonicDescription", fallback: "Enter a seed phrase to approve") /// Mnemonic - internal static let passphraseTitle = L10n.tr("Localizable", "factorSources_card_passphraseTitle", fallback: "Mnemonic") + internal static let offDeviceMnemonicTitle = L10n.tr("Localizable", "factorSources_card_offDeviceMnemonicTitle", fallback: "Mnemonic") /// Enter a decentralized password to approve internal static let passwordDescription = L10n.tr("Localizable", "factorSources_card_passwordDescription", fallback: "Enter a decentralized password to approve") /// Password @@ -1909,10 +1909,10 @@ internal enum L10n { internal static let ledgerAdd = L10n.tr("Localizable", "factorSources_list_ledgerAdd", fallback: "Add New Ledger Nano") /// This factor has been lost internal static let lostFactorSource = L10n.tr("Localizable", "factorSources_list_lostFactorSource", fallback: "This factor has been lost") + /// Add New Passphrase + internal static let offDeviceMnemonicAdd = L10n.tr("Localizable", "factorSources_list_offDeviceMnemonicAdd", fallback: "Add New Passphrase") /// Others internal static let others = L10n.tr("Localizable", "factorSources_list_others", fallback: "Others") - /// Add New Passphrase - internal static let passphraseAdd = L10n.tr("Localizable", "factorSources_list_passphraseAdd", fallback: "Add New Passphrase") /// Add New Password internal static let passwordAdd = L10n.tr("Localizable", "factorSources_list_passwordAdd", fallback: "Add New Password") /// Write down seed phrase to make this factor recoverable @@ -1963,8 +1963,8 @@ internal enum L10n { internal static let errorDuplicateURL = L10n.tr("Localizable", "gateways_addNewGateway_errorDuplicateURL", fallback: "This gateway is already added") /// No gateway found at specified URL internal static let errorNoGatewayFound = L10n.tr("Localizable", "gateways_addNewGateway_errorNoGatewayFound", fallback: "No gateway found at specified URL") - /// There was an error establishing a connection - internal static let establishingConnectionErrorMessage = L10n.tr("Localizable", "gateways_addNewGateway_establishingConnectionErrorMessage", fallback: "There was an error establishing a connection") + /// Error establishing connection + internal static let establishingConnectionErrorMessage = L10n.tr("Localizable", "gateways_addNewGateway_establishingConnectionErrorMessage", fallback: "Error establishing connection") /// Enter a gateway URL internal static let subtitle = L10n.tr("Localizable", "gateways_addNewGateway_subtitle", fallback: "Enter a gateway URL") /// Enter full URL @@ -2835,42 +2835,44 @@ internal enum L10n { internal enum Title { /// Learn about Arculus Cards internal static let arculus = L10n.tr("Localizable", "infoLink_title_arculus", fallback: "Learn about Arculus Cards") - /// What are behaviors? - internal static let behaviors = L10n.tr("Localizable", "infoLink_title_behaviors", fallback: "What are behaviors?") + /// Learn about behaviors + internal static let behaviors = L10n.tr("Localizable", "infoLink_title_behaviors", fallback: "Learn about behaviors") /// Learn about biometrics/PIN internal static let biometricspin = L10n.tr("Localizable", "infoLink_title_biometricspin", fallback: "Learn about biometrics/PIN") /// How your Security Shield is built internal static let buildingshield = L10n.tr("Localizable", "infoLink_title_buildingshield", fallback: "How your Security Shield is built") - /// What is a dApp? - internal static let dapps = L10n.tr("Localizable", "infoLink_title_dapps", fallback: "What is a dApp?") - /// What is a Gateway? - internal static let gateways = L10n.tr("Localizable", "infoLink_title_gateways", fallback: "What is a Gateway?") - /// How do guarantees work? - internal static let guarantees = L10n.tr("Localizable", "infoLink_title_guarantees", fallback: "How do guarantees work?") + /// Learn about dApps + internal static let dapps = L10n.tr("Localizable", "infoLink_title_dapps", fallback: "Learn about dApps") + /// Learn about gateways + internal static let gateways = L10n.tr("Localizable", "infoLink_title_gateways", fallback: "Learn about gateways") + /// Learn how guarantees work + internal static let guarantees = L10n.tr("Localizable", "infoLink_title_guarantees", fallback: "Learn how guarantees work") /// Learn about Ledger Nanos internal static let ledgernano = L10n.tr("Localizable", "infoLink_title_ledgernano", fallback: "Learn about Ledger Nanos") - /// What is Staking? - internal static let networkstaking = L10n.tr("Localizable", "infoLink_title_networkstaking", fallback: "What is Staking?") - /// What are NFTs? - internal static let nfts = L10n.tr("Localizable", "infoLink_title_nfts", fallback: "What are NFTs?") + /// Learn about staking + internal static let networkstaking = L10n.tr("Localizable", "infoLink_title_networkstaking", fallback: "Learn about staking") + /// Learn about NFTs + internal static let nfts = L10n.tr("Localizable", "infoLink_title_nfts", fallback: "Learn about NFTs") + /// I don’t have a hardware device + internal static let nohardwaredevice = L10n.tr("Localizable", "infoLink_title_nohardwaredevice", fallback: "I don’t have a hardware device") /// Learn about passphrases internal static let passphrases = L10n.tr("Localizable", "infoLink_title_passphrases", fallback: "Learn about passphrases") /// Learn about passwords internal static let passwords = L10n.tr("Localizable", "infoLink_title_passwords", fallback: "Learn about passwords") - /// What is a Persona? - internal static let personas = L10n.tr("Localizable", "infoLink_title_personas", fallback: "What is a Persona?") + /// Learn about Personas + internal static let personas = L10n.tr("Localizable", "infoLink_title_personas", fallback: "Learn about Personas") /// Learn about Personas internal static let personasLearnAbout = L10n.tr("Localizable", "infoLink_title_personasLearnAbout", fallback: "Learn about Personas") - /// What are Pool units? - internal static let poolunits = L10n.tr("Localizable", "infoLink_title_poolunits", fallback: "What are Pool units?") - /// Learn more about Radix Connect - internal static let radixconnect = L10n.tr("Localizable", "infoLink_title_radixconnect", fallback: "Learn more about Radix Connect") + /// Learn about pool units + internal static let poolunits = L10n.tr("Localizable", "infoLink_title_poolunits", fallback: "Learn about pool units") + /// Learn about Radix Connect + internal static let radixconnect = L10n.tr("Localizable", "infoLink_title_radixconnect", fallback: "Learn about Radix Connect") /// Learn about Security Shields internal static let securityshields = L10n.tr("Localizable", "infoLink_title_securityshields", fallback: "Learn about Security Shields") - /// What are Tokens? - internal static let tokens = L10n.tr("Localizable", "infoLink_title_tokens", fallback: "What are Tokens?") - /// How do fees work? - internal static let transactionfee = L10n.tr("Localizable", "infoLink_title_transactionfee", fallback: "How do fees work?") + /// Learn about tokens + internal static let tokens = L10n.tr("Localizable", "infoLink_title_tokens", fallback: "Learn about tokens") + /// Learn how fees work + internal static let transactionfee = L10n.tr("Localizable", "infoLink_title_transactionfee", fallback: "Learn how fees work") } } internal enum InteractionReview { @@ -3757,14 +3759,14 @@ internal enum L10n { internal static let walletSettingsPersonas = L10n.tr("Localizable", "securityProblems_no3_walletSettingsPersonas", fallback: "Personas are not recoverable") } internal enum No5 { - /// Problem with Configuration Backup - internal static let accountCard = L10n.tr("Localizable", "securityProblems_no5_accountCard", fallback: "Problem with Configuration Backup") - /// Automated Configuration Backup not working. Check internet connection and cloud settings. - internal static let configurationBackup = L10n.tr("Localizable", "securityProblems_no5_configurationBackup", fallback: "Automated Configuration Backup not working. Check internet connection and cloud settings.") - /// Problem with Configuration Backup - internal static let personas = L10n.tr("Localizable", "securityProblems_no5_personas", fallback: "Problem with Configuration Backup") - /// Automated Configuration Backup has stopped working. Check internet and cloud settings. - internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no5_securityCenterBody", fallback: "Automated Configuration Backup has stopped working. Check internet and cloud settings.") + /// Problem with configuration backup + internal static let accountCard = L10n.tr("Localizable", "securityProblems_no5_accountCard", fallback: "Problem with configuration backup") + /// Automated configuration backup not working. Check internet connection and cloud settings. + internal static let configurationBackup = L10n.tr("Localizable", "securityProblems_no5_configurationBackup", fallback: "Automated configuration backup not working. Check internet connection and cloud settings.") + /// Problem with configuration backup + internal static let personas = L10n.tr("Localizable", "securityProblems_no5_personas", fallback: "Problem with configuration backup") + /// Automated configuration backup has stopped working. Check internet and cloud settings. + internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no5_securityCenterBody", fallback: "Automated configuration backup has stopped working. Check internet and cloud settings.") /// Your wallet is not recoverable internal static let securityCenterTitle = L10n.tr("Localizable", "securityProblems_no5_securityCenterTitle", fallback: "Your wallet is not recoverable") /// Personas are not recoverable @@ -3777,22 +3779,22 @@ internal enum L10n { internal static let configurationBackup = L10n.tr("Localizable", "securityProblems_no6_configurationBackup", fallback: "To secure your wallet, turn on automated backups or manually export backup file.") /// Your wallet is not recoverable internal static let personas = L10n.tr("Localizable", "securityProblems_no6_personas", fallback: "Your wallet is not recoverable") - /// Configuration Backup is not up to date. Create backup now. - internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no6_securityCenterBody", fallback: "Configuration Backup is not up to date. Create backup now.") + /// Configuration backup is not up to date. Create backup now. + internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no6_securityCenterBody", fallback: "Configuration backup is not up to date. Create backup now.") /// Your wallet is not recoverable internal static let securityCenterTitle = L10n.tr("Localizable", "securityProblems_no6_securityCenterTitle", fallback: "Your wallet is not recoverable") /// Personas are not recoverable internal static let walletSettingsPersonas = L10n.tr("Localizable", "securityProblems_no6_walletSettingsPersonas", fallback: "Personas are not recoverable") } internal enum No7 { - /// Configuration Backup not up to date - internal static let accountCard = L10n.tr("Localizable", "securityProblems_no7_accountCard", fallback: "Configuration Backup not up to date") - /// Configuration Backup not up to date. Turn on automated backups or manually export backup file. - internal static let configurationBackup = L10n.tr("Localizable", "securityProblems_no7_configurationBackup", fallback: "Configuration Backup not up to date. Turn on automated backups or manually export backup file.") - /// Configuration Backup not up to date - internal static let personas = L10n.tr("Localizable", "securityProblems_no7_personas", fallback: "Configuration Backup not up to date") - /// Accounts and Personas not recoverable. Create Configuration Backup now. - internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no7_securityCenterBody", fallback: "Accounts and Personas not recoverable. Create Configuration Backup now.") + /// Configuration backup not up to date + internal static let accountCard = L10n.tr("Localizable", "securityProblems_no7_accountCard", fallback: "Configuration backup not up to date") + /// Configuration backup not up to date. Turn on automated backups or manually export backup file. + internal static let configurationBackup = L10n.tr("Localizable", "securityProblems_no7_configurationBackup", fallback: "Configuration backup not up to date. Turn on automated backups or manually export backup file.") + /// Configuration backup not up to date + internal static let personas = L10n.tr("Localizable", "securityProblems_no7_personas", fallback: "Configuration backup not up to date") + /// Accounts and Personas not recoverable. Create configuration backup now. + internal static let securityCenterBody = L10n.tr("Localizable", "securityProblems_no7_securityCenterBody", fallback: "Accounts and Personas not recoverable. Create configuration backup now.") /// Your wallet is not recoverable internal static let securityCenterTitle = L10n.tr("Localizable", "securityProblems_no7_securityCenterTitle", fallback: "Your wallet is not recoverable") /// Personas are not recoverable @@ -3908,7 +3910,7 @@ internal enum L10n { /// Add Factor internal static let button = L10n.tr("Localizable", "shieldSetupPrepareFactors_addAnotherFactor_button", fallback: "Add Factor") /// Choosing a mnemonic is only recommended for advanced users - internal static let passphraseHint = L10n.tr("Localizable", "shieldSetupPrepareFactors_addAnotherFactor_passphraseHint", fallback: "Choosing a mnemonic is only recommended for advanced users") + internal static let offDeviceMnemonicHint = L10n.tr("Localizable", "shieldSetupPrepareFactors_addAnotherFactor_offDeviceMnemonicHint", fallback: "Choosing a mnemonic is only recommended for advanced users") /// You need to add **1 more factor** to begin building your Shield. internal static let subtitle = L10n.tr("Localizable", "shieldSetupPrepareFactors_addAnotherFactor_subtitle", fallback: "You need to add **1 more factor** to begin building your Shield.") /// Add Another Factor @@ -3917,8 +3919,6 @@ internal enum L10n { internal enum AddHardwareFactor { /// Add Hardware Device internal static let button = L10n.tr("Localizable", "shieldSetupPrepareFactors_addHardwareFactor_button", fallback: "Add Hardware Device") - /// I don’t have a hardware device - internal static let noDeviceButton = L10n.tr("Localizable", "shieldSetupPrepareFactors_addHardwareFactor_noDeviceButton", fallback: "I don’t have a hardware device") /// Choose a hardware device to use as a security factor in your Shield. internal static let subtitle = L10n.tr("Localizable", "shieldSetupPrepareFactors_addHardwareFactor_subtitle", fallback: "Choose a hardware device to use as a security factor in your Shield.") /// Add a Hardware Device @@ -3944,10 +3944,16 @@ internal enum L10n { /// Let’s Prepare your Factors internal static let title = L10n.tr("Localizable", "shieldSetupPrepareFactors_intro_title", fallback: "Let’s Prepare your Factors") } + internal enum Skip { + /// Skip and create an empty shield + internal static let button = L10n.tr("Localizable", "shieldSetupPrepareFactors_skip_button", fallback: "Skip and create an empty shield") + } } internal enum ShieldSetupSelectFactors { /// Build Shield internal static let buildButtonTitle = L10n.tr("Localizable", "shieldSetupSelectFactors_buildButtonTitle", fallback: "Build Shield") + /// Skip and create an empty shield + internal static let skipButtonTitle = L10n.tr("Localizable", "shieldSetupSelectFactors_skipButtonTitle", fallback: "Skip and create an empty shield") /// Choose the factors you’ll use for regular access. You’ll use **all** of these factors every time you send assets. internal static let subtitle = L10n.tr("Localizable", "shieldSetupSelectFactors_subtitle", fallback: "Choose the factors you’ll use for regular access. You’ll use **all** of these factors every time you send assets.") /// Select Factors for Regular Access @@ -3960,13 +3966,15 @@ internal enum L10n { internal static let invalidCombination = L10n.tr("Localizable", "shieldSetupStatus_invalidCombination", fallback: "You cannot create a Shield with this combination of factors. **Read more**") /// Choosing 2 factors will make your Shield more secure and reliable internal static let recommendedFactors = L10n.tr("Localizable", "shieldSetupStatus_recommendedFactors", fallback: "Choosing 2 factors will make your Shield more secure and reliable") - internal enum Authentication { + /// This combination of factors may be unsafe. **Read more** + internal static let unsafeCombination = L10n.tr("Localizable", "shieldSetupStatus_unsafeCombination", fallback: "This combination of factors may be unsafe. **Read more**") + internal enum Roles { /// You need to choose a factor to continue - internal static let atLeastOneFactor = L10n.tr("Localizable", "shieldSetupStatus_authentication_atLeastOneFactor", fallback: "You need to choose a factor to continue") + internal static let atLeastOneFactor = L10n.tr("Localizable", "shieldSetupStatus_roles_atLeastOneFactor", fallback: "You need to choose a factor to continue") } - internal enum Transactions { + internal enum SelectFactors { /// You need to select at least 1 factor for signing transactions - internal static let atLeastOneFactor = L10n.tr("Localizable", "shieldSetupStatus_transactions_atLeastOneFactor", fallback: "You need to select at least 1 factor for signing transactions") + internal static let atLeastOneFactor = L10n.tr("Localizable", "shieldSetupStatus_selectFactors_atLeastOneFactor", fallback: "You need to select at least 1 factor for signing transactions") } } internal enum ShieldWizardName { @@ -3974,6 +3982,8 @@ internal enum L10n { internal static let subtitle = L10n.tr("Localizable", "shieldWizardName_subtitle", fallback: "Give this Security Shield a name, so you can identify it later.") /// Name your Security Shield internal static let title = L10n.tr("Localizable", "shieldWizardName_title", fallback: "Name your Security Shield") + /// Security Shield name too long + internal static let tooLong = L10n.tr("Localizable", "shieldWizardName_tooLong", fallback: "Security Shield name too long") } internal enum ShieldWizardRecovery { /// Recovery @@ -4000,20 +4010,40 @@ internal enum L10n { /// Emergency Fallback internal static let title = L10n.tr("Localizable", "shieldWizardRecovery_fallback_title", fallback: "Emergency Fallback") internal enum Day { - /// Day - internal static let label = L10n.tr("Localizable", "shieldWizardRecovery_fallback_day_label", fallback: "Day") + /// 1 day + internal static let period = L10n.tr("Localizable", "shieldWizardRecovery_fallback_day_period", fallback: "1 day") } internal enum Days { /// Days internal static let label = L10n.tr("Localizable", "shieldWizardRecovery_fallback_days_label", fallback: "Days") + /// %d days + internal static func period(_ p1: Int) -> String { + return L10n.tr("Localizable", "shieldWizardRecovery_fallback_days_period", p1, fallback: "%d days") + } } internal enum Week { - /// Week - internal static let label = L10n.tr("Localizable", "shieldWizardRecovery_fallback_week_label", fallback: "Week") + /// 1 week + internal static let period = L10n.tr("Localizable", "shieldWizardRecovery_fallback_week_period", fallback: "1 week") } internal enum Weeks { /// Weeks internal static let label = L10n.tr("Localizable", "shieldWizardRecovery_fallback_weeks_label", fallback: "Weeks") + /// %d weeks + internal static func period(_ p1: Int) -> String { + return L10n.tr("Localizable", "shieldWizardRecovery_fallback_weeks_period", p1, fallback: "%d weeks") + } + } + internal enum Year { + /// 1 year + internal static let period = L10n.tr("Localizable", "shieldWizardRecovery_fallback_year_period", fallback: "1 year") + } + internal enum Years { + /// Years + internal static let label = L10n.tr("Localizable", "shieldWizardRecovery_fallback_years_label", fallback: "Years") + /// %d years + internal static func period(_ p1: Int) -> String { + return L10n.tr("Localizable", "shieldWizardRecovery_fallback_years_period", p1, fallback: "%d years") + } } } internal enum SetFallback { @@ -4075,9 +4105,13 @@ internal enum L10n { internal enum ThresholdDescription { /// All internal static let all = L10n.tr("Localizable", "shieldWizardRegularAccess_thresholdDescription_all", fallback: "All") - /// You'll need to use **%@** of the following + /// **%@** + internal static func selection(_ p1: Any) -> String { + return L10n.tr("Localizable", "shieldWizardRegularAccess_thresholdDescription_selection", String(describing: p1), fallback: "**%@**") + } + /// You'll need to use %@ of the following: internal static func title(_ p1: Any) -> String { - return L10n.tr("Localizable", "shieldWizardRegularAccess_thresholdDescription_title", String(describing: p1), fallback: "You'll need to use **%@** of the following") + return L10n.tr("Localizable", "shieldWizardRegularAccess_thresholdDescription_title", String(describing: p1), fallback: "You'll need to use %@ of the following:") } } } diff --git a/RadixWallet/Core/Resources/Resources/en.lproj/Localizable.strings b/RadixWallet/Core/Resources/Resources/en.lproj/Localizable.strings index 0f308d2c3c..3b6f8ef062 100644 --- a/RadixWallet/Core/Resources/Resources/en.lproj/Localizable.strings +++ b/RadixWallet/Core/Resources/Resources/en.lproj/Localizable.strings @@ -67,7 +67,7 @@ "assetDetails_tags" = "Tags"; "assetDetails_tags_officialRadix" = "Official Radix"; "assetDetails_associatedDapps" = "Associated dApps"; -"assetDetails_tokenDetails_noTokens" = "You have no Tokens"; +"assetDetails_tokenDetails_noTokens" = "You have no tokens"; "assetDetails_NFTDetails_noNfts" = "You have no NFTs"; "assetDetails_NFTDetails_id" = "ID"; "assetDetails_NFTDetails_name" = "Name"; @@ -76,8 +76,8 @@ "assetDetails_NFTDetails_resourceName" = "Name"; "assetDetails_NFTDetails_nftPlural" = "%d NFTs"; "assetDetails_NFTDetails_ownedOfTotal" = "%d NFTs of total supply %d"; -"assetDetails_stakingDetails_noStakes" = "You have no Stakes"; -"assetDetails_poolUnitDetails_noPoolUnits" = "You have no Pool units"; +"assetDetails_stakingDetails_noStakes" = "You have no stakes"; +"assetDetails_poolUnitDetails_noPoolUnits" = "You have no pool units"; "assetDetails_badgeDetails_noBadges" = "You have no badges"; "assetDetails_behaviors_simpleAsset" = "This is a simple asset"; "assetDetails_behaviors_supplyIncreasable" = "The supply of this asset can be increased."; @@ -252,7 +252,7 @@ "gateways_addNewGateway_addGatewayButtonTitle" = "Add Gateway"; "gateways_addNewGateway_errorDuplicateURL" = "This gateway is already added"; "gateways_addNewGateway_errorNoGatewayFound" = "No gateway found at specified URL"; -"gateways_addNewGateway_establishingConnectionErrorMessage" = "There was an error establishing a connection"; +"gateways_addNewGateway_establishingConnectionErrorMessage" = "Error establishing connection"; "gateways_removeGatewayAlert_title" = "Remove Gateway"; "gateways_removeGatewayAlert_message" = "You will no longer be able to connect to this gateway."; "authorizedDapps_title" = "Approved dApps"; @@ -672,7 +672,7 @@ Code: %@"; "assetTransfer_accountList_toLabel" = "To"; "assetTransfer_accountList_addAccountButton" = "Add Transfer"; "assetTransfer_header_transfer" = "Transfer"; -"assetTransfer_header_addMessageButton" = "Add Message"; +"assetTransfer_header_addMessageButton" = "Add message"; "assetTransfer_chooseReceivingAccount_invalidAddressError" = "Invalid address"; "assetTransfer_chooseReceivingAccount_alreadyAddedError" = "Account already added"; "assetTransfer_chooseReceivingAccount_navigationTitle" = "Choose Receiving Account"; @@ -687,7 +687,7 @@ Code: %@"; "assetTransfer_fungibleResource_totalExceedsBalance" = "Total exceeds your current balance"; "assetTransfer_fungibleResource_balance" = "Balance: %@"; "assetTransfer_receivingAccount_chooseAccountButton" = "Choose Account"; -"assetTransfer_receivingAccount_addAssetsButton" = "Add Assets"; +"assetTransfer_receivingAccount_addAssetsButton" = "Add assets"; "assetTransfer_error_wrongNetwork" = "Address is not valid on current network"; "assetTransfer_error_resourceAlreadyAdded" = "Resource already added"; "assetTransfer_error_insufficientBalance" = "Total amount exceeds your current balance"; @@ -901,15 +901,15 @@ Code: %@"; "factorSources_card_deviceDescription" = "Use phone biometrics/PIN to approve"; "factorSources_card_ledgerTitle" = "Ledger Nano"; "factorSources_card_ledgerDescription" = "Connect via USB to approve"; -"factorSources_card_passphraseTitle" = "Mnemonic"; -"factorSources_card_passphraseDescription" = "Enter a seed phrase to approve"; +"factorSources_card_offDeviceMnemonicTitle" = "Mnemonic"; +"factorSources_card_offDeviceMnemonicDescription" = "Enter a seed phrase to approve"; "factorSources_card_arculusCardTitle" = "Arculus Card"; "factorSources_card_arculusCardDescription" = "Tap to your phone to approve"; "factorSources_card_passwordTitle" = "Password"; "factorSources_card_passwordDescription" = "Enter a decentralized password to approve"; "factorSources_list_deviceAdd" = "Add Biometrics/PIN"; "factorSources_list_ledgerAdd" = "Add New Ledger Nano"; -"factorSources_list_passphraseAdd" = "Add New Passphrase"; +"factorSources_list_offDeviceMnemonicAdd" = "Add New Passphrase"; "factorSources_list_arculusCardAdd" = "Add Arculus Card"; "factorSources_list_passwordAdd" = "Add New Password"; "factorSources_list_default" = "Default"; @@ -1121,9 +1121,9 @@ Code: %@"; "securityFactors_selectFactor_title" = "Select Factor Type"; "securityFactors_selectFactor_disabled" = "Can\'t currently be used here. **Learn why**"; "configurationBackup_title" = "Configuration Backup"; -"configurationBackup_heading" = "You need an up-to-date Configuration Backup to recover your Accounts and Personas if you lose access to them.\n\nYour Backup does not contain your keys or seed phrase."; +"configurationBackup_heading" = "You need an up-to-date configuration backup to recover your Accounts and Personas if you lose access to them.\n\nYour backup does not contain your keys or seed phrase."; "configurationBackup_automated_text" = "Configuration Backup status"; -"configurationBackup_automated_warning" = "Without an updated Configuration Backup, you cannot recover your Accounts and Personas."; +"configurationBackup_automated_warning" = "Without an updated configuration backup, you cannot recover your Accounts and Personas."; "configurationBackup_automated_toggleIOS" = "Automated iCloud Backups"; "configurationBackup_automated_toggleAndroid" = "Automated Google Drive Backups"; "configurationBackup_automated_lastBackup" = "Last backup: %@"; @@ -1151,8 +1151,8 @@ Code: %@"; "configurationBackup_automated_cloudUpdatedLoginButtonAndroid" = "Login to Google Drive for Backups"; "configurationBackup_automated_cloudUpdatedSkipButtonAndroid" = "Skip for Now"; "configurationBackup_manual_heading" = "Manual backup"; -"configurationBackup_manual_text" = "You can export your own Configuration Backup file and save it locally"; -"configurationBackup_manual_warning" = "You’ll need to export a new Backup file each time you make a change in your wallet."; +"configurationBackup_manual_text" = "You can export your own configuration backup file and save it locally"; +"configurationBackup_manual_warning" = "You’ll need to export a new backup file each time you make a change in your wallet."; "configurationBackup_manual_exportButton" = "Export Backup File"; "configurationBackup_manual_lastBackup" = "Last backup: %@"; "walletSettings_title" = "Wallet Settings"; @@ -1233,24 +1233,24 @@ Code: %@"; "securityProblems_no3_seedPhrases" = "View and write down seed phrase"; "securityProblems_no3_walletSettingsPersonas" = "Personas are not recoverable"; "securityProblems_no3_personas" = "You need to write down a seed phrase"; -"securityProblems_no5_accountCard" = "Problem with Configuration Backup"; +"securityProblems_no5_accountCard" = "Problem with configuration backup"; "securityProblems_no5_securityCenterTitle" = "Your wallet is not recoverable"; -"securityProblems_no5_securityCenterBody" = "Automated Configuration Backup has stopped working. Check internet and cloud settings."; -"securityProblems_no5_configurationBackup" = "Automated Configuration Backup not working. Check internet connection and cloud settings."; +"securityProblems_no5_securityCenterBody" = "Automated configuration backup has stopped working. Check internet and cloud settings."; +"securityProblems_no5_configurationBackup" = "Automated configuration backup not working. Check internet connection and cloud settings."; "securityProblems_no5_walletSettingsPersonas" = "Personas are not recoverable"; -"securityProblems_no5_personas" = "Problem with Configuration Backup"; +"securityProblems_no5_personas" = "Problem with configuration backup"; "securityProblems_no6_accountCard" = "Your wallet is not recoverable"; "securityProblems_no6_securityCenterTitle" = "Your wallet is not recoverable"; -"securityProblems_no6_securityCenterBody" = "Configuration Backup is not up to date. Create backup now."; +"securityProblems_no6_securityCenterBody" = "Configuration backup is not up to date. Create backup now."; "securityProblems_no6_configurationBackup" = "To secure your wallet, turn on automated backups or manually export backup file."; "securityProblems_no6_walletSettingsPersonas" = "Personas are not recoverable"; "securityProblems_no6_personas" = "Your wallet is not recoverable"; -"securityProblems_no7_accountCard" = "Configuration Backup not up to date"; +"securityProblems_no7_accountCard" = "Configuration backup not up to date"; "securityProblems_no7_securityCenterTitle" = "Your wallet is not recoverable"; -"securityProblems_no7_securityCenterBody" = "Accounts and Personas not recoverable. Create Configuration Backup now."; -"securityProblems_no7_configurationBackup" = "Configuration Backup not up to date. Turn on automated backups or manually export backup file."; +"securityProblems_no7_securityCenterBody" = "Accounts and Personas not recoverable. Create configuration backup now."; +"securityProblems_no7_configurationBackup" = "Configuration backup not up to date. Turn on automated backups or manually export backup file."; "securityProblems_no7_walletSettingsPersonas" = "Personas are not recoverable"; -"securityProblems_no7_personas" = "Configuration Backup not up to date"; +"securityProblems_no7_personas" = "Configuration backup not up to date"; "securityProblems_no9_accountCard" = "Recovery required"; "securityProblems_no9_securityCenterTitle" = "Recovery required"; "securityProblems_no9_securityCenterBody" = "Enter seed phrase to recover control."; @@ -1326,18 +1326,18 @@ Code: %@"; 2. To make sure you won\'t lose access if you lose 1 of your factors, you must always have at least 2 factors options to start a Shield recovery. 3. To make sure nobody can take away your Shield by stealing just 1 factor, if you are only using 1 factor for regular access, you cannot use that factor again for recovery. And you also cannot use the same factor to both start and confirm a recovery.\n\nOnce you\'ve finalized the setup of factors for a Shield, you’ll be ready to apply it to your chosen Accounts and Personas on the [Radix Network](?glossaryAnchor=radixnetwork) with 1 or more [transactions](?glossaryAnchor=transactions)."; "infoLink_glossary_securityshields" = "## Security Shields\n\nSecurity Shields give users multi-factor access to their [Accounts](?glossaryAnchor=accounts) and [Personas](?glossaryAnchor=personas) while maintaining decentralization and full self-custody. They provide 2 critical functions. They allow users to rely on more than 1 security factor for regular access and for recoveries in the event that another security factor is lost.\n\nThe process to create a Shield is simple and once it’s finished, it can be applied to Accounts and Personas on the [Radix Network](?glossaryAnchor=radixnetwork) itself, providing robust and reliable security without compromising true trustless decentralization. There are no central servers that hold your Security Shield or secret keys – on Radix, it’s all done on the blockchain directly, so you\'re always in control. It\'s \"your keys, your crypto\", but without being stuck with 1 key you can\'t change.\n\n---\n\nShields are made up of 2 groups of factors.\n\n**Regular Access**\n\nThis part of your Security Shield defines the factors you\'ll use for normal usage, like signing [transactions](?glossaryAnchor=transactions) to withdrawing assets from your Accounts.\n\nWhen choosing your factors for regular access, consider how often you’ll be using them. If it’s every day, choose ones you can access easily. A single factor can be used, but it\'s recommended to use more than one for additional security. For example, a [password](?glossaryAnchor=passwords) is an easy second factor to add security for more sensitive Accounts.\n\nFor convenience, you\'ll also choose a single factor you\'ll use to prove ownerhip – like when you log in to [dApps](?glossaryAnchor=dapps) or if they request access to your Accounts.\n\n**Recovery**\n\nThis part of your Security Shield is made up of the factors that help you recover access to shielded Accounts and Personas in the event that you lose access to them or want to transfer control. For example, if you move your wallet to a new phone, you\'ll use the Shield\'s recovery feature to change the biometrics/PIN factor to a new one on your new phone.\n\nYou\'ll need to choose 1 or more factors that can start a recovery and 1 or more factors that can confirm the recovery. In most cases, you\'ll start and confirm the recovery in a single step, but in the worst case, a timed \"emergency fallback\" will let you start a recovery with just 1 factor and confirm it after a safe delay.\n\nYou can choose the time period for your emergency fallback factor. Make sure you choose a time period long enough that you\'ll be likely to open your [Radix Wallet](?glossaryAnchor=radixwallet) and cancel the recovery if anyone ever steals 1 of your factors and attempts to take control of your Accounts and Personas.\n\nYour Radix Wallet will help you build your Security Shield and once it’s finished, you’ll need to sign some transactions to apply it on the Radix Network to the Accounts and Personas of your choice."; -"infoLink_title_tokens" = "What are Tokens?"; -"infoLink_title_nfts" = "What are NFTs?"; -"infoLink_title_networkstaking" = "What is Staking?"; -"infoLink_title_personas" = "What is a Persona?"; +"infoLink_title_tokens" = "Learn about tokens"; +"infoLink_title_nfts" = "Learn about NFTs"; +"infoLink_title_networkstaking" = "Learn about staking"; +"infoLink_title_personas" = "Learn about Personas"; "infoLink_title_personasLearnAbout" = "Learn about Personas"; -"infoLink_title_dapps" = "What is a dApp?"; -"infoLink_title_guarantees" = "How do guarantees work?"; -"infoLink_title_poolunits" = "What are Pool units?"; -"infoLink_title_gateways" = "What is a Gateway?"; -"infoLink_title_radixconnect" = "Learn more about Radix Connect"; -"infoLink_title_transactionfee" = "How do fees work?"; -"infoLink_title_behaviors" = "What are behaviors?"; +"infoLink_title_dapps" = "Learn about dApps"; +"infoLink_title_guarantees" = "Learn how guarantees work"; +"infoLink_title_poolunits" = "Learn about pool units"; +"infoLink_title_gateways" = "Learn about gateways"; +"infoLink_title_radixconnect" = "Learn about Radix Connect"; +"infoLink_title_transactionfee" = "Learn how fees work"; +"infoLink_title_behaviors" = "Learn about behaviors"; "infoLink_title_biometricspin" = "Learn about biometrics/PIN"; "infoLink_title_ledgernano" = "Learn about Ledger Nanos"; "infoLink_title_passphrases" = "Learn about passphrases"; @@ -1345,6 +1345,7 @@ Code: %@"; "infoLink_title_passwords" = "Learn about passwords"; "infoLink_title_buildingshield" = "How your Security Shield is built"; "infoLink_title_securityshields" = "Learn about Security Shields"; +"infoLink_title_nohardwaredevice" = "I don’t have a hardware device"; "hiddenEntities_title" = "Hidden Personas & Accounts"; "hiddenEntities_text" = "You have hidden the following Personas and Accounts. They remain on the Radix Network, but while hidden, your wallet will treat them as if they don’t exist."; "hiddenEntities_personas" = "Personas"; @@ -1448,18 +1449,19 @@ Code: %@"; "shieldSetupPrepareFactors_addHardwareFactor_title" = "Add a Hardware Device"; "shieldSetupPrepareFactors_addHardwareFactor_subtitle" = "Choose a hardware device to use as a security factor in your Shield."; "shieldSetupPrepareFactors_addHardwareFactor_button" = "Add Hardware Device"; -"shieldSetupPrepareFactors_addHardwareFactor_noDeviceButton" = "I don’t have a hardware device"; "shieldSetupPrepareFactors_addAnotherFactor_title" = "Add Another Factor"; "shieldSetupPrepareFactors_addAnotherFactor_subtitle" = "You need to add **1 more factor** to begin building your Shield."; -"shieldSetupPrepareFactors_addAnotherFactor_passphraseHint" = "Choosing a mnemonic is only recommended for advanced users"; +"shieldSetupPrepareFactors_addAnotherFactor_offDeviceMnemonicHint" = "Choosing a mnemonic is only recommended for advanced users"; "shieldSetupPrepareFactors_addAnotherFactor_button" = "Add Factor"; "shieldSetupPrepareFactors_completion_title" = "Your Factors are Ready"; "shieldSetupPrepareFactors_completion_subtitleTop" = "Now let’s build your Shield."; "shieldSetupPrepareFactors_completion_subtitleBottom" = "Before it’s finished, you’ll have the chance to review it and make any changes."; "shieldSetupPrepareFactors_completion_button" = "Build Shield"; +"shieldSetupPrepareFactors_skip_button" = "Skip and create an empty shield"; "shieldSetupSelectFactors_title" = "Select Factors for Regular Access"; "shieldSetupSelectFactors_subtitle" = "Choose the factors you’ll use for regular access. You’ll use **all** of these factors every time you send assets."; "shieldSetupSelectFactors_buildButtonTitle" = "Build Shield"; +"shieldSetupSelectFactors_skipButtonTitle" = "Skip and create an empty shield"; "renameLabel_factorSource_title" = "Rename Factor Source"; "renameLabel_factorSource_subtitle" = "Enter a new name for this Factor Source"; "renameLabel_factorSource_empty" = "Factor Source name required"; @@ -1473,13 +1475,15 @@ Code: %@"; "renameLabel_account_tooLong" = "Account label too long"; "renameLabel_update" = "Update"; "renameLabel_success" = "Updated"; -"shieldSetupStatus_transactions_atLeastOneFactor" = "You need to select at least 1 factor for signing transactions"; +"shieldSetupStatus_selectFactors_atLeastOneFactor" = "You need to select at least 1 factor for signing transactions"; "shieldSetupStatus_recommendedFactors" = "Choosing 2 factors will make your Shield more secure and reliable"; "shieldSetupStatus_invalidCombination" = "You cannot create a Shield with this combination of factors. **Read more**"; -"shieldSetupStatus_authentication_atLeastOneFactor" = "You need to choose a factor to continue"; +"shieldSetupStatus_unsafeCombination" = "This combination of factors may be unsafe. **Read more**"; +"shieldSetupStatus_roles_atLeastOneFactor" = "You need to choose a factor to continue"; "shieldSetupStatus_factorCannotBeUsedByItself" = "Cannot use this factor type by itself"; "shieldWizardName_title" = "Name your Security Shield"; "shieldWizardName_subtitle" = "Give this Security Shield a name, so you can identify it later."; +"shieldWizardName_tooLong" = "Security Shield name too long"; "shieldWizardRecovery_step_title" = "Step 2 of 2"; "shieldWizardRecovery_title" = "Recovery"; "shieldWizardRecovery_start_title" = "Starting a Recovery"; @@ -1492,9 +1496,14 @@ Code: %@"; "shieldWizardRecovery_fallback_subtitle" = "Set a time period to automatically confirm recovery **WITHOUT** presenting any of the above confirmation factors."; "shieldWizardRecovery_fallback_note" = "We recommend setting this for an extended period, so you have time to notice and cancel a recovery you don’t want."; "shieldWizardRecovery_fallback_days_label" = "Days"; -"shieldWizardRecovery_fallback_day_label" = "Day"; "shieldWizardRecovery_fallback_weeks_label" = "Weeks"; -"shieldWizardRecovery_fallback_week_label" = "Week"; +"shieldWizardRecovery_fallback_years_label" = "Years"; +"shieldWizardRecovery_fallback_days_period" = "%d days"; +"shieldWizardRecovery_fallback_day_period" = "1 day"; +"shieldWizardRecovery_fallback_weeks_period" = "%d weeks"; +"shieldWizardRecovery_fallback_week_period" = "1 week"; +"shieldWizardRecovery_fallback_years_period" = "%d years"; +"shieldWizardRecovery_fallback_year_period" = "1 year"; "shieldWizardRecovery_setFallback_title" = "Emergency Fallback"; "shieldWizardRecovery_setFallback_subtitle" = "Set a time period to automatically confirm recovery **WITHOUT** presenting any confirmation factors."; "shieldWizardRecovery_setFallback_button" = "Set"; @@ -1502,7 +1511,8 @@ Code: %@"; "shieldWizardRegularAccess_title" = "Regular Access"; "shieldWizardRegularAccess_subtitle" = "Factors required to withdraw assets from Accounts."; "shieldWizardRegularAccess_combination_label" = "OR"; -"shieldWizardRegularAccess_thresholdDescription_title" = "You\'ll need to use **%@** of the following"; +"shieldWizardRegularAccess_thresholdDescription_title" = "You\'ll need to use %@ of the following:"; +"shieldWizardRegularAccess_thresholdDescription_selection" = "**%@**"; "shieldWizardRegularAccess_thresholdDescription_all" = "All"; "shieldWizardRegularAccess_override_title" = "Override (advanced)"; "shieldWizardRegularAccess_override_description" = "Or you can use the following:"; diff --git a/RadixWallet/Features/SecurityCenterFeature/SecurityFactors/FactorSourcesList+View.swift b/RadixWallet/Features/SecurityCenterFeature/SecurityFactors/FactorSourcesList+View.swift index 377ce90c3b..f8ccad25a2 100644 --- a/RadixWallet/Features/SecurityCenterFeature/SecurityFactors/FactorSourcesList+View.swift +++ b/RadixWallet/Features/SecurityCenterFeature/SecurityFactors/FactorSourcesList+View.swift @@ -107,7 +107,7 @@ private extension FactorSourcesList.State { case .ledgerHqHardwareWallet: L10n.FactorSources.List.ledgerAdd case .offDeviceMnemonic: - L10n.FactorSources.List.passphraseAdd + L10n.FactorSources.List.offDeviceMnemonicAdd case .arculusCard: L10n.FactorSources.List.arculusCardAdd case .password: diff --git a/RadixWallet/Features/ShieldSetup/PrepareFactorSources/Children/AddFactorSource+View.swift b/RadixWallet/Features/ShieldSetup/PrepareFactorSources/Children/AddFactorSource+View.swift index ac94d3b064..6bd3af96b6 100644 --- a/RadixWallet/Features/ShieldSetup/PrepareFactorSources/Children/AddFactorSource+View.swift +++ b/RadixWallet/Features/ShieldSetup/PrepareFactorSources/Children/AddFactorSource+View.swift @@ -40,7 +40,7 @@ extension PrepareFactorSources.AddFactorSource { .controlState(store.controlState) if store.showNoHardwareDeviceInfo { - Button(L10n.ShieldSetupPrepareFactors.AddHardwareFactor.noDeviceButton) { + Button(L10n.InfoLink.Title.nohardwaredevice) { // TODO: Handle the action and add a popup for skipping this step } .buttonStyle(.primaryText()) @@ -66,7 +66,7 @@ extension PrepareFactorSources.AddFactorSource { private func messages(for kind: FactorSourceKind) -> [FactorSourceCardDataSource.Message] { switch (kind, store.selected) { case (.offDeviceMnemonic, .offDeviceMnemonic): - [.init(text: L10n.ShieldSetupPrepareFactors.AddAnotherFactor.passphraseHint, type: .warning)] + [.init(text: L10n.ShieldSetupPrepareFactors.AddAnotherFactor.offDeviceMnemonicHint, type: .warning)] default: [] } diff --git a/RadixWallet/Features/ShieldSetup/RolesSetup/Children/PrimaryRoleSetup/PrimaryRoleSetup+View.swift b/RadixWallet/Features/ShieldSetup/RolesSetup/Children/PrimaryRoleSetup/PrimaryRoleSetup+View.swift index dde5a6f076..d459c9f579 100644 --- a/RadixWallet/Features/ShieldSetup/RolesSetup/Children/PrimaryRoleSetup/PrimaryRoleSetup+View.swift +++ b/RadixWallet/Features/ShieldSetup/RolesSetup/Children/PrimaryRoleSetup/PrimaryRoleSetup+View.swift @@ -8,7 +8,7 @@ extension PrimaryRoleSetup.State { case .none: nil case .PrimaryRoleMustHaveAtLeastOneFactor: - .init(type: .error, text: L10n.ShieldSetupStatus.Transactions.atLeastOneFactor) + .init(type: .error, text: L10n.ShieldSetupStatus.Roles.atLeastOneFactor) default: .init(type: .warning, text: L10n.ShieldSetupStatus.invalidCombination) } @@ -297,7 +297,7 @@ extension PrimaryRoleSetup { .embedInContainer } else { StatusMessageView( - text: L10n.ShieldSetupStatus.Authentication.atLeastOneFactor, + text: L10n.ShieldSetupStatus.Roles.atLeastOneFactor, type: .error, useNarrowSpacing: true, useSmallerFontSize: true diff --git a/RadixWallet/Features/ShieldSetup/SelectFactorSources/Children/SelectFactorSources+View.swift b/RadixWallet/Features/ShieldSetup/SelectFactorSources/Children/SelectFactorSources+View.swift index ba4b5ea8b4..0bb314001d 100644 --- a/RadixWallet/Features/ShieldSetup/SelectFactorSources/Children/SelectFactorSources+View.swift +++ b/RadixWallet/Features/ShieldSetup/SelectFactorSources/Children/SelectFactorSources+View.swift @@ -11,7 +11,7 @@ extension SelectFactorSources.State { case .invalid: .init(type: .error, text: L10n.ShieldSetupStatus.invalidCombination) case .insufficient: - .init(type: .error, text: L10n.ShieldSetupStatus.Transactions.atLeastOneFactor) + .init(type: .error, text: L10n.ShieldSetupStatus.SelectFactors.atLeastOneFactor) case .suboptimal: .init(type: .warning, text: L10n.ShieldSetupStatus.recommendedFactors) case .optimal: