Merge pull request #1190 from LukasKorba/1189-Cleanup-of-unused-translations

[#1189] Cleanup of unused translations
This commit is contained in:
Lukas Korba 2024-04-15 16:07:32 +02:00 committed by GitHub
commit ecad037103
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 6 additions and 322 deletions

View File

@ -17,8 +17,6 @@ public enum L10n {
public enum AddressDetails {
/// Copy
public static let copy = L10n.tr("Localizable", "addressDetails.copy", fallback: "Copy")
/// Receive
public static let receiveTitle = L10n.tr("Localizable", "addressDetails.receiveTitle", fallback: "Receive")
/// Sapling Address
public static let sa = L10n.tr("Localizable", "addressDetails.sa", fallback: "Sapling Address")
/// Share
@ -92,10 +90,6 @@ public enum L10n {
/// Delete Zashi
public static let title = L10n.tr("Localizable", "deleteWallet.title", fallback: "Delete Zashi")
}
public enum Error {
/// possible roll back
public static let rollBack = L10n.tr("Localizable", "error.rollBack", fallback: "possible roll back")
}
public enum ExportLogs {
public enum Alert {
public enum Failed {
@ -109,10 +103,6 @@ public enum L10n {
}
}
public enum Field {
public enum Multiline {
/// char limit exceeded
public static let charLimitExceeded = L10n.tr("Localizable", "field.multiline.charLimitExceeded", fallback: "char limit exceeded")
}
public enum TransactionAddress {
/// To:
public static let to = L10n.tr("Localizable", "field.transactionAddress.to", fallback: "To:")
@ -133,12 +123,8 @@ public enum L10n {
public static let back = L10n.tr("Localizable", "general.back", fallback: "Back")
/// Cancel
public static let cancel = L10n.tr("Localizable", "general.cancel", fallback: "Cancel")
/// Clear
public static let clear = L10n.tr("Localizable", "general.clear", fallback: "Clear")
/// Close
public static let close = L10n.tr("Localizable", "general.close", fallback: "Close")
/// date not available
public static let dateNotAvailable = L10n.tr("Localizable", "general.dateNotAvailable", fallback: "date not available")
/// Done
public static let done = L10n.tr("Localizable", "general.done", fallback: "Done")
/// Typical Fee < %@
@ -159,8 +145,6 @@ public enum L10n {
public static let save = L10n.tr("Localizable", "general.save", fallback: "Save")
/// Send
public static let send = L10n.tr("Localizable", "general.send", fallback: "Send")
/// Skip
public static let skip = L10n.tr("Localizable", "general.skip", fallback: "Skip")
/// Success
public static let success = L10n.tr("Localizable", "general.success", fallback: "Success")
/// Tap to copy
@ -173,14 +157,6 @@ public enum L10n {
public enum Home {
/// Upgrading databases
public static let migratingDatabases = L10n.tr("Localizable", "home.migratingDatabases", fallback: "Upgrading databases…")
/// Receive %@
public static func receiveZec(_ p1: Any) -> String {
return L10n.tr("Localizable", "home.receiveZec", String(describing: p1), fallback: "Receive %@")
}
/// Send %@
public static func sendZec(_ p1: Any) -> String {
return L10n.tr("Localizable", "home.sendZec", String(describing: p1), fallback: "Send %@")
}
}
public enum ImportWallet {
/// Enter secret
@ -192,8 +168,6 @@ public enum L10n {
public static let message = L10n.tr("Localizable", "importWallet.message", fallback: "Enter your 24-word seed phrase to restore the associated wallet.")
/// (optional)
public static let optionalBirthday = L10n.tr("Localizable", "importWallet.optionalBirthday", fallback: "(optional)")
/// Wallet Import
public static let title = L10n.tr("Localizable", "importWallet.title", fallback: "Wallet Import")
public enum Alert {
public enum Failed {
/// Error: %@
@ -206,8 +180,6 @@ public enum L10n {
public enum Success {
/// Your wallet has been successfully restored! During the initial sync, your funds cannot be spent or sent. Depending on the age of your wallet, it may take a few hours to fully sync.
public static let message = L10n.tr("Localizable", "importWallet.alert.success.message", fallback: "Your wallet has been successfully restored! During the initial sync, your funds cannot be spent or sent. Depending on the age of your wallet, it may take a few hours to fully sync.")
/// Success
public static let title = L10n.tr("Localizable", "importWallet.alert.success.title", fallback: "Success")
}
}
public enum Birthday {
@ -227,10 +199,6 @@ public enum L10n {
/// The Following content requires authentication.
public static let reason = L10n.tr("Localizable", "localAuthentication.reason", fallback: "The Following content requires authentication.")
}
public enum Nefs {
/// Not enough space on disk to do synchronisation!
public static let message = L10n.tr("Localizable", "nefs.message", fallback: "Not enough space on disk to do synchronisation!")
}
public enum NotEnoughFreeSpace {
/// Zashi requires at
/// least %@ GB of space to
@ -244,44 +212,6 @@ public enum L10n {
/// Not enough free space
public static let title = L10n.tr("Localizable", "notEnoughFreeSpace.title", fallback: "Not enough free space")
}
public enum Onboarding {
public enum Button {
/// Import an Existing Wallet
public static let importWallet = L10n.tr("Localizable", "onboarding.button.importWallet", fallback: "Import an Existing Wallet")
/// Create New Wallet
public static let newWallet = L10n.tr("Localizable", "onboarding.button.newWallet", fallback: "Create New Wallet")
}
public enum Step1 {
/// As a privacy focused wallet, we shield by default. Your wallet uses the shielded address for sending and moves transparent funds to that address automatically.
///
/// In other words, the 'privacy-please' sign is on the knob.
public static let description = L10n.tr("Localizable", "onboarding.step1.description", fallback: "As a privacy focused wallet, we shield by default. Your wallet uses the shielded address for sending and moves transparent funds to that address automatically.\n\nIn other words, the 'privacy-please' sign is on the knob.")
/// Welcome!
public static let title = L10n.tr("Localizable", "onboarding.step1.title", fallback: "Welcome!")
}
public enum Step2 {
/// You now have a unified address that includes and up-to-date shielded address for legacy systems.
///
/// This makes your wallet friendlier, and gives you and address that you won't have to upgrade again.
public static let description = L10n.tr("Localizable", "onboarding.step2.description", fallback: "You now have a unified address that includes and up-to-date shielded address for legacy systems.\n\nThis makes your wallet friendlier, and gives you and address that you won't have to upgrade again.")
/// Unified Addresses
public static let title = L10n.tr("Localizable", "onboarding.step2.title", fallback: "Unified Addresses")
}
public enum Step3 {
/// Due to Zcash's increased popularity, we are optimizing our syncing schemes to be faster and more efficient!
///
/// The future is fast!
public static let description = L10n.tr("Localizable", "onboarding.step3.description", fallback: "Due to Zcash's increased popularity, we are optimizing our syncing schemes to be faster and more efficient!\n\nThe future is fast!")
/// And so much more...
public static let title = L10n.tr("Localizable", "onboarding.step3.title", fallback: "And so much more...")
}
public enum Step4 {
/// Choose between creating a new wallet and importing and existing Secret Recovery Phrase
public static let description = L10n.tr("Localizable", "onboarding.step4.description", fallback: "Choose between creating a new wallet and importing and existing Secret Recovery Phrase")
/// Let's get started
public static let title = L10n.tr("Localizable", "onboarding.step4.title", fallback: "Let's get started")
}
}
public enum PlainOnboarding {
/// A no-frills wallet for sending and receiving Zcash (ZEC).
public static let title = L10n.tr("Localizable", "plainOnboarding.title", fallback: "A no-frills wallet for sending and receiving Zcash (ZEC).")
@ -326,24 +256,6 @@ public enum L10n {
/// Transaction Ids
public static let transactionIds = L10n.tr("Localizable", "proposalPartial.transactionIds", fallback: "Transaction Ids")
}
public enum ReceiveZec {
/// Your Address
public static let yourAddress = L10n.tr("Localizable", "receiveZec.yourAddress", fallback: "Your Address")
public enum Error {
/// could not extract UA
public static let cantExtractUnifiedAddress = L10n.tr("Localizable", "receiveZec.error.cantExtractUnifiedAddress", fallback: "could not extract UA")
}
}
public enum RecoveryPhraseBackupValidation {
/// Drag the words below to match your backed-up copy.
public static let description = L10n.tr("Localizable", "recoveryPhraseBackupValidation.description", fallback: "Drag the words below to match your backed-up copy.")
/// Your placed words did not match your secret recovery phrase
public static let failedResult = L10n.tr("Localizable", "recoveryPhraseBackupValidation.failedResult", fallback: "Your placed words did not match your secret recovery phrase")
/// Congratulations! You validated your secret recovery phrase.
public static let successResult = L10n.tr("Localizable", "recoveryPhraseBackupValidation.successResult", fallback: "Congratulations! You validated your secret recovery phrase.")
/// Verify Your Backup
public static let title = L10n.tr("Localizable", "recoveryPhraseBackupValidation.title", fallback: "Verify Your Backup")
}
public enum RecoveryPhraseDisplay {
/// Wallet birthday height: %@
public static func birthdayHeight(_ p1: Any) -> String {
@ -368,30 +280,12 @@ public enum L10n {
}
}
public enum Button {
/// Copy To Buffer
public static let copyToBuffer = L10n.tr("Localizable", "recoveryPhraseDisplay.button.copyToBuffer", fallback: "Copy To Buffer")
/// I got it!
public static let wroteItDown = L10n.tr("Localizable", "recoveryPhraseDisplay.button.wroteItDown", fallback: "I got it!")
}
}
public enum RecoveryPhraseTestPreamble {
/// It is important to understand that you are in charge here. Great, right? YOU get to be the bank!
public static let paragraph1 = L10n.tr("Localizable", "recoveryPhraseTestPreamble.paragraph1", fallback: "It is important to understand that you are in charge here. Great, right? YOU get to be the bank!")
/// But it also means that YOU are the customer, and you need to be self-reliant.
public static let paragraph2 = L10n.tr("Localizable", "recoveryPhraseTestPreamble.paragraph2", fallback: "But it also means that YOU are the customer, and you need to be self-reliant.")
/// So how do you recover funds that you've hidden on a completely decentralized and private block-chain?
public static let paragraph3 = L10n.tr("Localizable", "recoveryPhraseTestPreamble.paragraph3", fallback: "So how do you recover funds that you've hidden on a completely decentralized and private block-chain?")
/// First things first
public static let title = L10n.tr("Localizable", "recoveryPhraseTestPreamble.title", fallback: "First things first")
public enum Button {
/// By understanding and preparing
public static let goNext = L10n.tr("Localizable", "recoveryPhraseTestPreamble.button.goNext", fallback: "By understanding and preparing")
}
}
public enum Root {
public enum Debug {
/// Feature flags
public static let featureFlags = L10n.tr("Localizable", "root.debug.featureFlags", fallback: "Feature flags")
/// Startup
public static let navigationTitle = L10n.tr("Localizable", "root.debug.navigationTitle", fallback: "Startup")
/// Support options
@ -441,8 +335,6 @@ public enum L10n {
public static let nukeWallet = L10n.tr("Localizable", "root.debug.option.nukeWallet", fallback: "[Be careful] Nuke Wallet")
/// Rescan Blockchain
public static let rescanBlockchain = L10n.tr("Localizable", "root.debug.option.rescanBlockchain", fallback: "Rescan Blockchain")
/// Restart the App
public static let restartApp = L10n.tr("Localizable", "root.debug.option.restartApp", fallback: "Restart the App")
/// Test Crash Reporter
public static let testCrashReporter = L10n.tr("Localizable", "root.debug.option.testCrashReporter", fallback: "Test Crash Reporter")
}
@ -488,12 +380,6 @@ public enum L10n {
/// Wallet initialisation failed.
public static let title = L10n.tr("Localizable", "root.initialization.alert.failed.title", fallback: "Wallet initialisation failed.")
}
public enum RetryStartFailed {
/// The app was in background so re-start of the synchronizer is needed but this operation failed.
public static let message = L10n.tr("Localizable", "root.initialization.alert.retryStartFailed.message", fallback: "The app was in background so re-start of the synchronizer is needed but this operation failed.")
/// Synchronizer failed to start
public static let title = L10n.tr("Localizable", "root.initialization.alert.retryStartFailed.title", fallback: "Synchronizer failed to start")
}
public enum SdkInitFailed {
/// Failed to initialize the SDK
public static let title = L10n.tr("Localizable", "root.initialization.alert.sdkInitFailed.title", fallback: "Failed to initialize the SDK")
@ -544,34 +430,14 @@ public enum L10n {
public static let warningD = L10n.tr("Localizable", "securityWarning.warningD", fallback: ": Crash reports might reveal the timing of the crash and what events occurred, but do not reveal spending or viewing keys.")
}
public enum Send {
/// address: %@
public static func address(_ p1: Any) -> String {
return L10n.tr("Localizable", "send.address", String(describing: p1), fallback: " address: %@")
}
/// amount: %@
public static func amount(_ p1: Any) -> String {
return L10n.tr("Localizable", "send.amount", String(describing: p1), fallback: "amount: %@")
}
/// Amount:
public static let amountSummary = L10n.tr("Localizable", "send.amountSummary", fallback: "Amount:")
/// Confirmation
public static let confirmationTitle = L10n.tr("Localizable", "send.confirmationTitle", fallback: "Confirmation")
/// Memo included. Tap to edit.
public static let editMemo = L10n.tr("Localizable", "send.editMemo", fallback: "Memo included. Tap to edit.")
/// Sending transaction failed
public static let failed = L10n.tr("Localizable", "send.failed", fallback: "Sending transaction failed")
/// Fee:
public static let feeSummary = L10n.tr("Localizable", "send.feeSummary", fallback: "Fee:")
/// Aditional funds may be in transit
public static let fundsInfo = L10n.tr("Localizable", "send.fundsInfo", fallback: "Aditional funds may be in transit")
/// Go back
public static let goBack = L10n.tr("Localizable", "send.goBack", fallback: "Go back")
/// Want to include memo? Tap here.
public static let includeMemo = L10n.tr("Localizable", "send.includeMemo", fallback: "Want to include memo? Tap here.")
/// memo: %@
public static func memo(_ p1: Any) -> String {
return L10n.tr("Localizable", "send.memo", String(describing: p1), fallback: " memo: %@")
}
/// Write private message here...
public static let memoPlaceholder = L10n.tr("Localizable", "send.memoPlaceholder", fallback: "Write private message here...")
/// Message
@ -580,14 +446,6 @@ public enum L10n {
public static let review = L10n.tr("Localizable", "send.review", fallback: "Review")
/// Sending
public static let sending = L10n.tr("Localizable", "send.sending", fallback: "Sending")
/// Sending %@ %@ to
public static func sendingTo(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "send.sendingTo", String(describing: p1), String(describing: p2), fallback: "Sending %@ %@ to")
}
/// Sending transaction succeeded
public static let succeeded = L10n.tr("Localizable", "send.succeeded", fallback: "Sending transaction succeeded")
/// Send Zcash
public static let title = L10n.tr("Localizable", "send.title", fallback: "Send Zcash")
/// To:
public static let toSummary = L10n.tr("Localizable", "send.toSummary", fallback: "To:")
public enum Alert {
@ -658,14 +516,6 @@ public enum L10n {
public static let info = L10n.tr("Localizable", "settings.about.info", fallback: "Send and receive ZEC on Zashi!\nZashi is a minimal-design, self-custody, ZEC-only shielded wallet that keeps your transaction history and wallet balance private. Built by Zcashers, for Zcashers. Developed and maintained by Electric Coin Co., the inventor of Zcash, Zashi features a built-in user-feedback mechanism to enable more features, more quickly.")
}
public enum Alert {
public enum CantBackupWallet {
/// Error: %@
public static func message(_ p1: Any) -> String {
return L10n.tr("Localizable", "settings.alert.cantBackupWallet.message", String(describing: p1), fallback: "Error: %@")
}
/// Can't backup wallet
public static let title = L10n.tr("Localizable", "settings.alert.cantBackupWallet.title", fallback: "Can't backup wallet")
}
public enum CantSendEmail {
/// Copy %@
public static func copyEmail(_ p1: Any) -> String {
@ -749,16 +599,6 @@ public enum L10n {
public static let send = L10n.tr("Localizable", "tabs.send", fallback: "Send")
}
public enum Transaction {
/// Confirmed
public static let confirmed = L10n.tr("Localizable", "transaction.confirmed", fallback: "Confirmed")
/// %@ times
public static func confirmedTimes(_ p1: Any) -> String {
return L10n.tr("Localizable", "transaction.confirmedTimes", String(describing: p1), fallback: "%@ times")
}
/// Confirming ~%@mins
public static func confirming(_ p1: Any) -> String {
return L10n.tr("Localizable", "transaction.confirming", String(describing: p1), fallback: "Confirming ~%@mins")
}
/// Receive failed
public static let failedReceive = L10n.tr("Localizable", "transaction.failedReceive", fallback: "Receive failed")
/// Send failed
@ -771,40 +611,6 @@ public enum L10n {
public static let sending = L10n.tr("Localizable", "transaction.sending", fallback: "Sending...")
/// Sent
public static let sent = L10n.tr("Localizable", "transaction.sent", fallback: "Sent")
/// to
public static let to = L10n.tr("Localizable", "transaction.to", fallback: "to")
/// unconfirmed
public static let unconfirmed = L10n.tr("Localizable", "transaction.unconfirmed", fallback: "unconfirmed")
/// With memo:
public static let withMemo = L10n.tr("Localizable", "transaction.withMemo", fallback: "With memo:")
/// You are receiving %@ %@
public static func youAreReceiving(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "transaction.youAreReceiving", String(describing: p1), String(describing: p2), fallback: "You are receiving %@ %@")
}
/// You are sending %@ %@
public static func youAreSending(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "transaction.youAreSending", String(describing: p1), String(describing: p2), fallback: "You are sending %@ %@")
}
/// You DID NOT send %@ %@
public static func youDidNotSent(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "transaction.youDidNotSent", String(describing: p1), String(describing: p2), fallback: "You DID NOT send %@ %@")
}
/// You received %@ %@
public static func youReceived(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "transaction.youReceived", String(describing: p1), String(describing: p2), fallback: "You received %@ %@")
}
/// You sent %@ %@
public static func youSent(_ p1: Any, _ p2: Any) -> String {
return L10n.tr("Localizable", "transaction.youSent", String(describing: p1), String(describing: p2), fallback: "You sent %@ %@")
}
}
public enum TransactionDetail {
/// Error: %@
public static func error(_ p1: Any) -> String {
return L10n.tr("Localizable", "transactionDetail.error", String(describing: p1), fallback: "Error: %@")
}
/// Transaction detail
public static let title = L10n.tr("Localizable", "transactionDetail.title", fallback: "Transaction detail")
}
public enum TransactionList {
/// Collapse transaction
@ -820,40 +626,6 @@ public enum L10n {
/// Transaction ID
public static let transactionId = L10n.tr("Localizable", "transactionList.transactionId", fallback: "Transaction ID")
}
public enum Transactions {
/// Transactions
public static let title = L10n.tr("Localizable", "transactions.title", fallback: "Transactions")
}
public enum ValidationFailed {
/// Your placed words did not match your secret recovery phrase.
public static let description = L10n.tr("Localizable", "validationFailed.description", fallback: "Your placed words did not match your secret recovery phrase.")
/// Remember, you can't recover your funds if you lose (or incorrectly save) these 24 words.
public static let incorrectBackupDescription = L10n.tr("Localizable", "validationFailed.incorrectBackupDescription", fallback: "Remember, you can't recover your funds if you lose (or incorrectly save) these 24 words.")
/// Ouch, sorry, no.
public static let title = L10n.tr("Localizable", "validationFailed.title", fallback: "Ouch, sorry, no.")
public enum Button {
/// Try again
public static let tryAgain = L10n.tr("Localizable", "validationFailed.button.tryAgain", fallback: "Try again")
}
}
public enum ValidationSuccess {
/// Place that backup somewhere safe and venture forth in security.
public static let description = L10n.tr("Localizable", "validationSuccess.description", fallback: "Place that backup somewhere safe and venture forth in security.")
/// Success!
public static let title = L10n.tr("Localizable", "validationSuccess.title", fallback: "Success!")
public enum Button {
/// Take me to my wallet!
public static let goToWallet = L10n.tr("Localizable", "validationSuccess.button.goToWallet", fallback: "Take me to my wallet!")
/// Show me my phrase again
public static let phraseAgain = L10n.tr("Localizable", "validationSuccess.button.phraseAgain", fallback: "Show me my phrase again")
}
}
public enum WelcomeScreen {
/// Just Loading, one sec
public static let subtitle = L10n.tr("Localizable", "welcomeScreen.subtitle", fallback: "Just Loading, one sec")
/// Powered by Zcash
public static let title = L10n.tr("Localizable", "welcomeScreen.title", fallback: "Powered by Zcash")
}
}
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
// swiftlint:enable nesting type_body_length type_name vertical_whitespace_opening_braces

View File

@ -1,7 +1,3 @@
// MARK: - Welcome Screen
"welcomeScreen.title" = "Powered by Zcash";
"welcomeScreen.subtitle" = "Just Loading, one sec";
// MARK: - Plain Onboarding Flow
"plainOnboarding.title" = "A no-frills wallet for sending and receiving Zcash (ZEC).";
"plainOnboarding.button.createNewWallet" = "Create new Wallet";
@ -16,56 +12,16 @@
"securityWarning.acknowledge" = "I acknowledge";
"securityWarning.confirm" = "Confirm";
// MARK: - Onboarding Flow
"onboarding.step1.title" = "Welcome!";
"onboarding.step1.description" = "As a privacy focused wallet, we shield by default. Your wallet uses the shielded address for sending and moves transparent funds to that address automatically.\n\nIn other words, the 'privacy-please' sign is on the knob.";
"onboarding.step2.title" = "Unified Addresses";
"onboarding.step2.description" = "You now have a unified address that includes and up-to-date shielded address for legacy systems.\n\nThis makes your wallet friendlier, and gives you and address that you won't have to upgrade again.";
"onboarding.step3.title" = "And so much more...";
"onboarding.step3.description" = "Due to Zcash's increased popularity, we are optimizing our syncing schemes to be faster and more efficient!\n\nThe future is fast!";
"onboarding.step4.title" = "Let's get started";
"onboarding.step4.description" = "Choose between creating a new wallet and importing and existing Secret Recovery Phrase";
"onboarding.button.newWallet" = "Create New Wallet";
"onboarding.button.importWallet" = "Import an Existing Wallet";
// MARK: - Secret Recovery Phrase Display
"recoveryPhraseDisplay.titlePart1" = "Your Secret";
"recoveryPhraseDisplay.titlePart2" = "Recovery Phrase";
"recoveryPhraseDisplay.description" = "The following 24 words are the keys to your funds and are the only way to recover your funds if you get locked out or get a new device. Protect your ZEC by storing this phrase in a place you trust and never share it with anyone!";
"recoveryPhraseDisplay.button.wroteItDown" = "I got it!";
"recoveryPhraseDisplay.button.copyToBuffer" = "Copy To Buffer";
"recoveryPhraseDisplay.noWords" = "The keys are missing. No backup phrase is stored in the keychain.";
"recoveryPhraseDisplay.birthdayHeight" = "Wallet birthday height: %@";
"recoveryPhraseDisplay.alert.failed.title" = "Failed to load stored wallet";
"recoveryPhraseDisplay.alert.failed.message" = "Attempt to load the stored wallet from the keychain failed. Error: %@";
// MARK: - Recovery Phrase Backup Validation & Success/Failed
"recoveryPhraseBackupValidation.title" = "Verify Your Backup";
"recoveryPhraseBackupValidation.description" = "Drag the words below to match your backed-up copy.";
"recoveryPhraseBackupValidation.successResult" = "Congratulations! You validated your secret recovery phrase.";
"recoveryPhraseBackupValidation.failedResult" = "Your placed words did not match your secret recovery phrase";
"validationSuccess.title" = "Success!";
"validationSuccess.description" = "Place that backup somewhere safe and venture forth in security.";
"validationSuccess.button.goToWallet" = "Take me to my wallet!";
"validationSuccess.button.phraseAgain" = "Show me my phrase again";
"validationFailed.title" = "Ouch, sorry, no.";
"validationFailed.description" = "Your placed words did not match your secret recovery phrase.";
"validationFailed.incorrectBackupDescription" = "Remember, you can't recover your funds if you lose (or incorrectly save) these 24 words.";
"validationFailed.button.tryAgain" = "Try again";
// MARK: - Recovery Phrase Test Preamble
"recoveryPhraseTestPreamble.title" = "First things first";
"recoveryPhraseTestPreamble.paragraph1" = "It is important to understand that you are in charge here. Great, right? YOU get to be the bank!";
"recoveryPhraseTestPreamble.paragraph2" = "But it also means that YOU are the customer, and you need to be self-reliant.";
"recoveryPhraseTestPreamble.paragraph3" = "So how do you recover funds that you've hidden on a completely decentralized and private block-chain?";
"recoveryPhraseTestPreamble.button.goNext" = "By understanding and preparing";
// MARK: - Proposal Partial Error
"proposalPartial.title" = "Transaction Error";
"proposalPartial.message1" = "Sending to this recipient required multiple transactions, but only some of them succeeded. Your funds are safe, but they need to be recovered with the help of Zashi team support.";
@ -78,13 +34,11 @@
"proposalPartial.mailPart3" = "Thank you.";
// MARK: - Import Wallet Screen
"importWallet.title" = "Wallet Import";
"importWallet.description" = "Enter secret\nrecovery phrase";
"importWallet.message" = "Enter your 24-word seed phrase to restore the associated wallet.";
"importWallet.button.restoreWallet" = "Restore";
"importWallet.birthday.title" = "Wallet birthday height";
"importWallet.seed.valid" = "VALID SEED PHRASE";
"importWallet.alert.success.title" = "Success";
"importWallet.alert.success.message" = "Your wallet has been successfully restored! During the initial sync, your funds cannot be spent or sent. Depending on the age of your wallet, it may take a few hours to fully sync.";
"importWallet.alert.failed.title" = "Failed to restore wallet";
"importWallet.alert.failed.message" = "Error: %@";
@ -98,19 +52,12 @@
"tabs.balances" = "Balances";
// MARK: - Home Screen
"home.sendZec" = "Send %@";
"home.receiveZec" = "Receive %@";
"home.migratingDatabases" = "Upgrading databases…";
// MARK: - Receive ZEC
"receiveZec.yourAddress" = "Your Address";
"receiveZec.error.cantExtractUnifiedAddress" = "could not extract UA";
// MARK: - Address Details
"addressDetails.ua" = "Unified Address";
"addressDetails.sa" = "Sapling Address";
"addressDetails.ta" = "Transparent Address";
"addressDetails.receiveTitle" = "Receive";
"addressDetails.copy" = "Copy";
"addressDetails.share" = "Share";
"addressDetails.error.cantExtractUnifiedAddress" = "could not extract UA";
@ -145,19 +92,9 @@
"scan.openSettings" = "Open settings";
// MARK: - Send
"send.title" = "Send Zcash";
"send.sending" = "Sending";
"send.fundsInfo" = "Aditional funds may be in transit";
"send.message" = "Message";
"send.memoPlaceholder" = "Write private message here...";
"send.failed" = "Sending transaction failed";
"send.succeeded" = "Sending transaction succeeded";
"send.sendingTo" = "Sending %@ %@ to";
"send.amount" = "amount: %@";
"send.address" = " address: %@";
"send.memo" = " memo: %@";
"send.includeMemo" = "Want to include memo? Tap here.";
"send.editMemo" = "Memo included. Tap to edit.";
"send.error.insufficientFunds" = "Insufficient funds";
"send.error.invalidAmount" = "Invalid amount";
"send.error.invalidAddress" = "Invalid address";
@ -195,8 +132,6 @@
"settings.about.info" = "Send and receive ZEC on Zashi!
Zashi is a minimal-design, self-custody, ZEC-only shielded wallet that keeps your transaction history and wallet balance private. Built by Zcashers, for Zcashers. Developed and maintained by Electric Coin Co., the inventor of Zcash, Zashi features a built-in user-feedback mechanism to enable more features, more quickly.";
"settings.version" = "Version %@ (%@)";
"settings.alert.cantBackupWallet.title" = "Can't backup wallet";
"settings.alert.cantBackupWallet.message" = "Error: %@";
"settings.alert.cantSendEmail.title" = "Oh, no!";
"settings.alert.cantSendEmail.message" = "It looks like you don't have a default email app configured on your device. Copy the address below, and use your favorite email client to send us a message.";
"settings.alert.cantSendEmail.copyEmail" = "Copy %@";
@ -218,18 +153,10 @@ Sharing this private data is irrevocable — once you have shared this private d
"sync.message.stopped" = "Stopped";
"sync.message.sync" = "%@%% Synced";
// MARK: - Not Enough Free Space
"nefs.message" = "Not enough space on disk to do synchronisation!";
// MARK: - Errors
"error.rollBack" = "possible roll back";
// MARK: - Common & Shared
"general.back" = "Back";
"general.skip" = "Skip";
"general.next" = "Next";
"general.send" = "Send";
"general.clear" = "Clear";
"general.close" = "Close";
"general.max" = "Max";
"general.ok" = "Ok";
@ -243,7 +170,6 @@ Sharing this private data is irrevocable — once you have shared this private d
"general.restoringWallet" = "[RESTORING YOUR WALLET…]";
"balance.availableTitle" = "Available Balance:";
"qrCodeFor" = "QR Code for %@";
"general.dateNotAvailable" = "date not available";
"general.tapToCopy" = "Tap to copy";
"general.fee" = "Typical Fee < %@";
@ -256,26 +182,12 @@ Sharing this private data is irrevocable — once you have shared this private d
"transactionList.noTransactions" = "No transaction history";
// MARK: - Transactions
"transactions.title" = "Transactions";
"transaction.sent" = "Sent";
"transaction.sending" = "Sending...";
"transaction.receiving" = "Receiving...";
"transaction.received" = "Received";
"transaction.failedSend" = "Send failed";
"transaction.failedReceive" = "Receive failed";
"transaction.youSent" = "You sent %@ %@";
"transaction.youAreSending" = "You are sending %@ %@";
"transaction.youAreReceiving" = "You are receiving %@ %@";
"transaction.youReceived" = "You received %@ %@";
"transaction.youDidNotSent" = "You DID NOT send %@ %@";
"transaction.confirmed" = "Confirmed";
"transaction.confirmedTimes" = "%@ times";
"transaction.confirming" = "Confirming ~%@mins";
"transaction.withMemo" = "With memo:";
"transaction.to" = "to";
"transaction.unconfirmed" = "unconfirmed";
"transactionDetail.title" = "Transaction detail";
"transactionDetail.error" = "Error: %@";
// MARK: - Local authentication
"localAuthentication.reason" = "The Following content requires authentication.";
@ -306,22 +218,18 @@ Sharing this private data is irrevocable — once you have shared this private d
"root.initialization.alert.wipe.title" = "Wipe of the wallet";
"root.initialization.alert.wipe.message" = "Are you sure?";
"root.initialization.alert.wipeFailed.title" = "Nuke of the wallet failed";
"root.initialization.alert.retryStartFailed.title" = "Synchronizer failed to start";
"root.initialization.alert.retryStartFailed.message" = "The app was in background so re-start of the synchronizer is needed but this operation failed.";
"root.destination.alert.failedToProcessDeeplink.title" = "Failed to process deeplink.";
"root.destination.alert.failedToProcessDeeplink.message" = "Deeplink: \(%@))\nError: \(%@) (code: %@)";
"root.debug.title" = "Support options";
"root.debug.navigationTitle" = "Startup";
"root.debug.option.restartApp" = "Restart the App";
"root.debug.option.rescanBlockchain" = "Rescan Blockchain";
"root.debug.option.copySeed" = "Copy seed to pasteboard";
"root.debug.option.nukeWallet" = "[Be careful] Nuke Wallet";
"root.debug.option.exportLogs" = "Export Logs";
"root.debug.option.appReview" = "Rate the App";
"root.debug.option.testCrashReporter" = "Test Crash Reporter";
"root.debug.featureFlags" = "Feature flags";
"root.debug.dialog.rescan.title" = "Rescan";
"root.debug.dialog.rescan.message" = "Select the rescan you want";
"root.debug.dialog.rescan.option.quick" = "Quick rescan";
@ -336,8 +244,6 @@ Sharing this private data is irrevocable — once you have shared this private d
"exportLogs.alert.failed.message" = "Error: %@";
// MARK: - Text Fields
"field.multiline.charLimitExceeded" = "char limit exceeded";
"field.transactionAddress.validZcashAddress" = "Zcash Address";
"field.transactionAddress.to" = "To:";

View File

@ -56,6 +56,7 @@ class AppInitializationTests: XCTestCase {
store.dependencies.crashReporter = .noOp
store.dependencies.numberFormatter = .noOp
store.dependencies.restoreWalletStorage = .noOp
store.dependencies.userDefaults = .noOp
// Root of the test, the app finished the launch process and triggers the checks and initializations.
await store.send(.initialization(.appDelegate(.didFinishLaunching))) { state in
@ -131,6 +132,7 @@ class AppInitializationTests: XCTestCase {
store.dependencies.crashReporter = .noOp
store.dependencies.numberFormatter = .noOp
store.dependencies.restoreWalletStorage = .noOp
store.dependencies.userDefaults = .noOp
// Root of the test, the app finished the launch process and triggers the checks and initializations.
await store.send(.initialization(.appDelegate(.didFinishLaunching))) { state in

View File

@ -30,6 +30,7 @@ final class RestoreWalletTests: XCTestCase {
}
store.dependencies.sdkSynchronizer = .noOp
store.dependencies.walletStorage = .noOp
store.dependencies.userDefaults = .noOp
await store.send(.onboarding(.importWallet(.initializeSDK))) { state in
state.isRestoringWallet = true
@ -62,6 +63,7 @@ final class RestoreWalletTests: XCTestCase {
}
store.dependencies.sdkSynchronizer = .noOp
store.dependencies.walletStorage = .noOp
store.dependencies.userDefaults = .noOp
var syncState: SynchronizerState = .zero
syncState.syncStatus = .upToDate

View File

@ -156,6 +156,7 @@ class RootTests: XCTestCase {
store.dependencies.walletStorage = .noOp
store.dependencies.walletStorage.exportWallet = { throw zcashError }
store.dependencies.restoreWalletStorage = .noOp
store.dependencies.userDefaults = .noOp
await store.send(.initialization(.respondToWalletInitializationState(.filesMissing))) { state in
state.appInitializationState = .filesMissing
@ -188,6 +189,7 @@ class RootTests: XCTestCase {
store.dependencies.walletStorage = .noOp
store.dependencies.walletStorage.exportWallet = { throw walletStorageError }
store.dependencies.userDefaults = .noOp
await store.send(.initialization(.respondToWalletInitializationState(.initialized)))