diff --git a/DashSyncCurrentCommit b/DashSyncCurrentCommit index cea1bde48..2894cace6 100644 --- a/DashSyncCurrentCommit +++ b/DashSyncCurrentCommit @@ -1 +1 @@ -b6a82ef4d57754d29599b794df3274e4cd36e07a +fdf97505762702eb6290d71c61a93c8f6a57e3ba diff --git a/DashWallet.xcodeproj/project.pbxproj b/DashWallet.xcodeproj/project.pbxproj index 0f2332fda..bc674a480 100644 --- a/DashWallet.xcodeproj/project.pbxproj +++ b/DashWallet.xcodeproj/project.pbxproj @@ -551,6 +551,8 @@ 753261AE2CBC1040003CDE00 /* InvitationFlowViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753261AD2CBC1040003CDE00 /* InvitationFlowViewController.swift */; }; 753261B02CBC11BF003CDE00 /* WelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753261AF2CBC11BF003CDE00 /* WelcomeViewController.swift */; }; 753261B22CBC157F003CDE00 /* GetStartedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753261B12CBC157F003CDE00 /* GetStartedViewController.swift */; }; + 753E46E82DE1E24300A3FF2A /* CTXSpendModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753E46E72DE1E24300A3FF2A /* CTXSpendModels.swift */; }; + 753E46E92DE1E24300A3FF2A /* CTXSpendModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753E46E72DE1E24300A3FF2A /* CTXSpendModels.swift */; }; 753F75342DD0D42300D40DFE /* DashSpendPayScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753F75332DD0D41900D40DFE /* DashSpendPayScreen.swift */; }; 753F75352DD0D42300D40DFE /* DashSpendPayScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753F75332DD0D41900D40DFE /* DashSpendPayScreen.swift */; }; 753F75372DD0D76400D40DFE /* DashSpendPayViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 753F75362DD0D75F00D40DFE /* DashSpendPayViewModel.swift */; }; @@ -564,11 +566,9 @@ 754495DD2AE91B6300492817 /* GroupedRequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754495DC2AE91B6300492817 /* GroupedRequestCell.swift */; }; 754495DF2AE91D3500492817 /* UsernameRequestCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754495DE2AE91D3500492817 /* UsernameRequestCell.swift */; }; 754565C82DAA52A000DA4E8E /* CTXSpendAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C42DAA52A000DA4E8E /* CTXSpendAPI.swift */; }; - 754565C92DAA52A000DA4E8E /* CTXSpendModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C62DAA52A000DA4E8E /* CTXSpendModels.swift */; }; 754565CA2DAA52A000DA4E8E /* CTXSpendService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C72DAA52A000DA4E8E /* CTXSpendService.swift */; }; 754565CB2DAA52A000DA4E8E /* CTXSpendEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C52DAA52A000DA4E8E /* CTXSpendEndpoint.swift */; }; 754565CC2DAA52A000DA4E8E /* CTXSpendAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C42DAA52A000DA4E8E /* CTXSpendAPI.swift */; }; - 754565CD2DAA52A000DA4E8E /* CTXSpendModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C62DAA52A000DA4E8E /* CTXSpendModels.swift */; }; 754565CE2DAA52A000DA4E8E /* CTXSpendService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C72DAA52A000DA4E8E /* CTXSpendService.swift */; }; 754565CF2DAA52A000DA4E8E /* CTXSpendEndpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565C52DAA52A000DA4E8E /* CTXSpendEndpoint.swift */; }; 754565D12DABA5F300DA4E8E /* MerchantTypesDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 754565D02DABA5EB00DA4E8E /* MerchantTypesDialog.swift */; }; @@ -656,6 +656,8 @@ 759C8FA02B593589004B1305 /* CrowdNodeAPYView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */; }; 75A0A3F32CA7DBCF003ED48B /* TimeUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */; }; 75A0A3F42CA7DBCF003ED48B /* TimeUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */; }; + 75A2F3032DE48C860046BE17 /* CTXSpendTokenService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A2F3022DE48C860046BE17 /* CTXSpendTokenService.swift */; }; + 75A2F3042DE48C860046BE17 /* CTXSpendTokenService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A2F3022DE48C860046BE17 /* CTXSpendTokenService.swift */; }; 75A8C1652AE5726B0042256E /* UsernameRequestsDAO.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A8C1632AE5725C0042256E /* UsernameRequestsDAO.swift */; }; 75A8C1672AE5734A0042256E /* UsernameRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A8C1662AE5734A0042256E /* UsernameRequest.swift */; }; 75A8C1692AE6A1AC0042256E /* VotingViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75A8C1682AE6A1AC0042256E /* VotingViewModel.swift */; }; @@ -720,6 +722,8 @@ 75EE38D32CBE9EFC00845FFF /* MainMenuContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EE38D22CBE9EFC00845FFF /* MainMenuContentView.swift */; }; 75EE38D42CBE9EFC00845FFF /* MainMenuContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EE38D22CBE9EFC00845FFF /* MainMenuContentView.swift */; }; 75EE38D82CBFE52E00845FFF /* ContactsPlaceholderViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EE38D72CBFE52B00845FFF /* ContactsPlaceholderViewController.swift */; }; + 75EE9F422DE2F750000AD1AD /* DashSpendConfirmationDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EE9F412DE2F74B000AD1AD /* DashSpendConfirmationDialog.swift */; }; + 75EE9F432DE2F750000AD1AD /* DashSpendConfirmationDialog.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75EE9F412DE2F74B000AD1AD /* DashSpendConfirmationDialog.swift */; }; 75F3F00D2C48F819004470EA /* RootEditProfileViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 759063EC2C42687F002F2AA9 /* RootEditProfileViewController.swift */; }; 75F51AAD2ABD8C800057B499 /* IntegrationViewController+Uphold.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F51AAC2ABD8C800057B499 /* IntegrationViewController+Uphold.swift */; }; 75F51AAF2ABD8D070057B499 /* IntegrationViewController+Coinbase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75F51AAE2ABD8D070057B499 /* IntegrationViewController+Coinbase.swift */; }; @@ -2452,6 +2456,7 @@ 753261AD2CBC1040003CDE00 /* InvitationFlowViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InvitationFlowViewController.swift; sourceTree = ""; }; 753261AF2CBC11BF003CDE00 /* WelcomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeViewController.swift; sourceTree = ""; }; 753261B12CBC157F003CDE00 /* GetStartedViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetStartedViewController.swift; sourceTree = ""; }; + 753E46E72DE1E24300A3FF2A /* CTXSpendModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendModels.swift; sourceTree = ""; }; 753F75332DD0D41900D40DFE /* DashSpendPayScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashSpendPayScreen.swift; sourceTree = ""; }; 753F75362DD0D75F00D40DFE /* DashSpendPayViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashSpendPayViewModel.swift; sourceTree = ""; }; 753FD7E12CA44BDD00B7751F /* CoinJoinProgress.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoinJoinProgress.swift; sourceTree = ""; }; @@ -2462,7 +2467,6 @@ 754495DE2AE91D3500492817 /* UsernameRequestCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernameRequestCell.swift; sourceTree = ""; }; 754565C42DAA52A000DA4E8E /* CTXSpendAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendAPI.swift; sourceTree = ""; }; 754565C52DAA52A000DA4E8E /* CTXSpendEndpoint.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendEndpoint.swift; sourceTree = ""; }; - 754565C62DAA52A000DA4E8E /* CTXSpendModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendModels.swift; sourceTree = ""; }; 754565C72DAA52A000DA4E8E /* CTXSpendService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendService.swift; sourceTree = ""; }; 754565D02DABA5EB00DA4E8E /* MerchantTypesDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MerchantTypesDialog.swift; sourceTree = ""; }; 754565D32DAD0F5B00DA4E8E /* DWExploreTestnetViewController+DashWallet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "DWExploreTestnetViewController+DashWallet.swift"; sourceTree = ""; }; @@ -2522,6 +2526,7 @@ 759AFDE22CC67E89007072D2 /* VotingInfoScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VotingInfoScreen.swift; sourceTree = ""; }; 759C8F9E2B593589004B1305 /* CrowdNodeAPYView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrowdNodeAPYView.swift; sourceTree = ""; }; 75A0A3F22CA7DBCF003ED48B /* TimeUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TimeUtils.swift; sourceTree = ""; }; + 75A2F3022DE48C860046BE17 /* CTXSpendTokenService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CTXSpendTokenService.swift; sourceTree = ""; }; 75A8C1632AE5725C0042256E /* UsernameRequestsDAO.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernameRequestsDAO.swift; sourceTree = ""; }; 75A8C1662AE5734A0042256E /* UsernameRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UsernameRequest.swift; sourceTree = ""; }; 75A8C1682AE6A1AC0042256E /* VotingViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VotingViewModel.swift; sourceTree = ""; }; @@ -2572,6 +2577,7 @@ 75EDC78DE1686E55AE12233C /* Pods-DashWalletScreenshotsUITests.testnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-DashWalletScreenshotsUITests.testnet.xcconfig"; path = "Pods/Target Support Files/Pods-DashWalletScreenshotsUITests/Pods-DashWalletScreenshotsUITests.testnet.xcconfig"; sourceTree = ""; }; 75EE38D22CBE9EFC00845FFF /* MainMenuContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainMenuContentView.swift; sourceTree = ""; }; 75EE38D72CBFE52B00845FFF /* ContactsPlaceholderViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactsPlaceholderViewController.swift; sourceTree = ""; }; + 75EE9F412DE2F74B000AD1AD /* DashSpendConfirmationDialog.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DashSpendConfirmationDialog.swift; sourceTree = ""; }; 75F2E0B61BE2D5F000EAE861 /* Accelerate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; 75F51AAC2ABD8C800057B499 /* IntegrationViewController+Uphold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "IntegrationViewController+Uphold.swift"; sourceTree = ""; }; 75F51AAE2ABD8D070057B499 /* IntegrationViewController+Coinbase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "IntegrationViewController+Coinbase.swift"; sourceTree = ""; }; @@ -3506,7 +3512,6 @@ 11E47BA928EB383E0097CFA0 /* Services */ = { isa = PBXGroup; children = ( - 11E47BAA28EB38510097CFA0 /* SendCoinsService.swift */, 117ED4A028EC86E0006E3EE4 /* TransactionObserver.swift */, 11517C86294B0FED004FC7BF /* CrowdNodeWebService.swift */, ); @@ -5107,6 +5112,7 @@ children = ( 47081195298CF1FE003FCA3D /* Model */, 472D13E2299E23B7006903F1 /* BalanceNotifier.swift */, + 11E47BAA28EB38510097CFA0 /* SendCoinsService.swift */, ); path = Transactions; sourceTree = ""; @@ -5646,6 +5652,7 @@ 47AE8B9828BFAD0000490F5E /* Services */ = { isa = PBXGroup; children = ( + 75A2F3022DE48C860046BE17 /* CTXSpendTokenService.swift */, 754565C42DAA52A000DA4E8E /* CTXSpendAPI.swift */, 754565C52DAA52A000DA4E8E /* CTXSpendEndpoint.swift */, 754565C72DAA52A000DA4E8E /* CTXSpendService.swift */, @@ -5666,7 +5673,7 @@ 47AE8B9A28BFAD2000490F5E /* Entites */ = { isa = PBXGroup; children = ( - 754565C62DAA52A000DA4E8E /* CTXSpendModels.swift */, + 753E46E72DE1E24300A3FF2A /* CTXSpendModels.swift */, 47AE8B9B28BFAD2800490F5E /* ExplorePointOfUse.swift */, ); path = Entites; @@ -6067,6 +6074,7 @@ isa = PBXGroup; children = ( 753F75332DD0D41900D40DFE /* DashSpendPayScreen.swift */, + 75EE9F412DE2F74B000AD1AD /* DashSpendConfirmationDialog.swift */, 753F75362DD0D75F00D40DFE /* DashSpendPayViewModel.swift */, 75C3EDFD2DA7C63C00A4E9C0 /* CTXSpendLoginInfoView.swift */, 75C3EDFE2DA7C63C00A4E9C0 /* CTXSpendUserAuthScreen.swift */, @@ -8523,6 +8531,7 @@ 47C661AD28F972BD00028A8D /* NumberKeyboardButton.swift in Sources */, 11AE3DD82997C599000856EE /* IsDefaultEmail.swift in Sources */, 2A9FFF2A2233E60F00956D5F /* DWUpholdAccountObject.m in Sources */, + 75A2F3042DE48C860046BE17 /* CTXSpendTokenService.swift in Sources */, 2A9FFE812230FF4700956D5F /* DWFormTableViewController.m in Sources */, C909614D29EFF7D600002D82 /* WalletKeysOverviewModel.swift in Sources */, 4751137528DAF28800223B77 /* UIAssembly.swift in Sources */, @@ -8617,6 +8626,7 @@ C9F42FAB29DC1098001BC549 /* ReceiveContentView.swift in Sources */, 47838B7528FFD1D10003E8AB /* AmountView.swift in Sources */, 4759D512292FD6F3002F20DC /* DWBasePayViewController.m in Sources */, + 75EE9F432DE2F750000AD1AD /* DashSpendConfirmationDialog.swift in Sources */, 1193FF3629602835004EA8D7 /* CrowdNodeTransferModel.swift in Sources */, 2A44312622CCC14F009BAF7F /* DWSetPinViewController.m in Sources */, 47F4B6C7294842DF00AED4C9 /* ConfirmOrderController.swift in Sources */, @@ -8836,7 +8846,6 @@ 47838B7D290133610003E8AB /* PointOfUseListFiltersViewController.swift in Sources */, 47AE8C1A28C6A21A00490F5E /* AllMerchantLocationsDataProvider.swift in Sources */, 754565CC2DAA52A000DA4E8E /* CTXSpendAPI.swift in Sources */, - 754565CD2DAA52A000DA4E8E /* CTXSpendModels.swift in Sources */, 754565CE2DAA52A000DA4E8E /* CTXSpendService.swift in Sources */, 754565CF2DAA52A000DA4E8E /* CTXSpendEndpoint.swift in Sources */, C9F451E52A0B986E00825057 /* MainTabbarController.swift in Sources */, @@ -8860,6 +8869,7 @@ C917023F29D44E0B008C034D /* SendReceivePageController.swift in Sources */, 753FD7E22CA44BDD00B7751F /* CoinJoinProgress.swift in Sources */, 2A7A7BD92348CB7300451078 /* DWSettingsMenuModel.m in Sources */, + 753E46E82DE1E24300A3FF2A /* CTXSpendModels.swift in Sources */, 478A2C7228DC909C00AD1420 /* BaseNavigationController.swift in Sources */, 47CDEECC294A2BAD008AE06D /* UIViewController+Coinbase.swift in Sources */, 472D13E1299E1F2F006903F1 /* CSVBuilder.swift in Sources */, @@ -9235,6 +9245,7 @@ C943B31D2A408CED00AF23C5 /* DWUserProfileContainerView.m in Sources */, C9D2C6F02A320AA000D15901 /* UIImage+Utils.m in Sources */, C943B4BE2A40A54600AF23C5 /* DWGlobalMatchFailedHeaderView.m in Sources */, + 75A2F3032DE48C860046BE17 /* CTXSpendTokenService.swift in Sources */, C943B4C22A40A54600AF23C5 /* BaseCollectionReusableView.m in Sources */, C9D2C6F22A320AA000D15901 /* DWSetupViewController.m in Sources */, C9D2C6F32A320AA000D15901 /* ExploreDatabaseConnection.swift in Sources */, @@ -9575,6 +9586,7 @@ C943B5122A40A54600AF23C5 /* DWInvitationHistoryModel.m in Sources */, C943B31A2A408CED00AF23C5 /* DWCurrentUserProfileView.m in Sources */, 751B61C22ADFF99D00D1C2EF /* CoinbaseDepositResponse.swift in Sources */, + 753E46E92DE1E24300A3FF2A /* CTXSpendModels.swift in Sources */, C943B4F32A40A54600AF23C5 /* DWDPEstablishedContactObject.m in Sources */, C9D2C7E02A320AA000D15901 /* TransactionFilter.swift in Sources */, C9D2C7E22A320AA000D15901 /* CrowdNodeWithdrawalReceivedTx.swift in Sources */, @@ -9635,6 +9647,7 @@ C943B3252A408CED00AF23C5 /* DWEditProfileViewController.m in Sources */, 75D6D8E52D96A6DB00E40A6D /* StubTransactionSource.swift in Sources */, C943B59C2A40EE5300AF23C5 /* DWNetworkErrorViewController.m in Sources */, + 75EE9F422DE2F750000AD1AD /* DashSpendConfirmationDialog.swift in Sources */, C9D2C8142A320AA000D15901 /* DWCenteredScrollView.m in Sources */, C9D2C8162A320AA000D15901 /* DWPhraseRepairViewController.m in Sources */, 75AA33CD2BF9C82700F12465 /* ModalDialog.swift in Sources */, @@ -9834,7 +9847,6 @@ C943B5382A40A65B00AF23C5 /* DWScrollingViewController.m in Sources */, C9D2C8B22A320AA000D15901 /* CoinbaseAccountAddress.swift in Sources */, 754565C82DAA52A000DA4E8E /* CTXSpendAPI.swift in Sources */, - 754565C92DAA52A000DA4E8E /* CTXSpendModels.swift in Sources */, 754565CA2DAA52A000DA4E8E /* CTXSpendService.swift in Sources */, 754565CB2DAA52A000DA4E8E /* CTXSpendEndpoint.swift in Sources */, C9D2C8B32A320AA000D15901 /* DWMainMenuTableViewCell.m in Sources */, @@ -10349,7 +10361,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -10489,7 +10501,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -10663,7 +10675,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -10685,7 +10697,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -10710,7 +10722,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -10737,7 +10749,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -10769,7 +10781,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -10798,7 +10810,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -11477,7 +11489,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -11590,7 +11602,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -11646,7 +11658,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -11671,7 +11683,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; @@ -11788,7 +11800,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -11900,7 +11912,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.TodayExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -11955,7 +11967,7 @@ EXCLUDED_ARCHS = ""; IBSC_MODULE = WatchApp_Extension; INFOPLIST_FILE = WatchApp/Info.plist; - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = watchos; @@ -11980,7 +11992,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 8.5.0; + MARKETING_VERSION = 8.4.0; PRODUCT_BUNDLE_IDENTIFIER = org.dashfoundation.dash.watchkitapp.watchkitextension; PRODUCT_NAME = "${TARGET_NAME}"; SDKROOT = watchos; diff --git a/DashWallet/Sources/Models/CrowdNode/Services/SendCoinsService.swift b/DashWallet/Sources/Models/CrowdNode/Services/SendCoinsService.swift deleted file mode 100644 index d0056f07d..000000000 --- a/DashWallet/Sources/Models/CrowdNode/Services/SendCoinsService.swift +++ /dev/null @@ -1,66 +0,0 @@ -// -// Created by Andrei Ashikhmin -// Copyright © 2022 Dash Core Group. All rights reserved. -// -// Licensed under the MIT License (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://opensource.org/licenses/MIT -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Combine - -public final class SendCoinsService { - private let transactionManager: DSTransactionManager = DWEnvironment.sharedInstance().currentChainManager.transactionManager - - func sendCoins(address: String, amount: UInt64, - inputSelector: SingleInputAddressSelector? = nil, adjustAmountDownwards: Bool = false) async throws - -> DSTransaction { - let chain = DWEnvironment.sharedInstance().currentChain - let account = DWEnvironment.sharedInstance().currentAccount - let transaction = DSTransaction(on: chain) - - if inputSelector == nil { - // Forming transaction normally - let script = NSData.scriptPubKey(forAddress: address, for: chain) - account.update(transaction, forAmounts: [amount], toOutputScripts: [script], withFee: true) - } - else { - // Selecting proper inputs - let balance = inputSelector!.selectFor(tx: transaction) - transaction.addOutputAddress(address, amount: amount) - let feeAmount = chain.fee(forTxSize: UInt(transaction.size) + UInt(TX_OUTPUT_SIZE)) - - if amount + feeAmount > balance { - if adjustAmountDownwards { - let adjustedAmount = amount - feeAmount - let adjustedTx = try await sendCoins(address: address, amount: adjustedAmount, inputSelector: inputSelector) - return adjustedTx - } else { - throw Error.notEnoughFunds(selected: balance, amount: amount, fee: feeAmount) - } - } - - let change = balance - (amount + feeAmount) - - if change > 0 { - let changeAddress = inputSelector!.address - transaction.addOutputAddress(changeAddress, amount: change) - transaction.sortOutputsAccordingToBIP69() - } - } - - await account.sign(transaction) - account.register(transaction, saveImmediately: false) - try await transactionManager.publishTransaction(transaction) - - return transaction - } -} diff --git a/DashWallet/Sources/Models/Explore Dash/Model/CTXConstants.swift b/DashWallet/Sources/Models/Explore Dash/Model/CTXConstants.swift index 24eaa0d90..98363b9ae 100644 --- a/DashWallet/Sources/Models/Explore Dash/Model/CTXConstants.swift +++ b/DashWallet/Sources/Models/Explore Dash/Model/CTXConstants.swift @@ -18,4 +18,5 @@ class CTXConstants { static let baseURI = "https://spend.ctx.com/" static let ctxGiftCardAgreementUrl = "https://ctx.com/gift-card-agreement/" + static let supportEmail = "support@ctx.com" } diff --git a/DashWallet/Sources/Models/Explore Dash/Model/Entites/CTXSpendModels.swift b/DashWallet/Sources/Models/Explore Dash/Model/Entites/CTXSpendModels.swift index c05635d0f..3a844e022 100644 --- a/DashWallet/Sources/Models/Explore Dash/Model/Entites/CTXSpendModels.swift +++ b/DashWallet/Sources/Models/Explore Dash/Model/Entites/CTXSpendModels.swift @@ -1,4 +1,4 @@ -// +// // Created by Andrei Ashikhmin // Copyright © 2025 Dash Core Group. All rights reserved. // @@ -17,16 +17,21 @@ import Foundation -// Request Models -public struct LoginRequest: Codable { +// MARK: - Request Models + +struct LoginRequest: Codable { let email: String } -public struct VerifyEmailRequest: Codable { +struct VerifyEmailRequest: Codable { let email: String let code: String } +public struct RefreshTokenRequest: Codable { + let refreshToken: String +} + public struct PurchaseGiftCardRequest: Codable { let cryptoCurrency: String let fiatCurrency: String @@ -34,21 +39,82 @@ public struct PurchaseGiftCardRequest: Codable { let merchantId: String } -// Response Models -public struct VerifyEmailResponse: Codable { +// MARK: - Response Models + +struct VerifyEmailResponse: Codable { + let accessToken: String + let refreshToken: String +} + +struct RefreshTokenResponse: Codable { let accessToken: String let refreshToken: String } -public struct GiftCardResponse: Codable { - let giftCardId: String - let dashAmount: String - let dashTxUrl: String - let checkoutUrl: String +struct GiftCardResponse: Codable { + let id: String + let percentDiscount: String + let paymentCryptoAmount: String + let cardFiatAmount: String + let cardFiatCurrency: String + let paymentUrls: [String: String] + let paymentCryptoCurrency: String + let paymentCryptoNetwork: String + let paymentFiatCurrency: String + let userId: String + let merchantName: String + let userEmail: String + let created: String + let rate: String + let paymentFiatAmount: String + let status: String + let paymentId: String +} + +struct MerchantResponse: Codable { + let id: String + let name: String + let logoUrl: String + let enabled: Bool + let savingsPercentage: Int + let denominationsType: String + let denominations: [String] + let cachedLocationCount: Int + let mapPinUrl: String + let type: String + let redeemType: String + let info: MerchantInfo + let cardImageUrl: String + let currency: String + + var minimumCardPurchase: Double { + guard denominations.count >= 1, let min = Double(denominations[0]) else { return 0.0 } + return min + } + + var maximumCardPurchase: Double { + guard denominations.count >= 2, let max = Double(denominations[1]) else { return 0.0 } + return max + } + + var denominationType: DenominationType { + switch denominationsType { + case "min-max": + return .Range + default: + return .Fixed + } + } +} + +struct MerchantInfo: Codable { + let terms: String + let description: String + let instructions: String + let intro: String } -public struct MerchantResponse: Codable { - let savingsPercentage: Double - let minimumCardPurchase: Double - let maximumCardPurchase: Double +enum DenominationType: String, Codable { + case Range = "range" + case Fixed = "fixed" } diff --git a/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift b/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift index 3d3ab5512..78c33223c 100644 --- a/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift +++ b/DashWallet/Sources/Models/Explore Dash/Model/Entites/ExplorePointOfUse.swift @@ -58,6 +58,14 @@ extension ExplorePointOfUse { let type: `Type` let deeplink: String? let savingsBasisPoints: Int // in basis points 1 = 0.001% + + func toSavingPercentages() -> Double { + return Double(savingsBasisPoints) / 100 + } + + func toSavingsFraction() -> Double { + return Double(savingsBasisPoints) / 10000 + } } var merchant: Merchant? { diff --git a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendAPI.swift b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendAPI.swift index 7f382e568..23e11f9e3 100644 --- a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendAPI.swift +++ b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendAPI.swift @@ -18,16 +18,50 @@ import Foundation import Moya -enum CTXSpendError: Error { +enum CTXSpendError: Error, LocalizedError { case networkError case parsingError case invalidCode case unauthorized + case tokenRefreshFailed + case insufficientFunds + case invalidMerchant + case invalidAmount + case customError(String) case unknown + case paymentProcessingError(String) + + public var errorDescription: String? { + switch self { + case .networkError: + return NSLocalizedString("Network error. Please check your connection and try again.", comment: "DashSpend") + case .parsingError: + return NSLocalizedString("Error processing server response. Please try again later.", comment: "DashSpend") + case .invalidCode: + return NSLocalizedString("Invalid verification code. Please try again.", comment: "CTXSpend error") + case .unauthorized: + return NSLocalizedString("Please sign in to your DashSpend account.", comment: "DashSpend") + case .tokenRefreshFailed: + return NSLocalizedString("Your session expired", comment: "DashSpend") + case .insufficientFunds: + return NSLocalizedString("Insufficient funds to complete this purchase.", comment: "DashSpend") + case .invalidMerchant: + return NSLocalizedString("This merchant is currently unavailable.", comment: "DashSpend") + case .invalidAmount: + return NSLocalizedString("Invalid amount. Please check merchant limits.", comment: "DashSpend") + case .customError(let message): + return message + case .unknown: + return NSLocalizedString("An unknown error occurred. Please try again later.", comment: "DashSpend") + case .paymentProcessingError(let details): + return String(format: NSLocalizedString("Payment processing error: %@", comment: "DashSpend"), details) + } + } } protocol CTXSpendAPIAccessTokenProvider: AnyObject { var accessToken: String? { get } + var refreshToken: String? { get } } final class CTXSpendAPI: HTTPClient { @@ -38,7 +72,8 @@ final class CTXSpendAPI: HTTPClient { try checkAccessTokenIfNeeded(for: target) try await super.request(target) } catch HTTPClientError.statusCode(let r) where r.statusCode == 401 { - throw CTXSpendError.unauthorized + try await handleUnauthorizedError(for: target) + try await super.request(target) } } @@ -47,7 +82,8 @@ final class CTXSpendAPI: HTTPClient { try checkAccessTokenIfNeeded(for: target) return try await super.request(target) } catch HTTPClientError.statusCode(let r) where r.statusCode == 401 { - throw CTXSpendError.unauthorized + try await handleUnauthorizedError(for: target) + return try await super.request(target) } catch HTTPClientError.statusCode(let r) where r.statusCode == 400 { if target.path.contains("/api/verify") { throw CTXSpendError.invalidCode @@ -58,6 +94,28 @@ final class CTXSpendAPI: HTTPClient { } } + // Direct request method that bypasses refresh logic (used by token service) + func requestDirectly(_ target: CTXSpendEndpoint) async throws -> R where R: Decodable { + return try await super.request(target) + } + + func requestDirectly(_ target: CTXSpendEndpoint) async throws { + try await super.request(target) + } + + private func handleUnauthorizedError(for target: CTXSpendEndpoint) async throws { + guard target.authorizationType == .bearer else { + throw CTXSpendError.unauthorized + } + + try await CTXSpendTokenService.shared.refreshAccessToken() + + // Update the access token provider after refresh + accessTokenProvider = { [weak self] in + self?.ctxSpendAPIAccessTokenProvider?.accessToken + } + } + private func checkAccessTokenIfNeeded(for target: CTXSpendEndpoint) throws { guard target.authorizationType == .bearer else { return @@ -79,5 +137,10 @@ final class CTXSpendAPI: HTTPClient { ctxSpendAPIAccessTokenProvider!.accessToken } self.ctxSpendAPIAccessTokenProvider = ctxSpendAPIAccessTokenProvider + + // Configure the token service + if let tokenProvider = ctxSpendAPIAccessTokenProvider as? CTXSpendTokenProvider { + CTXSpendTokenService.shared.configure(with: tokenProvider) + } } } diff --git a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendEndpoint.swift b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendEndpoint.swift index 3d309fff0..71558f5f8 100644 --- a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendEndpoint.swift +++ b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendEndpoint.swift @@ -32,7 +32,12 @@ struct CTXSpendAPIError: Decodable { } } + struct FieldError: Decodable { + let fiatAmount: [String]? + } + var errors: [Error] + let fields: FieldError? } // MARK: - CTXSpendEndpoint @@ -40,6 +45,7 @@ struct CTXSpendAPIError: Decodable { public enum CTXSpendEndpoint { case login(email: String) case verifyEmail(email: String, code: String) + case refreshToken(RefreshTokenRequest) case purchaseGiftCard(PurchaseGiftCardRequest) case getMerchant(String) case getGiftCard(String) @@ -50,7 +56,7 @@ public enum CTXSpendEndpoint { extension CTXSpendEndpoint: TargetType, AccessTokenAuthorizable { public var authorizationType: Moya.AuthorizationType? { switch self { - case .login, .verifyEmail: + case .login, .verifyEmail, .refreshToken: return nil default: return .bearer @@ -65,6 +71,7 @@ extension CTXSpendEndpoint: TargetType, AccessTokenAuthorizable { switch self { case .login: return "login" case .verifyEmail: return "verify-email" + case .refreshToken: return "refresh-token" case .purchaseGiftCard: return "gift-cards" case .getMerchant(let merchantId): return "merchants/\(merchantId)" case .getGiftCard(let txid): return "gift-cards" @@ -73,7 +80,7 @@ extension CTXSpendEndpoint: TargetType, AccessTokenAuthorizable { public var method: Moya.Method { switch self { - case .login, .verifyEmail, .purchaseGiftCard: + case .login, .verifyEmail, .refreshToken, .purchaseGiftCard: return .post default: return .get @@ -88,6 +95,8 @@ extension CTXSpendEndpoint: TargetType, AccessTokenAuthorizable { case .verifyEmail(let email, let code): let verifyRequest = VerifyEmailRequest(email: email, code: code) return .requestJSONEncodable(verifyRequest) + case .refreshToken(let request): + return .requestJSONEncodable(request) case .purchaseGiftCard(let request): return .requestJSONEncodable(request) default: diff --git a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendService.swift b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendService.swift index 977e6e116..9884ea034 100644 --- a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendService.swift +++ b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendService.swift @@ -18,7 +18,7 @@ import Foundation import Combine -class CTXSpendService: CTXSpendAPIAccessTokenProvider, ObservableObject { +class CTXSpendService: CTXSpendAPIAccessTokenProvider, CTXSpendTokenProvider, ObservableObject { public static let shared: CTXSpendService = .init() private let userDefaults = UserDefaults.standard @@ -33,6 +33,10 @@ class CTXSpendService: CTXSpendAPIAccessTokenProvider, ObservableObject { return KeychainService.load(key: Keys.accessToken) } + var refreshToken: String? { + return KeychainService.load(key: Keys.refreshToken) + } + var userEmail: String? { KeychainService.load(key: Keys.email) } @@ -91,6 +95,24 @@ class CTXSpendService: CTXSpendAPIAccessTokenProvider, ObservableObject { updateSignInState() } + // MARK: - Token Management + + func updateTokens(accessToken: String, refreshToken: String) { + KeychainService.save(key: Keys.accessToken, data: accessToken) + KeychainService.save(key: Keys.refreshToken, data: refreshToken) + updateSignInState() + } + + func clearTokensOnRefreshFailure() { + KeychainService.delete(key: Keys.accessToken) + KeychainService.delete(key: Keys.refreshToken) + updateSignInState() + } + + func refreshToken() async throws { + try await CTXSpendTokenService.shared.refreshAccessToken() + } + // MARK: - Gift Card Methods func purchaseGiftCard(merchantId: String, fiatAmount: String, fiatCurrency: String = "USD", cryptoCurrency: String = "DASH") async throws -> GiftCardResponse { @@ -102,17 +124,87 @@ class CTXSpendService: CTXSpendAPIAccessTokenProvider, ObservableObject { ) do { - return try await CTXSpendAPI.shared.request(.purchaseGiftCard(request)) + let response: GiftCardResponse = try await CTXSpendAPI.shared.request(.purchaseGiftCard(request)) + DSLogger.log("Gift card purchased successfully: \(response)") + return response + } catch let error as CTXSpendError { + DSLogger.log("Gift card purchase failed with CTXSpendError: \(error)") + throw error + } catch let error as HTTPClientError { + DSLogger.log("Gift card purchase failed with HTTPClientError: \(error)") + + if case .statusCode(let response) = error { + switch response.statusCode { + case 400: + if let errorData = try? JSONDecoder().decode(CTXSpendAPIError.self, from: response.data) { + // Check for limit error first + if let fiatAmountErrors = errorData.fields?.fiatAmount, + let firstFiatError = fiatAmountErrors.first, + (firstFiatError == "above threshold" || firstFiatError == "below threshold") { + throw CTXSpendError.customError(NSLocalizedString("The purchase limits for this merchant have changed. Please contact CTX Support for more information.", comment: "DashSpend")) + } + + if let firstError = errorData.errors.first { + // Look for specific error messages + let errorMessage = firstError.message.lowercased() + + if errorMessage.contains("insufficient") || errorMessage.contains("funds") { + throw CTXSpendError.insufficientFunds + } else if errorMessage.contains("merchant") { + throw CTXSpendError.invalidMerchant + } else if errorMessage.contains("amount") || errorMessage.contains("value") { + throw CTXSpendError.invalidAmount + } + + // Custom error with the actual message from API + throw NSError(domain: "CTXSpend", code: 400, userInfo: [NSLocalizedDescriptionKey: firstError.message]) + } + } + case 401, 403: + throw CTXSpendError.unauthorized + case 404: + throw CTXSpendError.invalidMerchant + case 500...599: + throw CTXSpendError.networkError + default: + break + } + } + + throw CTXSpendError.unknown } catch { - throw mapError(error) + DSLogger.log("Gift card purchase failed with error: \(error)") + throw CTXSpendError.networkError } } func getMerchant(merchantId: String) async throws -> MerchantResponse { do { - return try await CTXSpendAPI.shared.request(.getMerchant(merchantId)) + let response: MerchantResponse = try await CTXSpendAPI.shared.request(.getMerchant(merchantId)) + return response + } catch let error as CTXSpendError { + DSLogger.log("Failed to get merchant with CTXSpendError: \(error)") + throw error + } catch let error as HTTPClientError { + DSLogger.log("Failed to get merchant with HTTPClientError: \(error)") + + if case .statusCode(let response) = error { + switch response.statusCode { + case 401, 403: + throw CTXSpendError.unauthorized + case 404: + throw CTXSpendError.invalidMerchant + case 500...599: + throw CTXSpendError.networkError + default: + break + } + } + + throw CTXSpendError.unknown } catch { - throw mapError(error) + DSLogger.log("Failed to get merchant with error: \(error)") + throw CTXSpendError.networkError } } diff --git a/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendTokenService.swift b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendTokenService.swift new file mode 100644 index 000000000..3733a50ae --- /dev/null +++ b/DashWallet/Sources/Models/Explore Dash/Services/CTXSpendTokenService.swift @@ -0,0 +1,81 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2025 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Foundation + +protocol CTXSpendTokenProvider: AnyObject { + var accessToken: String? { get } + var refreshToken: String? { get } + func updateTokens(accessToken: String, refreshToken: String) + func clearTokensOnRefreshFailure() +} + +// MARK: - CTXSpendTokenService + +class CTXSpendTokenService { + static let shared = CTXSpendTokenService() + + private var tokenRefreshTask: Task? + private weak var tokenProvider: CTXSpendTokenProvider? + + private init() {} + + func configure(with tokenProvider: CTXSpendTokenProvider) { + self.tokenProvider = tokenProvider + } + + func refreshAccessToken() async throws { + // If there's already a refresh task running, wait for it + if let task = tokenRefreshTask { + try await task.value + return + } + + guard let tokenProvider = tokenProvider, + let refreshToken = tokenProvider.refreshToken, + !refreshToken.isEmpty else { + return + } + + tokenRefreshTask = Task { + defer { + tokenRefreshTask = nil + } + + DSLogger.log("CTXSpend: Attempting to refresh access token") + + do { + let request = RefreshTokenRequest(refreshToken: refreshToken) + let response: RefreshTokenResponse = try await CTXSpendAPI.shared.requestDirectly(.refreshToken(request)) + + // Update tokens through the service + tokenProvider.updateTokens(accessToken: response.accessToken, refreshToken: response.refreshToken) + + DSLogger.log("CTXSpend: Token refresh successful") + } catch { + DSLogger.log("CTXSpend: Token refresh failed: \(error)") + + // Clear tokens on refresh failure + tokenProvider.clearTokensOnRefreshFailure() + + throw CTXSpendError.tokenRefreshFailed + } + } + + try await tokenRefreshTask!.value + } +} diff --git a/DashWallet/Sources/Models/Transactions/SendCoinsService.swift b/DashWallet/Sources/Models/Transactions/SendCoinsService.swift new file mode 100644 index 000000000..8967b1626 --- /dev/null +++ b/DashWallet/Sources/Models/Transactions/SendCoinsService.swift @@ -0,0 +1,169 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2022 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import Combine + +public final class SendCoinsService: NSObject { + private let transactionManager: DSTransactionManager = DWEnvironment.sharedInstance().currentChainManager.transactionManager + + // Payment processing + private var paymentProcessor: DWPaymentProcessor? + private var pendingPaymentContinuation: CheckedContinuation? + + func sendCoins(address: String, amount: UInt64, + inputSelector: SingleInputAddressSelector? = nil, adjustAmountDownwards: Bool = false) async throws + -> DSTransaction { + let chain = DWEnvironment.sharedInstance().currentChain + let account = DWEnvironment.sharedInstance().currentAccount + let transaction = DSTransaction(on: chain) + + if inputSelector == nil { + // Forming transaction normally + let script = NSData.scriptPubKey(forAddress: address, for: chain) + account.update(transaction, forAmounts: [amount], toOutputScripts: [script], withFee: true) + } + else { + // Selecting proper inputs + let balance = inputSelector!.selectFor(tx: transaction) + transaction.addOutputAddress(address, amount: amount) + let feeAmount = chain.fee(forTxSize: UInt(transaction.size) + UInt(TX_OUTPUT_SIZE)) + + if amount + feeAmount > balance { + if adjustAmountDownwards { + let adjustedAmount = amount - feeAmount + let adjustedTx = try await sendCoins(address: address, amount: adjustedAmount, inputSelector: inputSelector) + return adjustedTx + } else { + throw Error.notEnoughFunds(selected: balance, amount: amount, fee: feeAmount) + } + } + + let change = balance - (amount + feeAmount) + + if change > 0 { + let changeAddress = inputSelector!.address + transaction.addOutputAddress(changeAddress, amount: change) + transaction.sortOutputsAccordingToBIP69() + } + } + + await account.sign(transaction) + account.register(transaction, saveImmediately: false) + try await transactionManager.publishTransaction(transaction) + + return transaction + } + + // MARK: - BIP70 + + func payWithDashUrl(url paymentUrlString: String) async throws -> DSTransaction { + // Create payment input from the URL + guard let paymentUrl = URL(string: paymentUrlString) else { + throw CTXSpendError.paymentProcessingError("Invalid payment URL") + } + + // Use the existing payment infrastructure + let payModel = DWPayModel() + let paymentInput = payModel.paymentInput(with: paymentUrl) + + // If we have a BIP70 payment request URL, we need to fetch it first + guard paymentInput.request?.r != nil else { + throw CTXSpendError.paymentProcessingError("Invalid payment request") + } + + return try await fetchAndProcessPaymentRequest(paymentInput: paymentInput) + } + + private func fetchAndProcessPaymentRequest(paymentInput: DWPaymentInput) async throws -> DSTransaction { + return try await withCheckedThrowingContinuation { continuation in + self.pendingPaymentContinuation = continuation + + // Create and retain the processor + let processor = DWPaymentProcessor(delegate: self) + self.paymentProcessor = processor + + // Process the payment on the main actor to avoid Sendable issues + Task { @MainActor in + processor.processPaymentInput(paymentInput) + } + } + } + + private func completePayment(transaction: DSTransaction?, error: Swift.Error?) { + guard let continuation = pendingPaymentContinuation else { return } + + pendingPaymentContinuation = nil + + // Clean up the payment processor + paymentProcessor = nil + + if let error = error { + continuation.resume(throwing: error) + } else if let transaction = transaction { + continuation.resume(returning: transaction) + } else { + continuation.resume(throwing: CTXSpendError.paymentProcessingError("No transaction returned")) + } + } +} + +// MARK: - DWPaymentProcessorDelegate + +extension SendCoinsService: DWPaymentProcessorDelegate { + public func paymentProcessor(_ processor: DWPaymentProcessor, didSend protocolRequest: DSPaymentProtocolRequest, transaction: DSTransaction, contactItem: DWDPBasicUserItem?) { + completePayment(transaction: transaction, error: nil) + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, didFailWithError error: Swift.Error?, title: String?, message: String?) { + let fullError = NSError( + domain: "DashSpend", + code: -1, + userInfo: [ + NSLocalizedDescriptionKey: message ?? title ?? NSLocalizedString("Payment failed", comment: "") + ] + ) + completePayment(transaction: nil, error: error ?? fullError) + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, requestAmountWithDestination sendingDestination: String, details: DSPaymentProtocolDetails?, contactItem: DWDPBasicUserItem?) { + completePayment(transaction: nil, error: CTXSpendError.paymentProcessingError("Amount request not supported")) + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, requestUserActionTitle title: String?, message: String?, actionTitle: String, cancel cancelBlock: (() -> Void)?, actionBlock: (() -> Void)?) { + actionBlock?() + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, confirmPaymentOutput paymentOutput: DWPaymentOutput) { + processor.confirmPaymentOutput(paymentOutput) + } + + public func paymentProcessorDidCancelTransactionSigning(_ processor: DWPaymentProcessor) { + completePayment(transaction: nil, error: NSError(domain: "DashSpend", code: -2, userInfo: [NSLocalizedDescriptionKey: NSLocalizedString("Transaction cancelled", comment: "")])) + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, didSweepRequest protocolRequest: DSPaymentRequest, transaction: DSTransaction) { + completePayment(transaction: transaction, error: nil) + } + + public func paymentProcessor(_ processor: DWPaymentProcessor, displayFileProcessResult result: String) { } + + public func paymentProcessorDidFinishProcessingFile(_ processor: DWPaymentProcessor) { } + + public func paymentProcessor(_ processor: DWPaymentProcessor, showProgressHUDWithMessage message: String?) { } + + public func paymentInputProcessorHideProgressHUD(_ processor: DWPaymentProcessor) { } +} diff --git a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/PointOfUseDetailsViewController.swift b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/PointOfUseDetailsViewController.swift index 3d6bb686b..0f9132360 100644 --- a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/PointOfUseDetailsViewController.swift +++ b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/PointOfUseDetailsViewController.swift @@ -54,6 +54,7 @@ class PointOfUseDetailsViewController: UIViewController { super.viewDidLoad() title = pointOfUse.name configureHierarchy() + tryRefreshCtxToken() } } @@ -160,7 +161,25 @@ extension PointOfUseDetailsViewController { prepareContentView() showDetailsView() } - +} + +extension PointOfUseDetailsViewController { + func detailsView(for pointOfUse: ExplorePointOfUse) -> PointOfUseDetailsView? { + switch pointOfUse.category { + case .merchant: + return PointOfUseDetailsView(merchant: pointOfUse, isShowAllHidden: isShowAllHidden) + case .atm: + return AtmDetailsView(merchant: pointOfUse, isShowAllHidden: isShowAllHidden) + case .unknown: + return nil + } + } +} + + +// Mark: DashSpend + +extension PointOfUseDetailsViewController { private func showCTXSpendLoginInfo() { let swiftUIView = CTXSpendLoginInfoView( onCreateNewAccount: { [weak self] in @@ -195,11 +214,9 @@ extension PointOfUseDetailsViewController { private func showCTXSpendAuth(authType: CTXSpendUserAuthType) { let hostingController = UIHostingController( - rootView: NavigationView { - CTXSpendUserAuthScreen(authType: authType) { - self.navigationController?.popViewController(animated: false) - self.showDashSpendPayScreen(justAuthenticated: true) - } + rootView: CTXSpendUserAuthScreen(authType: authType) { + self.navigationController?.popViewController(animated: false) + self.showDashSpendPayScreen(justAuthenticated: true) } ) @@ -208,24 +225,19 @@ extension PointOfUseDetailsViewController { private func showDashSpendPayScreen(justAuthenticated: Bool = false) { let hostingController = UIHostingController( - rootView: NavigationView { - DashSpendPayScreen(merchant: self.pointOfUse, justAuthenticated: justAuthenticated) - } + rootView: DashSpendPayScreen(merchant: self.pointOfUse, justAuthenticated: justAuthenticated) ) self.navigationController?.pushViewController(hostingController, animated: true) } -} - -extension PointOfUseDetailsViewController { - func detailsView(for pointOfUse: ExplorePointOfUse) -> PointOfUseDetailsView? { - switch pointOfUse.category { - case .merchant: - return PointOfUseDetailsView(merchant: pointOfUse, isShowAllHidden: isShowAllHidden) - case .atm: - return AtmDetailsView(merchant: pointOfUse, isShowAllHidden: isShowAllHidden) - case .unknown: - return nil + + private func tryRefreshCtxToken() { + Task { + do { + try await CTXSpendService.shared.refreshToken() + } catch CTXSpendError.tokenRefreshFailed { + await showModalDialog(style: .warning, icon: .system("exclamationmark.triangle.fill"), heading: NSLocalizedString("Your session expired", comment: "DashSpend"), textBlock1: NSLocalizedString("It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash.", comment: "DashSpend"), positiveButtonText: NSLocalizedString("Dismiss", comment: "")) + } } } } diff --git a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/Views/PointOfUseDetailsView.swift b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/Views/PointOfUseDetailsView.swift index e38a11bdf..a374d313c 100644 --- a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/Views/PointOfUseDetailsView.swift +++ b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/Details/Views/PointOfUseDetailsView.swift @@ -334,7 +334,7 @@ extension PointOfUseDetailsView { let savingsTag = SavingsTagView() savingsTag.backgroundColor = .clear savingsTag.translatesAutoresizingMaskIntoConstraints = false - savingsTag.setText(String(format: NSLocalizedString("Save %.2f%%", comment: "DashSpend"), Double(m.savingsBasisPoints) / 100)) + savingsTag.setText(String(format: NSLocalizedString("Save %.2f%%", comment: "DashSpend"), m.toSavingPercentages())) containerView.addSubview(savingsTag) NSLayoutConstraint.activate([ diff --git a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/List/Cells/MerchantItemCell.swift b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/List/Cells/MerchantItemCell.swift index e4beb53c8..c62c1294f 100644 --- a/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/List/Cells/MerchantItemCell.swift +++ b/DashWallet/Sources/UI/Explore Dash/Merchants & ATMs/List/Cells/MerchantItemCell.swift @@ -47,7 +47,7 @@ class MerchantItemCell: PointOfUseItemCell { if merchant.savingsBasisPoints > 0 { savingsLabel.isHidden = false - savingsLabel.text = String(format: NSLocalizedString("~%.0f%%", comment: "Savings percentage"), Double(merchant.savingsBasisPoints) / 100) + savingsLabel.text = String(format: NSLocalizedString("~%.0f%%", comment: "Savings percentage"), merchant.toSavingPercentages()) } else { savingsLabel.isHidden = true } diff --git a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendTermsScreen.swift b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendTermsScreen.swift index 5ad38f4ed..571e37294 100644 --- a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendTermsScreen.swift +++ b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendTermsScreen.swift @@ -111,6 +111,9 @@ struct CTXSpendTermsScreen: View { .padding(20) } } + .navigationBarHidden(true) + .navigationBarBackButtonHidden(true) + .edgesIgnoringSafeArea(.top) NavigationLink( destination: CTXSpendUserAuthScreen( diff --git a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendUserAuthScreen.swift b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendUserAuthScreen.swift index 4fafc0555..4bcae2226 100644 --- a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendUserAuthScreen.swift +++ b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/CTXSpendUserAuthScreen.swift @@ -141,11 +141,12 @@ struct CTXSpendUserAuthScreen: View { showDecimalSeparator: false, actionButtonText: NSLocalizedString("Continue", comment: ""), actionEnabled: true, + inProgress: viewModel.isLoading, actionHandler: { viewModel.onContinue() } ).frame(maxWidth: .infinity) - .frame(height: 320) + .frame(height: UIDevice.isIphone5OrLess ? 290 : 320) .padding(.horizontal, 20) .padding(.bottom, 20) } else { @@ -181,6 +182,10 @@ struct CTXSpendUserAuthScreen: View { } } .background(Color.secondaryBackground) + .ignoresSafeArea(.keyboard, edges: .bottom) + .navigationBarHidden(true) + .navigationBarBackButtonHidden(true) + .edgesIgnoringSafeArea(.top) .onAppear { viewModel.setup(screenType: authType) diff --git a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendConfirmationDialog.swift b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendConfirmationDialog.swift new file mode 100644 index 000000000..24602da84 --- /dev/null +++ b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendConfirmationDialog.swift @@ -0,0 +1,161 @@ +// +// Created by Andrei Ashikhmin +// Copyright © 2025 Dash Core Group. All rights reserved. +// +// Licensed under the MIT License (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://opensource.org/licenses/MIT +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import SwiftUI +import SDWebImageSwiftUI + +struct DashSpendConfirmationDialog: View { + let amount: String + let merchantName: String + let merchantIconUrl: String + let originalPrice: Decimal + let discount: Decimal + let onConfirm: () -> Void + let onCancel: () -> Void + + @Environment(\.presentationMode) private var presentationMode + + private let fiatFormatter = NumberFormatter.fiatFormatter(currencyCode: kDefaultCurrencyCode) + + var body: some View { + VStack(spacing: 40) { + HStack { + Text(fiatFormatter.currencySymbol + amount) + .font(.system(size: 32, weight: .medium)) + .foregroundColor(.primaryText) + } + + // Details + VStack(spacing: 0) { + HStack(spacing: 8) { + Text(NSLocalizedString("From", comment: "DashSpend")) + .font(.body2) + .fontWeight(.medium) + .foregroundColor(.tertiaryText) + + Spacer() + + Image("image.explore.dash.wts.dash") + .resizable() + .frame(width: 24, height: 24) + + Text(NSLocalizedString("Dash Wallet", comment: "DashSpend")) + .font(.body2) + .foregroundColor(.primaryText) + } + .padding(.horizontal, 12) + .frame(height: 50) + + HStack(spacing: 8) { + Text(NSLocalizedString("To", comment: "DashSpend")) + .font(.body2) + .fontWeight(.medium) + .foregroundColor(.tertiaryText) + + Spacer() + + WebImage(url: URL(string: merchantIconUrl)) + .resizable() + .indicator(.activity) + .transition(.fade(duration: 0.3)) + .scaledToFit() + .frame(width: 24, height: 24) + .clipShape(Circle()) + + Text(merchantName) + .font(.body2) + .foregroundColor(.primaryText) + } + .padding(.horizontal, 12) + .frame(height: 50) + + HStack { + Text(NSLocalizedString("Gift card total", comment: "DashSpend")) + .font(.body2) + .fontWeight(.medium) + .foregroundColor(.tertiaryText) + + Spacer() + + Text(fiatFormatter.string(from: NSDecimalNumber(decimal: originalPrice)) ?? "") + .font(.body2) + .foregroundColor(.primaryText) + } + .padding(.horizontal, 12) + .frame(height: 50) + + HStack { + Text(NSLocalizedString("Discount", comment: "DashSpend")) + .font(.body2) + .fontWeight(.medium) + .foregroundColor(.tertiaryText) + + Spacer() + + Text("\(NSDecimalNumber(decimal: discount * 100).intValue)%") + .font(.body2) + .foregroundColor(.primaryText) + } + .padding(.horizontal, 12) + .frame(height: 50) + + HStack { + Text(NSLocalizedString("You pay", comment: "DashSpend")) + .font(.body2) + .fontWeight(.medium) + .foregroundColor(.tertiaryText) + + Spacer() + + Text(fiatFormatter.string(from: NSDecimalNumber(decimal: originalPrice * (1 - discount))) ?? "") + .font(.body2) + .foregroundColor(.primaryText) + } + .padding(.horizontal, 12) + .frame(height: 50) + } + .background(Color.white) + .cornerRadius(12) + .shadow(color: Color.shadow, radius: 10, x: 0, y: 5) + + HStack(spacing: 20) { + Button(action: onCancel) { + Text(NSLocalizedString("Cancel", comment: "DashSpend")) + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.primaryText) + .frame(maxWidth: .infinity) + .frame(height: 46) + } + .background(Color(UIColor.systemGray5)) + .cornerRadius(12) + + Button(action: onConfirm) { + Text(NSLocalizedString("Confirm", comment: "DashSpend")) + .font(.system(size: 16, weight: .semibold)) + .foregroundColor(.white) + } + .frame(maxWidth: .infinity) + .frame(height: 46) + .background(Color.dashBlue) + .cornerRadius(12) + } + } + .padding(.top, 15) + .padding(.horizontal, 20) + .edgesIgnoringSafeArea(.bottom) + } +} diff --git a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayScreen.swift b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayScreen.swift index 24720fcde..8b1e259ac 100644 --- a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayScreen.swift +++ b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayScreen.swift @@ -17,15 +17,18 @@ import SwiftUI import SDWebImageSwiftUI -import Foundation struct DashSpendPayScreen: View { @Environment(\.presentationMode) private var presentationMode @StateObject private var viewModel: DashSpendPayViewModel let merchant: ExplorePointOfUse @State var justAuthenticated: Bool - @State var showConfirmToast: Bool // TODO: temp + @State var showConfirmToast: Bool @State private var showConfirmationDialog = false + @State private var showErrorDialog = false + @State private var showCustomErrorDialog = false + @State private var errorMessage = "" + @State private var errorTitle = "" init(merchant: ExplorePointOfUse, justAuthenticated: Bool = false) { self.merchant = merchant @@ -78,7 +81,7 @@ struct DashSpendPayScreen: View { HStack { if viewModel.showLimits { - Text(viewModel.minimumLimit) + Text(viewModel.minimumLimitMessage) .font(.body2) .foregroundColor(Color.primaryText) .padding(.leading, 20) @@ -103,7 +106,7 @@ struct DashSpendPayScreen: View { if viewModel.showLimits { Spacer() - Text(viewModel.maximumimit) + Text(viewModel.maximumLimitMessage) .font(.body2) .foregroundColor(Color.primaryText) .padding(.trailing, 20) @@ -111,6 +114,7 @@ struct DashSpendPayScreen: View { } .frame(maxWidth: .infinity) + .frame(height: 20) .padding(.top, 20) .padding(.bottom, 10) @@ -120,8 +124,14 @@ struct DashSpendPayScreen: View { value: $viewModel.input, showDecimalSeparator: true, actionButtonText: NSLocalizedString("Preview", comment: ""), - actionEnabled: viewModel.error == nil && !viewModel.showLimits, + actionEnabled: viewModel.error == nil && !viewModel.showLimits && !viewModel.isLoading && viewModel.hasValidLimits, + inProgress: viewModel.isProcessingPayment, actionHandler: { + if !viewModel.isUserSignedIn() { + showSignInError() + return + } + showConfirmationDialog = true } ) @@ -144,11 +154,48 @@ struct DashSpendPayScreen: View { if showConfirmToast { ToastView( - text: NSLocalizedString("Not implemented", comment: "") + text: NSLocalizedString("Gift card purchase successful", comment: "DashSpend") ) .frame(height: 20) .padding(.bottom, 30) } + + if showErrorDialog { + ModalDialog( + style: .error, + icon: .system("exclamationmark.triangle.fill"), + heading: errorTitle, + textBlock1: errorMessage, + positiveButtonText: NSLocalizedString("OK", comment: ""), + positiveButtonAction: { + showErrorDialog = false + } + ) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(Color.black.opacity(0.7)) + .edgesIgnoringSafeArea(.all) + } + + if showCustomErrorDialog { + ModalDialog( + style: .error, + icon: .system("exclamationmark.triangle.fill"), + heading: errorTitle, + textBlock1: errorMessage, + positiveButtonText: NSLocalizedString("Close", comment: ""), + positiveButtonAction: { + showCustomErrorDialog = false + }, + negativeButtonText: NSLocalizedString("Contact CTX Support", comment: "DashSpend"), + negativeButtonAction: { + showCustomErrorDialog = false + viewModel.contactCTXSupport() + } + ) + .frame(maxWidth: .infinity, maxHeight: .infinity) + .background(Color.black.opacity(0.7)) + .edgesIgnoringSafeArea(.all) + } } .ignoresSafeArea(.all, edges: .bottom) .background(Color.primaryBackground) @@ -166,22 +213,18 @@ struct DashSpendPayScreen: View { } .sheet(isPresented: $showConfirmationDialog) { let dialog = BottomSheet( - title: NSLocalizedString("Confirm", comment: "DashSpend confirmation dialog title"), + title: NSLocalizedString("Confirm", comment: "DashSpend"), showBackButton: Binding.constant(false) ) { - ConfirmationDialog( + DashSpendConfirmationDialog( amount: viewModel.input, merchantName: viewModel.merchantTitle, merchantIconUrl: viewModel.merchantIconUrl, originalPrice: viewModel.amount, discount: viewModel.savingsFraction, onConfirm: { - // TODO: Handle confirmation action showConfirmationDialog = false - showConfirmToast = true - DispatchQueue.main.asyncAfter(deadline: .now() + 3) { - showConfirmToast = false - } + purchaseGiftCard() }, onCancel: { showConfirmationDialog = false @@ -196,146 +239,45 @@ struct DashSpendPayScreen: View { } } } -} - -struct ConfirmationDialog: View { - let amount: String - let merchantName: String - let merchantIconUrl: String - let originalPrice: Decimal - let discount: Decimal - let onConfirm: () -> Void - let onCancel: () -> Void - @Environment(\.presentationMode) private var presentationMode - - private let fiatFormatter = NumberFormatter.fiatFormatter(currencyCode: kDefaultCurrencyCode) - - var body: some View { - VStack(spacing: 40) { - HStack { - Text(fiatFormatter.currencySymbol + amount) - .font(.system(size: 32, weight: .medium)) - .foregroundColor(.primaryText) - } + private func purchaseGiftCard() { + Task { + do { + try await viewModel.purchaseGiftCardAndPay() - // Details - VStack(spacing: 0) { - HStack(spacing: 8) { - Text(NSLocalizedString("From", comment: "DashSpend")) - .font(.body2) - .fontWeight(.medium) - .foregroundColor(.tertiaryText) - - Spacer() - - Image("image.explore.dash.wts.dash") - .resizable() - .frame(width: 24, height: 24) - - Text(NSLocalizedString("Dash Wallet", comment: "DashSpend")) - .font(.body2) - .foregroundColor(.primaryText) - } - .padding(.horizontal, 12) - .frame(height: 50) - - HStack(spacing: 8) { - Text(NSLocalizedString("To", comment: "DashSpend")) - .font(.body2) - .fontWeight(.medium) - .foregroundColor(.tertiaryText) - - Spacer() - - WebImage(url: URL(string: merchantIconUrl)) - .resizable() - .indicator(.activity) - .transition(.fade(duration: 0.3)) - .scaledToFit() - .frame(width: 24, height: 24) - .clipShape(Circle()) - - Text(merchantName) - .font(.body2) - .foregroundColor(.primaryText) - } - .padding(.horizontal, 12) - .frame(height: 50) - - HStack { - Text(NSLocalizedString("Gift card total", comment: "DashSpend")) - .font(.body2) - .fontWeight(.medium) - .foregroundColor(.tertiaryText) - - Spacer() - - Text(fiatFormatter.string(from: NSDecimalNumber(decimal: originalPrice)) ?? "") - .font(.body2) - .foregroundColor(.primaryText) - } - .padding(.horizontal, 12) - .frame(height: 50) - - HStack { - Text(NSLocalizedString("Discount", comment: "DashSpend")) - .font(.body2) - .fontWeight(.medium) - .foregroundColor(.tertiaryText) - - Spacer() - - Text("\(NSDecimalNumber(decimal: discount * 100).intValue)%") - .font(.body2) - .foregroundColor(.primaryText) - } - .padding(.horizontal, 12) - .frame(height: 50) - - HStack { - Text(NSLocalizedString("You pay", comment: "DashSpend")) - .font(.body2) - .fontWeight(.medium) - .foregroundColor(.tertiaryText) - - Spacer() - - Text(fiatFormatter.string(from: NSDecimalNumber(decimal: originalPrice * (1 - discount))) ?? "") - .font(.body2) - .foregroundColor(.primaryText) - } - .padding(.horizontal, 12) - .frame(height: 50) - } - .background(Color.white) - .cornerRadius(12) - .shadow(color: Color.shadow, radius: 10, x: 0, y: 5) - - HStack(spacing: 20) { - Button(action: onCancel) { - Text(NSLocalizedString("Cancel", comment: "DashSpend")) - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(.primaryText) - .frame(maxWidth: .infinity) - .frame(height: 46) + // Close the confirmation dialog and show success toast + showConfirmationDialog = false + showConfirmToast = true + DispatchQueue.main.asyncAfter(deadline: .now() + 3) { + showConfirmToast = false + presentationMode.wrappedValue.dismiss() } - .background(Color(UIColor.systemGray5)) - .cornerRadius(12) - - Button(action: onConfirm) { - Text(NSLocalizedString("Confirm", comment: "DashSpend")) - .font(.system(size: 16, weight: .semibold)) - .foregroundColor(.white) - .frame(maxWidth: .infinity) - .frame(height: 46) + } catch let error as CTXSpendError { + showConfirmationDialog = false + errorTitle = NSLocalizedString("Purchase Failed", comment: "DashSpend") + errorMessage = error.localizedDescription + + if case .customError = error { + showCustomErrorDialog = true + } else { + showErrorDialog = true } - .background(Color.dashBlue) - .cornerRadius(12) + + DSLogger.log("Gift card purchase failed with CTXSpendError: \(error)") + } catch { + showConfirmationDialog = false + errorTitle = NSLocalizedString("Error", comment: "") + errorMessage = error.localizedDescription + showErrorDialog = true + + DSLogger.log("Gift card purchase failed with error: \(error)") } } - .padding(.top, 15) - .padding(.horizontal, 20) - .edgesIgnoringSafeArea(.bottom) + } + + private func showSignInError() { + errorTitle = NSLocalizedString("Sign in required", comment: "Alert title") + errorMessage = NSLocalizedString("You need to sign in to DashSpend to purchase gift cards.", comment: "DashSpend") + showErrorDialog = true } } diff --git a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayViewModel.swift b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayViewModel.swift index 588b98463..39ca5b1ce 100644 --- a/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayViewModel.swift +++ b/DashWallet/Sources/UI/Explore Dash/Views/DashSpend/DashSpendPayViewModel.swift @@ -21,14 +21,17 @@ import Combine private let defaultCurrency = kDefaultCurrencyCode @MainActor -class DashSpendPayViewModel: ObservableObject { +class DashSpendPayViewModel: NSObject, ObservableObject { private var cancellableBag = Set() private let fiatFormatter = NumberFormatter.fiatFormatter(currencyCode: defaultCurrency) - - private let minimumAmount: Decimal = 5 // TODO: limits - private let maximumAmount: Decimal = 50 + private let ctxSpendService = CTXSpendService.shared + private let sendCoinsService = SendCoinsService() + + private var merchantId: String = "" private(set) var amount: Decimal = 0 private(set) var savingsFraction: Decimal = 0.0 + @Published private(set) var isLoading = false + @Published private(set) var isProcessingPayment = false let currencySymbol: String = { let locale = Locale.current as NSLocale @@ -39,6 +42,8 @@ class DashSpendPayViewModel: ObservableObject { @Published var merchantIconUrl: String = "" @Published var walletBalance: UInt64 = 0 @Published var coinJoinBalance: UInt64 = 0 + @Published var minimumAmount: Decimal = 0 + @Published var maximumAmount: Decimal = 0 @Published var error: Error? = nil @Published var input: String = "0" { didSet { @@ -74,16 +79,21 @@ class DashSpendPayViewModel: ObservableObject { NSLocalizedString("You are buying a %@ gift card for %@ (%d%% discount)", comment: "DashSpend"), originalPrice, formattedDiscountedPrice, discount) } - var showCost: Bool { error == nil && amount >= minimumAmount && amount <= maximumAmount } - var showLimits: Bool { error == nil && !showCost } - var minimumLimit: String { String.localizedStringWithFormat(NSLocalizedString("Min: %@", comment: "DashSpend"), fiatFormatter.string(for: minimumAmount) ?? "0.0" ) } - var maximumimit: String { String.localizedStringWithFormat(NSLocalizedString("Max: %@", comment: "DashSpend"), fiatFormatter.string(for: maximumAmount) ?? "0.0" ) } + var showCost: Bool { error == nil && amount >= minimumAmount && amount <= maximumAmount && hasValidLimits } + var showLimits: Bool { error == nil && !showCost && hasValidLimits } + var hasValidLimits: Bool { minimumAmount > 0 || maximumAmount > 0 } + var minimumLimitMessage: String { String.localizedStringWithFormat(NSLocalizedString("Min: %@", comment: "DashSpend"), fiatFormatter.string(for: minimumAmount) ?? "0.0" ) } + var maximumLimitMessage: String { String.localizedStringWithFormat(NSLocalizedString("Max: %@", comment: "DashSpend"), fiatFormatter.string(for: maximumAmount) ?? "0.0" ) } var isMixing: Bool { CoinJoinService.shared.mixingState.isInProgress } init(merchant: ExplorePointOfUse) { merchantTitle = merchant.name merchantIconUrl = merchant.logoLocation ?? "" - savingsFraction = Decimal(merchant.merchant?.savingsBasisPoints ?? 0) / Decimal(10000) + savingsFraction = Decimal(merchant.merchant?.toSavingsFraction() ?? 0.0) + + if let merchantId = merchant.merchant?.merchantId { + self.merchantId = merchantId + } } func subscribeToUpdates() { @@ -101,6 +111,70 @@ class DashSpendPayViewModel: ObservableObject { } self.refreshBalance() + + // Get updated merchant info from CTX API if user is signed in + Task { + await updateMerchantInfo() + } + } + + func purchaseGiftCardAndPay() async throws { + isProcessingPayment = true + defer { isProcessingPayment = false } + + let response = try await purchaseGiftCardAPI() + + // Success! Log the response + DSLogger.log("============ GIFT CARD PURCHASE SUCCESSFUL ============") + DSLogger.log("Merchant: \(response.merchantName)") + DSLogger.log("Amount: \(response.paymentFiatCurrency) \(response.paymentFiatAmount)") + DSLogger.log("Dash Amount: \(response.paymentCryptoAmount)") + DSLogger.log("Dash Payment URL: \(response.paymentUrls.first?.value ?? "none")") + DSLogger.log("Payment ID: \(response.paymentId)") + DSLogger.log("Created At: \(response.created)") + DSLogger.log("Status: \(response.status)") + DSLogger.log("====================================================") + + // Process the payment using the payment URL + guard let paymentUrlString = response.paymentUrls.first?.value else { + throw CTXSpendError.paymentProcessingError("No payment URL received") + } + + let transaction = try await sendCoinsService.payWithDashUrl(url: paymentUrlString) + + // Payment successful - save gift card information + DSLogger.log("Payment transaction completed: \(transaction.txHashHexString)") + saveGiftCardDummy(txHashData: transaction.txHashData, giftCardId: response.paymentId) + } + + func isUserSignedIn() -> Bool { + return ctxSpendService.isUserSignedIn + } + + func contactCTXSupport() { + let subject = "CTX Issue: Spending Limit Problem" + + var body = "Merchant details\n" + body += "name: \(merchantTitle)\n" + body += "id: \(merchantId)\n" + body += "min: \(minimumAmount)\n" + body += "max: \(maximumAmount)\n" + body += "discount: \(savingsFraction)\n" +// body += "denominations type: \(denominationsType)\n" TODO: fixed denoms +// body += "denominations: \(denominations)\n" + body += "\n" + + body += "Purchase Details\n" + body += "amount: \(input)\n" + body += "\n" + + // Add device information + body += "Platform: iOS\n" + body += "App version: \(Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "unknown")\n" + + if let emailURL = URL(string: "mailto:\(CTXConstants.supportEmail)?subject=\(subject.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "")&body=\(body.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "")") { + UIApplication.shared.open(emailURL) + } } func unsubscribeFromAll() { @@ -135,4 +209,51 @@ class DashSpendPayViewModel: ObservableObject { return dashAmount.plainDashAmount > allAvailableFunds } + + // MARK: - CTX Integration + + private func updateMerchantInfo() async { + guard !merchantId.isEmpty, ctxSpendService.isUserSignedIn else { return } + + do { + let merchantInfo = try await ctxSpendService.getMerchant(merchantId: merchantId) + + // Update merchant details + savingsFraction = Decimal(merchantInfo.savingsPercentage) / Decimal(10000) + + if merchantInfo.denominationType == .Range { + minimumAmount = Decimal(merchantInfo.minimumCardPurchase) + maximumAmount = Decimal(merchantInfo.maximumCardPurchase) + } + + checkAmountForErrors() + } catch { + DSLogger.log("Failed to get merchant info: \(error)") + } + } + + private func purchaseGiftCardAPI() async throws -> GiftCardResponse { + guard !merchantId.isEmpty, ctxSpendService.isUserSignedIn else { + DSLogger.log("Purchase gift card failed: User not signed in or merchant ID is empty") + throw CTXSpendError.unauthorized + } + + DSLogger.log("Attempting to purchase gift card for merchant \(merchantId) with amount \(amount)") + + let fiatAmountString = String(format: "%.2f", Double(truncating: amount as NSDecimalNumber)) + DSLogger.log("Making API request to purchase gift card: merchantId=\(merchantId), amount=\(fiatAmountString)USD") + + return try await ctxSpendService.purchaseGiftCard( + merchantId: merchantId, + fiatAmount: fiatAmountString, + fiatCurrency: "USD", + cryptoCurrency: "DASH" + ) + } + + private func saveGiftCardDummy(txHashData: Data, giftCardId: String) { + DSLogger.log("Gift card saved - txId: \(txHashData.hexEncodedString()), giftCardId: \(giftCardId)") + + // TODO: save dummy to SQLite + } } diff --git a/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift b/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift index 9c066dc55..376f46c46 100644 --- a/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift +++ b/DashWallet/Sources/UI/Payment Controller/Enter Amount/ProvideAmountViewController.swift @@ -93,7 +93,11 @@ final class ProvideAmountViewController: SendAmountViewController { destination: destination, balanceLabel: balanceLabel, model: self.model as! SendAmountModel, - avatarView: { UIViewWrapper(uiView: avatarView ?? EmptyUIView()) } + avatarView: { + if let avatarView = avatarView { + UIViewWrapper(uiView: avatarView) + } + } ) let swiftUIController = UIHostingController(rootView: intro) swiftUIController.view.backgroundColor = UIColor.dw_secondaryBackground() @@ -193,6 +197,7 @@ struct ProvideAmountIntro: View { destination: destination, dashBalance: CoinJoinService.shared.mixingState.isInProgress ? model.coinJoinBalance : model.walletBalance, balanceLabel: balanceLabel + ":", + authCallback: model.auth, avatarView: avatarView ) } diff --git a/DashWallet/Sources/UI/Payments/PaymentModels/DWPaymentProcessor.m b/DashWallet/Sources/UI/Payments/PaymentModels/DWPaymentProcessor.m index a9e883052..e9ce68724 100644 --- a/DashWallet/Sources/UI/Payments/PaymentModels/DWPaymentProcessor.m +++ b/DashWallet/Sources/UI/Payments/PaymentModels/DWPaymentProcessor.m @@ -159,7 +159,7 @@ - (void)processPaymentInput:(DWPaymentInput *)paymentInput { self.paymentInput = paymentInput; if (paymentInput.request) { - if (paymentInput.source == DWPaymentInputSource_ScanQR && paymentInput.request.isValidAsNonDashpayPaymentRequest) { + if ((paymentInput.source == DWPaymentInputSource_ScanQR || paymentInput.source == DWPaymentInputSource_URL) && paymentInput.request.isValidAsNonDashpayPaymentRequest) { DSPaymentProtocolRequest *protocolRequest = [self protocolRequestFromPaymentRequest:self.paymentInput.request]; [self txManagerRequestingAdditionalInfo:DSRequestingAdditionalInfo_Amount protocolRequest:protocolRequest]; diff --git a/DashWallet/Sources/UI/SwiftUI Components/NumericKeyboardView.swift b/DashWallet/Sources/UI/SwiftUI Components/NumericKeyboardView.swift index 12611ae25..a46e3df03 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/NumericKeyboardView.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/NumericKeyboardView.swift @@ -5,6 +5,7 @@ struct NumericKeyboardView: View { let showDecimalSeparator: Bool let actionButtonText: String let actionEnabled: Bool + let inProgress: Bool let actionHandler: () -> Void private var rows: [[String]] { @@ -43,13 +44,16 @@ struct NumericKeyboardView: View { .foregroundColor(.primaryText) } } + .disabled(inProgress) } } + .opacity(inProgress ? 0.5 : 1.0) } DashButton( text: actionButtonText, isEnabled: !value.isEmpty && actionEnabled, + isLoading: inProgress, action: actionHandler ) .padding(.top, 20) @@ -78,6 +82,7 @@ struct NumericKeyboardView: View { showDecimalSeparator: true, actionButtonText: NSLocalizedString("Verify", comment: "Button title for numeric keyboard action"), actionEnabled: true, + inProgress: false, actionHandler: { print("Action button tapped") } ).frame(height: 400) } diff --git a/DashWallet/Sources/UI/SwiftUI Components/SendIntro.swift b/DashWallet/Sources/UI/SwiftUI Components/SendIntro.swift index 5a0fca217..946587d27 100644 --- a/DashWallet/Sources/UI/SwiftUI Components/SendIntro.swift +++ b/DashWallet/Sources/UI/SwiftUI Components/SendIntro.swift @@ -25,6 +25,7 @@ struct SendIntro: View { var destination: String? = nil var dashBalance: UInt64? = nil var balanceLabel: String? = nil + var authCallback: ((@escaping (Bool) -> Void) -> Void)? = nil @ViewBuilder var avatarView: () -> Content var body: some View { @@ -65,7 +66,7 @@ struct SendIntro: View { } Button(action: { - balanceHidden.toggle() + toggleBalanceVisibility() }) { Image(systemName: balanceHidden ? "eye.slash.fill" : "eye.fill") .resizable() @@ -84,6 +85,18 @@ struct SendIntro: View { }.frame(maxWidth: .infinity, alignment: .leading) } + private func toggleBalanceVisibility() { + if let authCallback = authCallback, balanceHidden { + authCallback { [self] isAuthenticated in + if isAuthenticated { + balanceHidden.toggle() + } + } + } else { + balanceHidden.toggle() + } + } + @ViewBuilder private func FormattedFiatText(from dashAmount: UInt64) -> some View { let text = (try? CurrencyExchanger.shared.convertDash(amount: dashAmount.dashAmount, to: App.fiatCurrency).formattedFiatAmount) ?? NSLocalizedString("Not available", comment: "") diff --git a/DashWallet/ar.lproj/Localizable.strings b/DashWallet/ar.lproj/Localizable.strings index 3a2321aaf..db510869d 100644 --- a/DashWallet/ar.lproj/Localizable.strings +++ b/DashWallet/ar.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "تجربة بديهية ومألوفة عبر جميع أجهزتك"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "اتصل بدعم كوين بيس"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "خطأ"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "رصيد غير كاف"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "رسوم الشبكة"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "طريقة الدفع "; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "يرجى وضع هاتفك بالقرب من جهاز NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "يرجى النقر على الكلمات من عبارة الاسترداد بالترتيب الصحيح"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "شراء"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "إستقبال سريع"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "اظهر جملة الاسترداد"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "توضح هذه الخطوة الإضافية أنك تحاول حقًا إجراء معاملة."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "سيكون الرقم السري هذا مطلوبًا لإلغاء قفل تطبيقك في كل مرة تستخدمه."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "إلمس لمعرفة الحد"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "تاريخ المعاملات"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/bg.lproj/Localizable.strings b/DashWallet/bg.lproj/Localizable.strings index b7d5aeddf..a0f787df5 100644 --- a/DashWallet/bg.lproj/Localizable.strings +++ b/DashWallet/bg.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Интуитивно и познато преживяване на всичките Ви устройства"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Грешка"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Недостатъчно средства"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Невалидна сума"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Мрежа"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Мрежова такса"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Моля поставете вашият телефон близо до NFC устройство."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Моля, докоснете думите от фразата за възстановяване в правилния ред"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Бързо получаване"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Покажи фраза за възстановяване"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Този ПИН ще бъде необходим за отключване на приложението ви всеки път, когато го използвате."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID лимит"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Вашата транзакция беше изпратена и сумата би трябвало да се появи във вашият портфейл до няколко минути."; diff --git a/DashWallet/ca.lproj/Localizable.strings b/DashWallet/ca.lproj/Localizable.strings index 0bda494cd..c5916ec9f 100644 --- a/DashWallet/ca.lproj/Localizable.strings +++ b/DashWallet/ca.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Comissió de xarxa"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/cs.lproj/Localizable.strings b/DashWallet/cs.lproj/Localizable.strings index 972921292..313fc1cd1 100644 --- a/DashWallet/cs.lproj/Localizable.strings +++ b/DashWallet/cs.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Intuitivní používání napříč všemi tvými zařízeními"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Čeká na přidání mezi kontakty"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Chyba"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Při aktualizaci profilu se stala chyba"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Nedostatečný zůstatek"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Neplatná částka"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Neplatný QR kód"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Pozvání"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Síť"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Poplatek síti"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Placení..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Přiložte váš telefon k zařízení NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Klepněte na slova z vaší fráze pro obnovení ve správném pořadí"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Přijmout"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Zobrazit frázi pro obnovení"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Tento PIN bude požadován pro odemčení aplikace pokaždé, když ji budete chtít použít."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Transakce byla odeslána a částka by se měla objevit v pěněžence během pár minut."; diff --git a/DashWallet/da.lproj/Localizable.strings b/DashWallet/da.lproj/Localizable.strings index 095c07922..2176c0fd4 100644 --- a/DashWallet/da.lproj/Localizable.strings +++ b/DashWallet/da.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Fejl"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Netværksgebyr"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/de.lproj/Localizable.strings b/DashWallet/de.lproj/Localizable.strings index 7fb7d473f..d7e44f15e 100644 --- a/DashWallet/de.lproj/Localizable.strings +++ b/DashWallet/de.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Eine intuitive und gewohnte Erfahrung über alle Gerätetypen hinweg"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "und"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Coinbase Support kontaktieren"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Kontaktanfrage ausstehend"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Fehler"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Fehler beim Updaten deines Profils"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gutscheinkarte"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Guthaben nicht ausreichend"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Ungültiger Betrag"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Ungültige Dash Adresse"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Ungültiger QR-Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Einladung"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Es wäre selbst für erfahrene Nutzer sehr schwer, deine Transaktionshistorie zu bestimmen."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Netzwerk"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Netzwerk-Gebühr"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Nicht festgelegt"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Bezahle..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Zahlungsmethode"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Zahlungsart"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Bitte halte dein Telefon nahe an das NFC-Gerät."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Bitte tippe die Wörter deiner Wiederherstellungsphrase in der richtigen Reihenfolge an"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Kaufen"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Schnell Empfangen"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Wiederherstellungsphrase anzeigen"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Signiere die Nachricht."; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Der Mindestbetrag für eine Transaktion ist %@."; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Dieser zusätzliche Schritt beweist, dass es wirklich du bist der die Transaktion ausführt."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Die PIN muss bei jedem Verwenden der App zum Entsperren eingegeben werden."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch-ID Limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaktionshistorie"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Du musst 5 Minuten warten, bevor du die nächste Auszahlung beginnen kannst."; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Deine Anfrage wurde abgebrochen."; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Deine Transaktion wurde versendet und der Betrag sollte in ein paar Minuten in der Wallet zu sehen sein."; diff --git a/DashWallet/el.lproj/Localizable.strings b/DashWallet/el.lproj/Localizable.strings index 969cb145f..13780f36e 100644 --- a/DashWallet/el.lproj/Localizable.strings +++ b/DashWallet/el.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Μια διαισθητική και οικεία εμπειρία σε όλες τις συσκευές σας"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "και"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Επικοινωνία με την υποστήριξη της Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Εκκρεμεί Αίτημα Επαφής"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Σφάλμα"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Σφάλμα ενημέρωσης του προφίλ σας"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Δωροκάρτα"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Ανεπαρκή χρήματα"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Ανεπαρκές ποσό"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Μη έγκυρη διεύθυνση Dash!"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Μη έγκυρος κωδικός QR"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Πρόσκληση"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Θα ήταν πολύ δύσκολο για προχωρημένους χρήστες με οποιοδήποτε επίπεδο τεχνική εξειδίκευση να προσδιορίσουν το ιστορικό συναλλαγών σας."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Δίκτυο"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Τέλος δικτύου"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Δεν έχει καθοριστεί"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Πληρωμή..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Μέθοδος πληρωμής"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Τύπος πληρωμής"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Τοποθετήστε το τηλέφωνό σας κοντά στη συσκευή NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Πατήστε στις λέξεις από τη φράση ανάκτησης σας με τη σωστή σειρά"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Αγορά"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Γρήγορη Λήψη"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Προβολή Φράσης Ανάκτησης"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Υπογράψτε το μήνυμα"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Το ελάχιστο ποσό που μπορείτε να στείλετε είναι %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Αυτό το επιπλέον βήμα δείχνει ότι πραγματικά προσπαθείτε να κάνετε μια συναλλαγή."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Αυτός ο κωδικός PIN θα χρειαστεί να ξεκλειδώσετε την εφαρμογή σας κάθε φορά που την χρησιμοποιείτε."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Όριο Touch ID "; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Ιστορικό συναλλαγών"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Πρέπει να περιμένετε 5 λεπτά πριν ξεκινήσετε άλλη ανάληψη."; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Το αίτημά σας ακυρώθηκε"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Η συναλλαγή σας απεστάλη και το ποσό θα πρέπει να εμφανιστεί στο πορτοφόλι σας σε λίγα λεπτά."; diff --git a/DashWallet/en.lproj/Localizable.strings b/DashWallet/en.lproj/Localizable.strings index 52a625214..b7bd2c83d 100644 --- a/DashWallet/en.lproj/Localizable.strings +++ b/DashWallet/en.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/eo.lproj/Localizable.strings b/DashWallet/eo.lproj/Localizable.strings index 68bef653b..edecabce2 100644 --- a/DashWallet/eo.lproj/Localizable.strings +++ b/DashWallet/eo.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Eraro"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/es.lproj/Localizable.strings b/DashWallet/es.lproj/Localizable.strings index 350908f86..575abf717 100644 --- a/DashWallet/es.lproj/Localizable.strings +++ b/DashWallet/es.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Una experiencia intuitiva y familiar a través de todos tus dispositivos"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "y"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Ponte en contacto con el soporte de Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Solicitud de contacto pendiente"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error al actualizar tu perfil"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Tarjeta de regalo"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Fondos insuficientes"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Monto inválido"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Dirección inválida de Dash"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Codigo QR invalido"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitación "; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Sería muy difícil para usuarios avanzados con cualquier nivel de experiencia técnica determinar tu historial de transacciones."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Red de trabajo"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Comisión de red"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "No determinado"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Pagando..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Método de pago"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Tipo de pago"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Coloca tu teléfono cerca del dispositivo NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Por favor escribe las palabras de tu frase de recuperación en el orden correcto"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Compra"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Recibir Rápidamente "; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Mostrar Frase de Recuperación"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Firmar el mensaje"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "El monto mínimo que puedes enviar es %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Este paso adicional muestra que realmente eres tú quien intenta realizar una transacción."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Este PIN será requerido para desbloquear tu app cada vez que la utilices."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Límite de Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Historial de transacciones"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Debes esperar 5 minutos antes de iniciar otro retiro."; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Tu solicitud fue cancelada"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Tu transacción se envió y la cantidad debería aparecer en tu billetera en unos minutos."; diff --git a/DashWallet/et.lproj/Localizable.strings b/DashWallet/et.lproj/Localizable.strings index 2881cf5e8..9b0062777 100644 --- a/DashWallet/et.lproj/Localizable.strings +++ b/DashWallet/et.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/fa.lproj/Localizable.strings b/DashWallet/fa.lproj/Localizable.strings index 7b643a408..89ce47526 100644 --- a/DashWallet/fa.lproj/Localizable.strings +++ b/DashWallet/fa.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "تجربه‌ای ساده و آشنا روی همه دستگاه‌ها"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "با پشتیبانی کوین‌بیس تماس بگیرید"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "خطا"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "موجودی ناکافی"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "کارمزد شبکه"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "روش پرداخت"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "لطفا این کلمات را بر اساس ترتیب کلمات در عبارت بازیابی، به ترتیب انتخاب کنید. "; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "خرید"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "دریافت سریع"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "نشان دادن عبارت بازیابی"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "این گام اضافه نشان می‌دهد واقعا خودتان قصد انجام این تراکنش را دارید. "; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "برای هر بار باز کردن قفل اپلیکیشن در مواقع استفاده، به این پین کد نیاز خواهید داشت."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "سابقه تراکنش‌ها"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/fi.lproj/Localizable.strings b/DashWallet/fi.lproj/Localizable.strings index db5c3547a..2d240378b 100644 --- a/DashWallet/fi.lproj/Localizable.strings +++ b/DashWallet/fi.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Virhe"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Verkon maksukulu"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/fil.lproj/Localizable.strings b/DashWallet/fil.lproj/Localizable.strings index ab17b7aca..cb3c15fd2 100644 --- a/DashWallet/fil.lproj/Localizable.strings +++ b/DashWallet/fil.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Ang sapantaha at pamilyar na karanasan sa lahat ng iyong aparato"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "at"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Makipag-ugnayan sa Suporta sa Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Nakabinbin ang Kahilingan sa Pakikipag-ugnay"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Mali"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error sa pag-update ng iyong profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Hindi sapat na pondo"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Hindi wasto ang iyong Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Hindi wasto ang QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Imbitasyon"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Napakahirap para sa mga advanced na user na may anumang antas ng teknikal na kadalubhasaan na matukoy ang iyong kasaysayan ng transaksyon"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Hindi determinado"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Nagbabayad..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Paraan ng Pagbayad"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Uri ng Pagbabayad"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Pakilagay ang iyong phone malapit sa NFC device"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Paki-pindot ang mga salita mula sa iyong recovery phrase sa tamang pagkakasunod-sunod."; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Bumili"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Tanggapin ng mabilis"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Ipakita ang recovery phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Lagdaan ang mensahe"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Ang pinakamababang halaga na maaari mong ipadala ay %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Ipinapakita ng karagdagang hakbang na ito na ikaw talaga ang sumusubok na gumawa ng transaksyon."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Ang PIN na ito ay kailangan upang i-unlock ang iyong app kapag nais gamitin."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Kasaysayan ng Transaksyon"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Kailangan mong maghintay ng 5 minuto bago simulan ang isa pang withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Kinansela ang iyong kahilingan"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Ang iyong transaksyon ay naipadala at ang halaga ay dapat makita sa iyong pitaka sa loob ng ilang minuto."; diff --git a/DashWallet/fr.lproj/Localizable.strings b/DashWallet/fr.lproj/Localizable.strings index 67756eba5..0d873bd96 100644 --- a/DashWallet/fr.lproj/Localizable.strings +++ b/DashWallet/fr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Une utilisation familière et intuitive sur tous vos appareils"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "et"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contacter le service de soutien Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Demande de contact en attente"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Erreur"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Erreur en modifiant votre profil"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Carte-cadeau"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Fonds insuffisants"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Montant invalide"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Adresse Dash non valide"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "QR-code non valide"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Il serait très difficile, pour des utilisateurs avancés avec quelque niveau d'expertise technique, de déterminer votre historique de transaction"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Réseau"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Frais de réseau"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Indéterminé"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paiement en cours..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Méthode de paiement"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Type de paiement"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Veuillez placer votre téléphone près de l'appareil NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Veuillez saisir les mots de votre phrase de récupération dans le bon ordre"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Achat"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Réception rapide"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Voir la phase de récupération"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Signer le message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Le montant minimal que vous pouvez envoyer est %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Cette étape supplémentaire montre que c'est vraiment vous qui essaie de faire une transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Ce code PIN sera demandé pour déverrouiller votre app avant chaque utilisation."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Limite pour TouchID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Historique des transactions"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Vous devez attendre 5 minutes avant de lancer un autre retrait"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Votre demande a été annulée"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Votre transaction a été envoyée et le montant devrait apparaître dans votre portefeuille sous quelques minutes."; diff --git a/DashWallet/hr.lproj/Localizable.strings b/DashWallet/hr.lproj/Localizable.strings index 89c7a0356..ca454e252 100644 --- a/DashWallet/hr.lproj/Localizable.strings +++ b/DashWallet/hr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/hu.lproj/Localizable.strings b/DashWallet/hu.lproj/Localizable.strings index b276036c8..d9b386b15 100644 --- a/DashWallet/hu.lproj/Localizable.strings +++ b/DashWallet/hu.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Hiba"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Hálózat"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Hálózati díj"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Helyezd a telefonod az NFC eszköz közelébe."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID összeghatár"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/id.lproj/Localizable.strings b/DashWallet/id.lproj/Localizable.strings index 84f23fb7f..da64e3c59 100644 --- a/DashWallet/id.lproj/Localizable.strings +++ b/DashWallet/id.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Pengalaman intuitif dan akrab di semua perangkat Anda"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "dan"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Hubungi Dukungan Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Permintaan Kontak Tertunda"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Kesalahan"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Terjadi kesalahan saat memperbarui profil Anda"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Kartu ucapan"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Dana tidak mencukupi"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Jumlah tidak valid"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Alamat Dash Salah"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Kode QR tidak valid"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Undangan"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Akan sangat sulit bagi pengguna tingkat lanjut dengan tingkat keahlian teknis apa pun untuk menentukan riwayat transaksi Anda"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Jaringan"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Biaya jaringan"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Tidak ditentukan"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Membayar..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Metode pembayaran"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Tipe Pembayaran"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Silakan letakkan ponsel Anda di dekat perangkat NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Ketuk kata-kata dari frasa pemulihan Anda dalam urutan yang benar"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Beli"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Terima Cepat"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Tampilkan Frasa pemulihan"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Tandatangani pesan"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Jumlah minimum yang dapat Anda kirim adalah %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Langkah ekstra ini menunjukkan bahwa Anda benar-benar mencoba melakukan transaksi."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "PIN ini akan diperlukan untuk membuka kunci aplikasi Anda setiap kali saat Anda menggunakannya."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "ID sentuhan terbatas"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Riwayat Transaksi"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Anda harus menunggu 5 menit sebelum memulai penarikan lainnya"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Permintaan anda telah dibatalkan"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Transaksi Anda telah dikirim dan jumlahnya akan muncul di dompet Anda dalam beberapa menit."; diff --git a/DashWallet/it.lproj/Localizable.strings b/DashWallet/it.lproj/Localizable.strings index 37f0e9f2d..0cd7b4c3b 100644 --- a/DashWallet/it.lproj/Localizable.strings +++ b/DashWallet/it.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Un'esperienza intuitiva e familiare su tutti i tuoi dispositivi"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "e"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contatta il supporto di Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Richiesta di contatto in sospeso"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Errore"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Errore durante l'aggiornamento del tuo profilo "; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Fondi insufficenti"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Importo non valido"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Indirizzo Dash non valido"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "QR Code Non Valido"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invito"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Sarebbe molto difficile per gli utenti avanzati con qualsiasi livello di competenza tecnica determinare la cronologia delle transazioni"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Commissione di rete"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Non determinato"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Pagamento in corso..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Metodo di pagamento"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Tipo di Pagamento"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Perfavore posiziona il tuo telefono vicino al dispositivo NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Si prega di toccare le parole dalla frase di recupero nel giusto ordine"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Acquisto"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Rapido Ricevi"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Mostra la frase di recupero"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Firma il messaggio"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "L'importo minimo che puoi inviare è%@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Questo passaggio aggiuntivo mostra che stai davvero cercando di effettuare una transazione."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Questo PIN ti sarà richiesto per sbloccare l'app ogni volta che la usi."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Limite \"Touch ID\""; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Cronologia delle transazioni"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Devi attendere 5 minuti prima di avviare un altro prelievo"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "La tua richiesta è stata annullata"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "La tua transazione è stata inviata e l'importo dovrebbe essere visualizzato nel tuo portafoglio entro pochi minuti."; diff --git a/DashWallet/ja.lproj/Localizable.strings b/DashWallet/ja.lproj/Localizable.strings index 1090aaa15..4d764c846 100644 --- a/DashWallet/ja.lproj/Localizable.strings +++ b/DashWallet/ja.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "全てのデバイスで直感的かつ使いやすい使用感"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "および"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Coinbaseサポートに問い合わせる"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "連絡先リクエストを保留中"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "エラー"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "プロフィールの更新エラー"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "ギフトカード"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "資金不足"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "無効な金額"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "無効なDashアドレス"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "無効なQRコード"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "招待状"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "技術的な専門知識を持つ上級ユーザーにとっても、取引履歴を確認することは非常に困難です"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "ネットワーク"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "ネットワーク手数料"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "未定"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "支払い中…"; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "支払い方法"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "支払い方法"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "あなたの携帯電話をNFCデバイスに近づけてください"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "リカバリーフレーズの言葉を正しい順番にタップしてください"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "購入"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "クイック入金"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "復元フレーズを表示する"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "メッセージに署名する"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "送金可能な最小金額は、%@です"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "この追加ステップは、お客様が本当に取引を行おうとしていることを証明するために行われます。"; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "このアプリをアンロックして使用するときは必ずこのPINが必要となります"; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch IDの送金可能額"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "取引履歴"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "5分間待ってから次の出金を開始しましょう"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "申請がキャンセルされました"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "あなたの取引は送られたので、数分内にその金額がウォレットに表示されるでしょう"; diff --git a/DashWallet/ko.lproj/Localizable.strings b/DashWallet/ko.lproj/Localizable.strings index 590b7e1a0..a877f4b77 100644 --- a/DashWallet/ko.lproj/Localizable.strings +++ b/DashWallet/ko.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "당신의 모든 기기에 걸친 직관적이고 친근한 경험"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "또한"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "코인베이스 지원센터에 문의하기"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "연락처 요청 대기 중"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "오류"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "프로필 업데이트 오류"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "기프트 카드"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "잔액 부족"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "유효하지 않은 금액"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "유효하지 않은 대시 주소"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "유효하지 않은 QR 코드"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "초대"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "어떤 수준의 기술적 전문 지식을 가진 고급 사용자라고 하더라도 자신의 거래 기록을 결정하는 것은 어려울 수 있습니다."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "네트워크"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "네트워크 수수료"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "결정되지 않음"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "지불 중..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "지불 방법"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "지불 유형"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "휴대 전화를 NFC 기기 가까이에 두십시오."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "올바른 방식으로 당신의 복원 문구의 단어를 탭하십시오"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "매수하기"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "빠른 송금 수령"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "복원 문구 확인하기"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "이 메시지에 서명하기"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "송금 가능한 최소 금액은 %@ 입니다"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "이 추가적 단계를 통해 거래를 시도하는 것이 본인임을 확인합니다."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "당신이 어플을 언락하실 때마다 이 PIN이 필요합니다."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "터치 ID 제한"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "거래 내역"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "다음 출금을 요청하시기 전 5분을 대기하여야 합니다"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "당신의 요청이 취소되었습니다"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "당신의 거래가 완료되었으며 수 분 이내에 당신의 지갑에 잔액이 표시될 예정입니다."; diff --git a/DashWallet/mk.lproj/Localizable.strings b/DashWallet/mk.lproj/Localizable.strings index 0bc5a5667..bf0a649f8 100644 --- a/DashWallet/mk.lproj/Localizable.strings +++ b/DashWallet/mk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Грешка"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/ms.lproj/Localizable.strings b/DashWallet/ms.lproj/Localizable.strings index 0fd3dc48b..b88938417 100644 --- a/DashWallet/ms.lproj/Localizable.strings +++ b/DashWallet/ms.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/nb.lproj/Localizable.strings b/DashWallet/nb.lproj/Localizable.strings index cd72fe8b6..e66cf57d3 100644 --- a/DashWallet/nb.lproj/Localizable.strings +++ b/DashWallet/nb.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Feil"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Nettverksgebyr"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/nl.lproj/Localizable.strings b/DashWallet/nl.lproj/Localizable.strings index f805d66e4..100efda37 100644 --- a/DashWallet/nl.lproj/Localizable.strings +++ b/DashWallet/nl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Een intuïtieve en vertrouwde ervaring op al je apparaten"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = " en "; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Neem contact op met Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contactaanvraag in behandeling"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Fout"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Fout bij bijwerken van je profiel"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Cadeaukaart"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Ontoereikende fondsen"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Ongeldig bedrag"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "ongeldig Dash adres"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Ongeldige QR-code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Uitnodiging"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Het zou voor gevorderde gebruikers met welke technische expertise dan ook erg moeilijk zijn om je transactiegeschiedenis te achterhalen"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Netwerk"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Netwerkkosten"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Niet bepaald"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Aan het betalen..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Betalingsmethode"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Betalingswijze"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Houd a.u.b. je telefoon bij een NFC-apparaat"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Tik a.u.b. op de woorden van je herstelzin in de juiste volgorde"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Aanschaffen"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Snel Ontvangen"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Toon herstelzin"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Onderteken het bericht"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Het minimumbedrag dat je kan verzenden is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Deze extra stap laat zien dat jij het bent die een transactie probeert te doen."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Deze PIN is vereist om uw app elke keer te ontgrendelen wanneer u deze gebruikt."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "touch ID limiet"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transactiegeschiedenis"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Je moet 5 minuten wachten voordat je een nieuwe opname kunt uitvoeren"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Je aanvraag is geannuleerd"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "De transactie is verzonden en het bedrag verschijnt binnen een paar minuten in je de portemonnee."; diff --git a/DashWallet/pl.lproj/Localizable.strings b/DashWallet/pl.lproj/Localizable.strings index c612dc381..550e99fed 100644 --- a/DashWallet/pl.lproj/Localizable.strings +++ b/DashWallet/pl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Intuicyjne i znane doświadczenie na wszystkich urządzeniach"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "i"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Skontaktuj się z pomocą Coibase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Zaproszenie do kontaktów czeka na odpowiedź"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Błąd"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Wystąpił błąd podczas aktualizacji twojego profilu"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Karta podarunkowa"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Niewystarczająca ilość funduszy"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Niewłaściwa ilość"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Nieprawidłowy adres Dash"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Niewłaściwy kod QR"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Zaproszenie"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Nawet użytkownicy o bardzo zaawansowanej wiedzy technicznej nie będą mogli ustalić definitywnej historię transakcji."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Sieć"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Opłata sieci"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Nieustalony"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Płacę..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Metoda płatności"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Typ płatności"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Przyłóż telefon do urządzenia NFC "; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Wskaź słowa z frazy odzyskiwania w odpowiedniej kolejności"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Kup"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Szybki Odbierz"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Pokaż Frazy Odzyskiwania Portfela"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Podpisz wiadomość"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Minimalna kwota jaką możesz wysłać to %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Ten dodatkowy krok potwierdza, że to naprawdę ty dokonujesz tej transakcji. "; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Ten kod PIN będzie wymagany do odblokowania Twojej aplikacji za każdym razem, gdy z niej korzystasz."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Historia Transakcji"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Musisz odczekać 5 minut przed rozpoczęciem kolejnej wypłaty"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Twoja prośba została anulowana"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Twoja transakcja została wysłana a ilość powinna pojawić się na Twoim koncie w kilka minut."; diff --git a/DashWallet/pt.lproj/Localizable.strings b/DashWallet/pt.lproj/Localizable.strings index 160dba08c..a09e4b0e8 100644 --- a/DashWallet/pt.lproj/Localizable.strings +++ b/DashWallet/pt.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Uma experiência familiar e através de todos os seus dispositivos"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "e"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contato com o Suporte Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Solicitação de Contato Pendente"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Erro"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Erro ao atualizar seu perfil"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Vale-presente"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Fundos insuficientes"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Valor inválido"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Endereço Dash inválido"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "QR Code Inválido"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Convite"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Seria muito difícil para usuários avançados com qualquer nível de conhecimento técnico determinar seu histórico de transações"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Rede"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Taxa de rede"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Não determinado"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Pagando..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Método de pagamento"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Tipo de Pagamento"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Por favor coloque seu telefone perto do dispositivo NFC"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Por favor, toque as palavras da sua frase de recuperação na ordem correta"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Comprar"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Receber Rapidamente"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Mostrar Frase de Recuperação"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Assine a mensagem"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "A quantidade mínima que você pode enviar é %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Esta etapa extra mostra que é realmente você tentando fazer uma transação."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Este PIN será requerido para desbloquear o seu app toda vez que o utilize"; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Limite de ID de toque"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Histórico de Transações"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Você precisa aguardar 5 minutos antes de iniciar outro saque"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Sua solicitação foi cancelada"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Sua transação foi enviada e o valor aparecerá na sua carteira em alguns minutos. "; diff --git a/DashWallet/ro.lproj/Localizable.strings b/DashWallet/ro.lproj/Localizable.strings index e272d49f9..6e13bfd97 100644 --- a/DashWallet/ro.lproj/Localizable.strings +++ b/DashWallet/ro.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Eroare"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Fonduri nesuficiente"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Suma nevalidă"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Rețea"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Taxă de reţea"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Plasează telefonul în apropierea dispozitivului NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "limita pentru Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Tranzacția ta a fost trimisă, iar suma trebuie să apară în portofel în câteva minute."; diff --git a/DashWallet/ru.lproj/Localizable.strings b/DashWallet/ru.lproj/Localizable.strings index e4af7a4da..08c1ee6fc 100644 --- a/DashWallet/ru.lproj/Localizable.strings +++ b/DashWallet/ru.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Интуитивный и привычный интерфейс на всех ваших устройствах"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = " и "; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Связаться с поддержкой Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Неподтверждённые запросы на добавление в контакты"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Ошибка"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Ошибка при обновлении профиля"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Подарочный сертификат"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Недостаточно средств"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Некорректная сумма"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Некорректный адрес Dash"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Некорректный QR-код"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Приглашение"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Продвинутым пользователям с любым уровнем знаний в области технологий будет довольно сложно определить вашу историю транзакций"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Сеть"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Комиссия сети"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Не определён"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Оплата..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Способ оплаты"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Способ оплаты"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Пожалуйста, поместите Ваш телефон рядом с NFC устройством."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Пожалуйста, нажмите на слова из Вашей фразы восстановления в правильном порядке"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Купить"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Получить быстро"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Показать фразу восстановления"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Подписать сообщение"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Минимальная сумма для отправки составляет %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Этот дополнительный шаг подтверждает, что транзакцию совершаете именно вы."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Этот PIN нужно будет вводить для разблокировки приложения при каждом его использовании."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Лимит Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "История транзакций"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Вы должны подождать 5 минут, прежде чем вывести средства ещё раз"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Ваш запрос был отклонён"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Ваша транзакция была отправлена и её сумма отобразится в вашем кошельке через несколько минут."; diff --git a/DashWallet/sk.lproj/Localizable.strings b/DashWallet/sk.lproj/Localizable.strings index b91191539..7e43a08e9 100644 --- a/DashWallet/sk.lproj/Localizable.strings +++ b/DashWallet/sk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Intuitívny a známy zážitok vo všetkých vašich zariadeniach"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "a"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Kontaktujte podporu Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Žiadosť o kontakt čaká na potvrdenie"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Chyba"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Pri aktualizácii vášho profilu sa vyskytla chyba"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Darčeková karta"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Nedostatok prostriedkov"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Neplatná suma"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Neplatná Dash adresa"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Neplatný QR kód"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Pozvánka"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Pre pokročilých používateľov s vysokou úrovňou technických znalostí by bolo veľmi ťažké určiť vašu históriu transakcií"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Sieť"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Sieťový poplatok "; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Neurčené"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Platí sa..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Spôsob platby"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Typ platby"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Umiestnite váš telefón blízko NFC zariadenia."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Klepnite na slová z obnovovacej frázy v správnom poradí"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Nákup"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Rýchlo prijať"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Zobraziť frázu obnovenia"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Podpísať správu"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Minimálna suma, ktorú môžete poslať, je %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Tento dodatočný krok potvrdzuje, že ste to skutočne vy kto sa pokúša uskutočniť transakciu."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Tento PIN bude potrebný na odomknutie aplikácie pri každom použití."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Limit pre Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "História transakcií"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Pred ďalším výberom musíte počkať 5 minút"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Vaša žiadosť bola zrušená"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Vaša transakcia bola odoslaná a čiastka by sa mala objaviť vo vašej peňaženke v priebehu niekoľkých minút."; diff --git a/DashWallet/sl.lproj/Localizable.strings b/DashWallet/sl.lproj/Localizable.strings index e932bb870..ca2ac382c 100644 --- a/DashWallet/sl.lproj/Localizable.strings +++ b/DashWallet/sl.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Napaka"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Omrežna provizija"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/sl_SI.lproj/Localizable.strings b/DashWallet/sl_SI.lproj/Localizable.strings index 2fbddab19..27105ef96 100644 --- a/DashWallet/sl_SI.lproj/Localizable.strings +++ b/DashWallet/sl_SI.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/sq.lproj/Localizable.strings b/DashWallet/sq.lproj/Localizable.strings index 1d347c75c..0e84f0ae6 100644 --- a/DashWallet/sq.lproj/Localizable.strings +++ b/DashWallet/sq.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Gabim"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Tarifa e rrjetit"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/sr.lproj/Localizable.strings b/DashWallet/sr.lproj/Localizable.strings index 2d06e5edd..cde429ab5 100644 --- a/DashWallet/sr.lproj/Localizable.strings +++ b/DashWallet/sr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Greška"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Mrežna provizija"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Molimo vas da postavite vaš telefon blizu NFC uređaja."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Limit za Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/sv.lproj/Localizable.strings b/DashWallet/sv.lproj/Localizable.strings index dfea0b4b0..753aed654 100644 --- a/DashWallet/sv.lproj/Localizable.strings +++ b/DashWallet/sv.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Fel"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Nätverk"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Nätverksavgift"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Please place your phone near NFC device."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limit"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/th.lproj/Localizable.strings b/DashWallet/th.lproj/Localizable.strings index 1f77d0b73..bfcd1ef2f 100644 --- a/DashWallet/th.lproj/Localizable.strings +++ b/DashWallet/th.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "ประสบการณ์ที่ใช้งานง่ายและคุ้นเคย"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "และ"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "ติดต่อฝ่ายสนับสนุน Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "คำขอติดต่อรอดำเนินการ"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "ผิดพลาด"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "ข้อผิดพลาดในการอัปเดตโปรไฟล์ของคุณ"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "บัตรของขวัญ"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "ยอดเงินไม่เพียงพอ"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "จำนวนเงินไม่ถูกต้อง"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "ที่อยู่ Dash ไม่ถูกต้อง"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "QR Code ไม่ถูกต้อง"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "คำเชิญ"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "เป็นเรื่องยากมากสำหรับผู้ใช้ระดับสูงที่มีความเชี่ยวชาญทางเทคนิคทุกระดับในการพิจารณาประวัติการทำธุรกรรมของคุณ"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "เครือข่าย"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "ค่าธรรมเนียมเครือข่าย"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "ไม่ได้กำหนด"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "กำลังชำระเงิน"; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "วิธีการชำระเงิน"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "ประเภทการชำระเงิน"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "โปรดวางมือถือของคุณใกล้กับอุปกรณ์ NFC"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "โปรดแตะที่คำจากวลีการกู้คืนของคุณในลำดับที่ถูกต้อง"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "ซื้อ"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "ได้รับอย่างรวดเร็ว"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "แสดงวลีกู้คืน"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "ลงชื่อเข้าใช้ข้อความ"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "จำนวนเงินขั้นต่ำที่คุณสามารถส่งได้คือ %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "ขั้นตอนพิเศษนี้แสดงให้เห็นว่าคุณพยายามทำธุรกรรม"; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "ต้องใช้ PIN นี้เพื่อปลดล็อคแอพของคุณทุกครั้งที่ใช้"; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "ขีดจำกัด Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "ประวัติการทำรายการ"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "ธุรกรรมของคุณถูกส่งแล้วและจำนวนเงินจะปรากฏใน wallet ของคุณในอีกไม่กี่นาที"; diff --git a/DashWallet/tr.lproj/Localizable.strings b/DashWallet/tr.lproj/Localizable.strings index 990403209..fe4019990 100644 --- a/DashWallet/tr.lproj/Localizable.strings +++ b/DashWallet/tr.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Tüm cihazlarınızda tanıdık sezgisel bir deneyim"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "ve"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Coinbase Destek Ekibii ile İletişime Geçin"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Bekleyen İletişim Talebi"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Hata"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Profiliniz güncellenirken hata oluştu"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Hediye Kartı"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Yetersiz bakiye"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Geçersiz tutar"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Geçersiz Dash adresi"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Geçersiz QR Kodu"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Davetiye"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Herhangi bir düzeyde teknik uzmanlığa sahip ileri düzey kullanıcıların işlem geçmişinizi belirlemesi çok zor olacaktır."; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Ağ"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Ağ ücreti"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Belirlenmedi"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Ödeniyor..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Ödeme şekli"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Ödeme türü"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Lütfen telefonunuzu bir NFC cihazının yakınına yerleştirin."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Lütfen kurtarma sözcük grubunuzu doğru şekilde sıralayın"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Satın alma"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Hızlı Al"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Kurtarma Sözcük Grubunu Göster"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Mesajı imzala"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Gönderebileceğiniz minimum miktar %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Bu ekstra adım, gerçekten bir işlem yapmaya çalıştığınızı gösterir."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Bu PİN uygulamanın açılması için her zaman gerekecektir."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID limiti"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "İşlem Geçmişi"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Başka bir para çekme işlemine başlamadan önce 5 dakika beklemeniz gerekir"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "İsteğiniz iptal edildi"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "İşleminiz yapıldı ve birkaç dakika içinde tutar cüzdanınızda görülecek."; diff --git a/DashWallet/uk.lproj/Localizable.strings b/DashWallet/uk.lproj/Localizable.strings index ad5362289..9ccc47a4c 100644 --- a/DashWallet/uk.lproj/Localizable.strings +++ b/DashWallet/uk.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Інтуїтивний та звичний інтерфейс на всіх ваших пристроях"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "і"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Звернутися до служби підтримки Coinbase"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Непідтверджені запити на додавання до контактів"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Помилка"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Помилка оновлення профіля"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Подарункова карта"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Недостатньо коштів"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Неправильна сума"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Неправильна Dash адреса"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Неправильний QR код"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Запрошення"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "Досвідченим користувачам із будь-яким рівнем технічних знань буде дуже важко визначити вашу історію транзакцій"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Мережа"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Комісія мережі"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Не визначено"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Оплата..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Спосіб оплати"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Типа платежу"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Розташуйте телефон біля пристрою NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Будь ласка, торкніться слів з вашої фрази відновлення в правильному порядку"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Покупка"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Швидке отримання"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Показати фразу відновлення"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Підпишіть повідомлення"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "Мінімальна сума, яку ви можете надіслати, становить %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "Цей додатковий крок показує, що справді ви намагаєтеся здійснити транзакцію."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Цей PIN-код необхідний, щоб розблокувати вашу програму кожного разу, коли ви її використовуєте."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Touch ID ліміт"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Історія Транзакцій"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "Вам потрібно зачекати 5 хвилин, перш ніж почати наступне виведення"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Ваш запит скасовано"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Ваша транзакція була відправлена ​​і її сума відобразиться у вашому гаманці за кілька хвилин."; diff --git a/DashWallet/vi.lproj/Localizable.strings b/DashWallet/vi.lproj/Localizable.strings index ae2e8683f..a40934f37 100644 --- a/DashWallet/vi.lproj/Localizable.strings +++ b/DashWallet/vi.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "Một giao diện trực quan và quen thuộc trên tất cả các thiết bị của bạn"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Yêu cầu liên hệ đang chờ"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Lỗi"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Không đủ tiền"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Số tiền không hợp lệ"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Mã QR không hợp lệ"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Mạng"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Phí giao dịch"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Đang gửi..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "Hãy đặt điện thoại của bạn cạnh thiết bị NFC."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Hãy bấm vào những từ trong cụm từ phục hồi của bạn theo một thứ tự đúng"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Nhận nhanh"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Hiển thị câu phục hồi"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "Mã PIN này sẽ được hỏi để mở ứng dụng của bạn mỗi khi bạn sử dụng nó."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "Giới hạn Touch ID"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Giao dịch của bạn đã được gửi và số tiền sẽ xuất hiện trong ví của bạn trong vài phút."; diff --git a/DashWallet/zh-Hans.lproj/Localizable.strings b/DashWallet/zh-Hans.lproj/Localizable.strings index a9eb5860d..dbe96b738 100644 --- a/DashWallet/zh-Hans.lproj/Localizable.strings +++ b/DashWallet/zh-Hans.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "请将你的手机靠近NFC设备."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "触控ID限制"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/zh-Hant-TW.lproj/Localizable.strings b/DashWallet/zh-Hant-TW.lproj/Localizable.strings index b0b3c8cb5..267306408 100644 --- a/DashWallet/zh-Hant-TW.lproj/Localizable.strings +++ b/DashWallet/zh-Hant-TW.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "An intuitive and familiar experience across all your devices"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "and"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "Contact Coinbase Support"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "Contact Request Pending"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "Error"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "Error updating your profile"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "Gift Card"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "Insufficient funds"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "Invalid amount"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "Invalid Dash address"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "Invalid QR Code"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "Invitation"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "Network"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "Network fee"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "Not Determined"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "Paying..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "Payment method"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "Payment Type"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "請將手機放在NFC設備附近。"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "Please tap on the words from your recovery phrase in the right order"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "Purchase"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "Quick Receive"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "Show Recovery Phrase"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "Sign the message"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "The minimum amount you can send is %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "This extra step shows it’s really you trying to make a transaction."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "This PIN will be required to unlock your app every time when you use it."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "指紋辨識解鎖的限制"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "Transaction History"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "You need to wait 5 minutes before initiating another withdrawal"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "Your request was cancelled"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "Your transaction was sent and the amount should appear in your wallet in a few minutes."; diff --git a/DashWallet/zh.lproj/Localizable.strings b/DashWallet/zh.lproj/Localizable.strings index 6ad10d0be..d83903248 100644 --- a/DashWallet/zh.lproj/Localizable.strings +++ b/DashWallet/zh.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "所有设备上的直观熟悉体验"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "和"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "联系 Coinbase客服"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "朋友申请等待中"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "错误"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "更新您个人资料时出错"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "礼品卡"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "资金不足"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "无效数额"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "无效的Dash地址"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "无效二维码"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "邀请"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "具有任何水平技术专长的进阶用户都很难决定您的交易历史记录"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "网络"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "网络手续费"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "尚未确定"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "付款中..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "付款方式"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "付款类型"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "请将您的手机靠近NFC设备."; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "请以正确顺序输入您的助记词"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "购买"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "快速接收"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "显示助记词"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "签名信息"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "您可以发送的最小额度是%@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "此额外步骤用来证明真的是您在尝试进行交易."; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "每次使用时都需要输入PIN以解锁您的app."; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "触控ID限制"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "交易记录"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "您需要等待5分钟才能再次发起提现"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "您的申请已被取消"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "您的交易已被发送, 金额将几分钟内出现在您的钱包."; diff --git a/DashWallet/zh_TW.lproj/Localizable.strings b/DashWallet/zh_TW.lproj/Localizable.strings index 8ccee2ecd..cddf23ed1 100644 --- a/DashWallet/zh_TW.lproj/Localizable.strings +++ b/DashWallet/zh_TW.lproj/Localizable.strings @@ -211,6 +211,9 @@ /* No comment provided by engineer. */ "An intuitive and familiar experience across all your devices" = "跨所有設備的直觀熟悉的體驗"; +/* CTXSpend error */ +"An unknown error occurred. Please try again later." = "An unknown error occurred. Please try again later."; + /* CrowdNode */ "and" = "和"; @@ -514,6 +517,9 @@ Coinbase Two Factor Auth */ "Contact Coinbase Support" = "聯繫 Coinbase 支援服務"; +/* DashSpend */ +"Contact CTX Support" = "Contact CTX Support"; + /* No comment provided by engineer. */ "Contact Request Pending" = "有聯繫請求等待批准"; @@ -841,6 +847,9 @@ /* No comment provided by engineer. */ "Error" = "錯誤"; +/* CTXSpend error */ +"Error processing server response. Please try again later." = "Error processing server response. Please try again later."; + /* No comment provided by engineer. */ "Error updating your profile" = "更新您的個人資料時出錯"; @@ -1018,6 +1027,9 @@ /* Explore Dash: Filters */ "Gift Card" = "禮物卡"; +/* DashSpend */ +"Gift card purchase successful" = "Gift card purchase successful"; + /* DashSpend confirmation */ "Gift card total" = "Gift card total"; @@ -1171,6 +1183,9 @@ /* No comment provided by engineer. */ "Insufficient funds" = "餘額不足"; +/* CTXSpend error */ +"Insufficient funds to complete this purchase." = "Insufficient funds to complete this purchase."; + /* Send screen */ "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction." = "Insufficient mixed funds. Wait for CoinJoin mixing to finish or disable this feature in the settings to complete this transaction."; @@ -1201,6 +1216,9 @@ /* Balance */ "Invalid amount" = "金額無效"; +/* CTXSpend error */ +"Invalid amount. Please check merchant limits." = "Invalid amount. Please check merchant limits."; + /* No comment provided by engineer. */ "Invalid Dash address" = "無效的達世幣位址"; @@ -1219,6 +1237,9 @@ /* No comment provided by engineer. */ "Invalid QR Code" = "無效的二維碼"; +/* CTXSpend error */ +"Invalid verification code. Please try again." = "Invalid verification code. Please try again."; + /* No comment provided by engineer. */ "Invitation" = "邀請"; @@ -1279,6 +1300,9 @@ /* CoinJoin */ "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees" = "It is recommended to be on a Wi-Fi network to avoid incurring additional mixing fees"; +/* DashSpend */ +"It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash." = "It looks like you haven’t used DashSpend in a while. For security reasons, you’ve been logged out.\n\nPlease sign in again to continue exploring where to spend your Dash."; + /* Coinbase */ "It would be very difficult for advanced users with any level of technical expertise to determine your transaction history" = "即使對於具有任何技術專業水平的高級用戶來說,要確定您的交易歷史記錄都是非常困難的"; @@ -1556,6 +1580,9 @@ /* No comment provided by engineer. */ "Network" = "網絡"; +/* CTXSpend error */ +"Network error. Please check your connection and try again." = "Network error. Please check your connection and try again."; + /* No comment provided by engineer. */ "Network fee" = "網絡費用"; @@ -1625,9 +1652,6 @@ /* Location Service Status */ "Not Determined" = "尚未決定"; -/* No comment provided by engineer. */ -"Not implemented" = "Not implemented"; - /* CoinJoin */ "Not started" = "Not started"; @@ -1733,9 +1757,15 @@ /* 4 out of 4 in the Paying Animation */ "Paying..." = "付款中..."; +/* No comment provided by engineer. */ +"Payment failed" = "Payment failed"; + /* Coinbase/Buy Dash */ "Payment method" = "付款方式"; +/* CTXSpend error */ +"Payment processing error: %@" = "Payment processing error: %@"; + /* Explore Dash/Merchants/Filters */ "Payment Type" = "支付方式"; @@ -1808,6 +1838,9 @@ /* No comment provided by engineer. */ "Please place your phone near NFC device." = "請將手機放在NFC設備附近。"; +/* CTXSpend error */ +"Please sign in to your DashSpend account." = "Please sign in to your DashSpend account."; + /* No comment provided by engineer. */ "Please tap on the words from your recovery phrase in the right order" = "請以正確的順序點按您的恢復詞組中的單詞"; @@ -1886,6 +1919,9 @@ /* Coinbase/Buy Dash */ "Purchase" = "購買"; +/* Alert title */ +"Purchase Failed" = "Purchase Failed"; + /* No comment provided by engineer. */ "Quick Receive" = "快速接收"; @@ -2224,6 +2260,9 @@ /* No comment provided by engineer. */ "Show Recovery Phrase" = "顯示恢復詞組"; +/* Alert title */ +"Sign in required" = "Sign in required"; + /* CrowdNode */ "Sign the message" = "簽署訊息"; @@ -2371,6 +2410,9 @@ /* Coinbase */ "The minimum amount you can send is %@" = "您可以發送的最小金額是 %@"; +/* DashSpend */ +"The purchase limits for this merchant have changed. Please contact CTX Support for more information." = "The purchase limits for this merchant have changed. Please contact CTX Support for more information."; + /* Usernames */ "The username '%@' was blocked by the Dash Network. Please try again by requesting another username." = "The username '%@' was blocked by the Dash Network. Please try again by requesting another username."; @@ -2407,6 +2449,9 @@ /* Coinbase Two Factor Auth */ "This extra step shows it’s really you trying to make a transaction." = "這個額外的步驟用來證明真的是你在嘗試進行交易。"; +/* CTXSpend error */ +"This merchant is currently unavailable." = "This merchant is currently unavailable."; + /* No comment provided by engineer. */ "This PIN will be required to unlock your app every time when you use it." = "每次使用時,都需要使用此密碼來解鎖您的應用程式。"; @@ -2464,6 +2509,9 @@ /* No comment provided by engineer. */ "Touch ID limit" = "指紋辨識解鎖的限制"; +/* No comment provided by engineer. */ +"Transaction cancelled" = "Transaction cancelled"; + /* CrowdNode */ "Transaction History" = "交易記錄"; @@ -2920,6 +2968,9 @@ /* Usernames */ "You need to have more than %@ Dash to create a username" = "You need to have more than %@ Dash to create a username"; +/* DashSpend */ +"You need to sign in to DashSpend to purchase gift cards." = "You need to sign in to DashSpend to purchase gift cards."; + /* CrowdNode */ "You need to wait 5 minutes before initiating another withdrawal" = "您需要等待5分鐘才能再次發起提款"; @@ -3022,6 +3073,9 @@ /* Usernames */ "Your request was cancelled" = "您的申请已取消"; +/* DashSpend */ +"Your session expired" = "Your session expired"; + /* No comment provided by engineer. */ "Your transaction was sent and the amount should appear in your wallet in a few minutes." = "您的交易已發送,金額應在幾分鐘內顯示在您的錢包中。";