From 3049c72de8986a4d66cbf730ffc46e216643221e Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Mon, 5 Dec 2022 18:24:10 +0700 Subject: [PATCH 01/17] Do not present CMF when the feature flag is disabled --- WordPress/Jetpack/Classes/System/JetpackWindowManager.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift index 4c1dc1f4c1cf..918ec3334ff6 100644 --- a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift +++ b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift @@ -9,7 +9,9 @@ class JetpackWindowManager: WindowManager { private let migrationTracker = MigrationAnalyticsTracker() var shouldImportMigrationData: Bool { - return !AccountHelper.isLoggedIn && !UserPersistentStoreFactory.instance().isJPContentImportComplete + return FeatureFlag.contentMigration.enabled + && !AccountHelper.isLoggedIn + && !UserPersistentStoreFactory.instance().isJPContentImportComplete } override func showUI(for blog: Blog?) { From 3b1cd08ee73f420a7ae221417ce711254ad50499 Mon Sep 17 00:00:00 2001 From: Salim Date: Mon, 5 Dec 2022 13:16:45 +0100 Subject: [PATCH 02/17] Track Load WordPress screen events and content export events (#19719) --- .../ContentMigrationCoordinator.swift | 24 +++++++++++++++---- .../Classes/System/JetpackWindowManager.swift | 13 ++++++---- .../Analytics/MigrationAnalyticsTracker.swift | 16 +++++++++++++ .../Common/Analytics/MigrationEvent.swift | 12 +++++++++- ...MigrationLoadWordPressViewController.swift | 9 ++++++- 5 files changed, 64 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/Utility/Migration/ContentMigrationCoordinator.swift b/WordPress/Classes/Utility/Migration/ContentMigrationCoordinator.swift index 7b7daa42c266..252f15b2b661 100644 --- a/WordPress/Classes/Utility/Migration/ContentMigrationCoordinator.swift +++ b/WordPress/Classes/Utility/Migration/ContentMigrationCoordinator.swift @@ -12,21 +12,32 @@ class ContentMigrationCoordinator { private let dataMigrator: ContentDataMigrating private let userPersistentRepository: UserPersistentRepository private let eligibilityProvider: ContentMigrationEligibilityProvider + private let tracker: MigrationAnalyticsTracker init(coreDataStack: CoreDataStack = ContextManager.shared, dataMigrator: ContentDataMigrating = DataMigrator(), userPersistentRepository: UserPersistentRepository = UserDefaults.standard, - eligibilityProvider: ContentMigrationEligibilityProvider = AppConfiguration()) { + eligibilityProvider: ContentMigrationEligibilityProvider = AppConfiguration(), + tracker: MigrationAnalyticsTracker = .init()) { self.coreDataStack = coreDataStack self.dataMigrator = dataMigrator self.userPersistentRepository = userPersistentRepository self.eligibilityProvider = eligibilityProvider + self.tracker = tracker } - enum ContentMigrationCoordinatorError: Error { + enum ContentMigrationCoordinatorError: LocalizedError { case ineligible case exportFailure case localDraftsNotSynced + + var errorDescription: String? { + switch self { + case .ineligible: return "Content export is ineligible" + case .exportFailure: return "Content export failed" + case .localDraftsNotSynced: return "Local drafts not synced" + } + } } // MARK: Methods @@ -41,22 +52,27 @@ class ContentMigrationCoordinator { /// - Parameter completion: Closure called after the export process completes. func startAndDo(completion: ((Result) -> Void)? = nil) { guard eligibilityProvider.isEligibleForMigration else { + tracker.trackContentExportEligibility(eligible: false) completion?(.failure(.ineligible)) return } guard isLocalPostsSynced() else { - completion?(.failure(.localDraftsNotSynced)) + let error = ContentMigrationCoordinatorError.localDraftsNotSynced + tracker.trackContentExportFailed(reason: error.localizedDescription) + completion?(.failure(error)) return } - dataMigrator.exportData { result in + dataMigrator.exportData { [weak self] result in switch result { case .success: + self?.tracker.trackContentExportSucceeded() completion?(.success(())) case .failure(let error): DDLogError("[Jetpack Migration] Error exporting data: \(error)") + self?.tracker.trackContentExportFailed(reason: error.localizedDescription) completion?(.failure(.exportFailure)) } } diff --git a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift index 4c1dc1f4c1cf..77f74cf2bcd8 100644 --- a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift +++ b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift @@ -101,12 +101,17 @@ private extension JetpackWindowManager { func showLoadWordPressUI(schemeUrl: URL) { let actions = MigrationLoadWordPressViewModel.Actions() let loadWordPressViewModel = MigrationLoadWordPressViewModel(actions: actions) - let loadWordPressViewController = MigrationLoadWordPressViewController(viewModel: loadWordPressViewModel) - actions.primary = { + let loadWordPressViewController = MigrationLoadWordPressViewController( + viewModel: loadWordPressViewModel, + tracker: migrationTracker + ) + actions.primary = { [weak self] in + self?.migrationTracker.track(.loadWordPressScreenOpenTapped) UIApplication.shared.open(schemeUrl) } - actions.secondary = { [weak self] in - loadWordPressViewController.dismiss(animated: true) { + actions.secondary = { [weak self, weak loadWordPressViewController] in + self?.migrationTracker.track(.loadWordPressScreenNoThanksTapped) + loadWordPressViewController?.dismiss(animated: true) { self?.showSignInUI() } } diff --git a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift index 1036efb7106e..2ac2f3ddcff5 100644 --- a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift +++ b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationAnalyticsTracker.swift @@ -9,6 +9,22 @@ struct MigrationAnalyticsTracker { WPAnalytics.track(event) } + // MARK: - Content Export + + func trackContentExportEligibility(eligible: Bool) { + let properties = ["eligible": String(eligible)] + self.track(.contentExportEligibility, properties: properties) + } + + func trackContentExportSucceeded() { + self.track(.contentExportSucceeded) + } + + func trackContentExportFailed(reason: String) { + let properties = ["error_type": reason] + self.track(.contentExportFailed, properties: properties) + } + // MARK: - Content Import func trackContentImportEligibility(eligible: Bool) { diff --git a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationEvent.swift b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationEvent.swift index 4767016bcf58..c1de02f1f627 100644 --- a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationEvent.swift +++ b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Common/Analytics/MigrationEvent.swift @@ -1,6 +1,11 @@ import Foundation enum MigrationEvent: String { + // Content Export + case contentExportEligibility = "migration_content_export_eligibility" + case contentExportSucceeded = "migration_content_export_succeeded" + case contentExportFailed = "migration_content_export_failed" + // Content Import case contentImportEligibility = "migration_content_import_eligibility" case contentImportSucceeded = "migration_content_import_succeeded" @@ -37,6 +42,11 @@ enum MigrationEvent: String { case pleaseDeleteWordPressScreenHelpTapped = "migration_please_delete_wordpress_screen_help_tapped" case pleaseDeleteWordPressScreenCloseTapped = "migration_please_delete_wordpress_screen_close_tapped" - // WordPress Migratable Stat + // Load WordPress + case loadWordPressScreenShown = "migration_load_wordpress_screen_shown" + case loadWordPressScreenOpenTapped = "migration_load_wordpress_screen_open_tapped" + case loadWordPressScreenNoThanksTapped = "migration_load_wordpress_screen_no_thanks_tapped" + + // WordPress Migratable State case wordPressDetected = "migration_wordpressapp_detected" } diff --git a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Load WordPress/MigrationLoadWordPressViewController.swift b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Load WordPress/MigrationLoadWordPressViewController.swift index 259ac3feab50..0fa9c7de23e2 100644 --- a/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Load WordPress/MigrationLoadWordPressViewController.swift +++ b/WordPress/Jetpack/Classes/ViewRelated/WordPress-to-Jetpack Migration/Load WordPress/MigrationLoadWordPressViewController.swift @@ -5,11 +5,13 @@ class MigrationLoadWordPressViewController: UIViewController { // MARK: - Dependencies private let viewModel: MigrationLoadWordPressViewModel + private let tracker: MigrationAnalyticsTracker // MARK: - Init - init(viewModel: MigrationLoadWordPressViewModel) { + init(viewModel: MigrationLoadWordPressViewModel, tracker: MigrationAnalyticsTracker = .init()) { self.viewModel = viewModel + self.tracker = tracker super.init(nibName: nil, bundle: nil) } @@ -32,4 +34,9 @@ class MigrationLoadWordPressViewController: UIViewController { super.viewDidLoad() self.view.backgroundColor = MigrationAppearance.backgroundColor } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + self.tracker.track(.loadWordPressScreenShown) + } } From fcd38db6bdea08682ac89fc6f6a161bdce8b971d Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 5 Dec 2022 15:34:37 +0100 Subject: [PATCH 03/17] Add note regarding #19714 to editorialized release notes --- WordPress/Resources/release_notes.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index 1f2d9254a2e6..ee4e32f39d48 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,3 +1,5 @@ +You can now migrate your site content to the Jetpack app without a hitch. + We fixed a small visual issue with the Home and Menu control in the My Site dashboard. We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app. From f6efa1d7b4cda08ae5ee224afa474ed6cd7a01ce Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 5 Dec 2022 15:35:57 +0100 Subject: [PATCH 04/17] Update metadata strings --- WordPress/Resources/AppStoreStrings.po | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Resources/AppStoreStrings.po b/WordPress/Resources/AppStoreStrings.po index e08b33218b2f..841c0abb410e 100644 --- a/WordPress/Resources/AppStoreStrings.po +++ b/WordPress/Resources/AppStoreStrings.po @@ -47,6 +47,8 @@ msgstr "" msgctxt "v21.3-whats-new" msgid "" +"You can now migrate your site content to the Jetpack app without a hitch.\n" +"\n" "We fixed a small visual issue with the Home and Menu control in the My Site dashboard.\n" "\n" "We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app.\n" From ae2fb3279cb2a9da02af8d8fd99af3e435d4a0c2 Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Mon, 5 Dec 2022 13:58:10 -0500 Subject: [PATCH 05/17] Revert "Enable content migration flow feature flags." This reverts commit dd1ecb8ab7ce50a4c164ce8139fa51d2a8772634. --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index 5546bd0be35d..4c0a345d7cd8 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -113,9 +113,9 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case .jetpackPowered: return true case .jetpackPoweredBottomSheet: - return true + return false case .contentMigration: - return true + return false case .newJetpackLandingScreen: return true case .newWordPressLandingScreen: From 45e556beade262eacde154fd25c9951aee629bdc Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Mon, 5 Dec 2022 13:58:31 -0500 Subject: [PATCH 06/17] Revert "Add release notes." This reverts commit 440b8e8fd0977ae19a459f9b711d20cc84c25419. --- RELEASE-NOTES.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 4a12142a3c59..e5f3947817ee 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -4,7 +4,6 @@ 21.3 ----- -* [***] Adds a smooth, opt-in transition to the Jetpack app. [#19714] * [*] [internal] When a user migrates to the Jetpack app and allows notifications, WordPress app notifications are disabled. This is released disabled and is behind a feature flag. [#19616, #19611, #19590] * [*] Fixed a minor UI issue where the segmented control under My SIte was being clipped when "Home" is selected. [#19595] * [*] Fixed an issue where the site wasn't removed and the app wasn't refreshed after disconnecting the site from WordPress.com. [#19634] From e94bceeb908b6643954281fddfb2ba544cfc07d6 Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Mon, 5 Dec 2022 21:10:51 +0200 Subject: [PATCH 07/17] Disable jetpackMigrationPreventDuplicateNotifications Feature Flag --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index 5546bd0be35d..8c6ee6fef1d5 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -123,7 +123,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case .newCoreDataContext: return true case .jetpackMigrationPreventDuplicateNotifications: - return true + return false case .jetpackFeaturesRemovalPhaseOne: return false case .jetpackFeaturesRemovalPhaseTwo: From ac5fc43fa736f770a959143e28172fd123b757e3 Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Mon, 5 Dec 2022 21:11:31 +0200 Subject: [PATCH 08/17] Revert changes in RELEASE-NOTES.txt --- RELEASE-NOTES.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 4a12142a3c59..799df12a3d2b 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -5,7 +5,6 @@ 21.3 ----- * [***] Adds a smooth, opt-in transition to the Jetpack app. [#19714] -* [*] [internal] When a user migrates to the Jetpack app and allows notifications, WordPress app notifications are disabled. This is released disabled and is behind a feature flag. [#19616, #19611, #19590] * [*] Fixed a minor UI issue where the segmented control under My SIte was being clipped when "Home" is selected. [#19595] * [*] Fixed an issue where the site wasn't removed and the app wasn't refreshed after disconnecting the site from WordPress.com. [#19634] * [*] [internal] Fixed an issue where Jetpack extensions were conflicting with WordPress extensions. [#19665] From 58f33a0783e69424fcf2867bb602d222c4822359 Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Mon, 5 Dec 2022 15:04:31 -0500 Subject: [PATCH 09/17] Put the ContentMigrationCoordinator process behind the Content Migration feature flag. --- WordPress/Classes/System/WordPressAppDelegate.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/System/WordPressAppDelegate.swift b/WordPress/Classes/System/WordPressAppDelegate.swift index 7502ac31560d..23f6532f16f4 100644 --- a/WordPress/Classes/System/WordPressAppDelegate.swift +++ b/WordPress/Classes/System/WordPressAppDelegate.swift @@ -328,10 +328,12 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate { setupWordPressExtensions() - // Start proactively exporting WP data in the background if the conditions are fulfilled. - // This needs to be called after `setupWordPressExtensions` because it updates the stored data. - DispatchQueue.global().async { - ContentMigrationCoordinator.shared.startOnceIfNeeded() + if FeatureFlag.contentMigration.enabled { + // Start proactively exporting WP data in the background if the conditions are fulfilled. + // This needs to be called after `setupWordPressExtensions` because it updates the stored data. + DispatchQueue.global().async { + ContentMigrationCoordinator.shared.startOnceIfNeeded() + } } shortcutCreator.createShortcutsIf3DTouchAvailable(AccountHelper.isLoggedIn) From 493c621b93ee657bab831be991e2fbfe3b9d6efe Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Mon, 5 Dec 2022 16:33:33 -0500 Subject: [PATCH 10/17] Revamp showUI logic and factor in content migration feature flag for Jetpack. --- .../Classes/System/JetpackWindowManager.swift | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift index 99eab365dce4..42963903fd61 100644 --- a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift +++ b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift @@ -15,21 +15,25 @@ class JetpackWindowManager: WindowManager { } override func showUI(for blog: Blog?) { - // If the user is logged in and has blogs sync'd to their account - if AccountHelper.isLoggedIn && AccountHelper.hasBlogs { - showAppUI(for: blog) + if AccountHelper.isLoggedIn { + if AccountHelper.hasBlogs { + // If the user is logged in and has blogs sync'd to their account + showAppUI(for: blog) + } else { + // If the user doesn't have any blogs, but they're still logged in, log them out + // the `logOutDefaultWordPressComAccount` method will trigger the `showSignInUI` automatically + AccountHelper.logOutDefaultWordPressComAccount() + } return } - guard AccountHelper.isLoggedIn else { - self.migrationTracker.trackContentImportEligibility(eligible: shouldImportMigrationData) - shouldImportMigrationData ? importAndShowMigrationContent(blog) : showSignInUI() + guard FeatureFlag.contentMigration.enabled else { + showSignInUI() return } - // If the user doesn't have any blogs, but they're still logged in, log them out - // the `logOutDefaultWordPressComAccount` method will trigger the `showSignInUI` automatically - AccountHelper.logOutDefaultWordPressComAccount() + self.migrationTracker.trackContentImportEligibility(eligible: shouldImportMigrationData) + shouldImportMigrationData ? importAndShowMigrationContent(blog) : showSignInUI() } func importAndShowMigrationContent(_ blog: Blog? = nil) { From 85f4bfb274bd009d8bef680e495e9aecff307e10 Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Mon, 5 Dec 2022 17:37:19 -0500 Subject: [PATCH 11/17] Add immediate returns to improve readability. --- WordPress/Jetpack/Classes/System/JetpackWindowManager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift index 42963903fd61..1ab8f3a95d07 100644 --- a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift +++ b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift @@ -19,12 +19,13 @@ class JetpackWindowManager: WindowManager { if AccountHelper.hasBlogs { // If the user is logged in and has blogs sync'd to their account showAppUI(for: blog) + return } else { // If the user doesn't have any blogs, but they're still logged in, log them out // the `logOutDefaultWordPressComAccount` method will trigger the `showSignInUI` automatically AccountHelper.logOutDefaultWordPressComAccount() + return } - return } guard FeatureFlag.contentMigration.enabled else { From 60a1e32a45d862ed31cdb76ad6896b9d250e9281 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 6 Dec 2022 11:44:24 +0100 Subject: [PATCH 12/17] =?UTF-8?q?Update=20app=20translations=20=E2=80=93?= =?UTF-8?q?=20`Localizable.strings`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WordPress/Resources/ro.lproj/Localizable.strings | 4 ++-- WordPress/Resources/zh-Hant.lproj/Localizable.strings | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Resources/ro.lproj/Localizable.strings b/WordPress/Resources/ro.lproj/Localizable.strings index c8e2893199f0..29a4992863d0 100644 --- a/WordPress/Resources/ro.lproj/Localizable.strings +++ b/WordPress/Resources/ro.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-11-29 15:27:05+0000 */ +/* Translation-Revision-Date: 2022-12-02 21:16:36+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n % 100 >= 2 && n % 100 <= 19) ? 1 : 2); */ /* Generator: GlotPress/4.0.0-alpha.3 */ /* Language: ro */ @@ -5811,7 +5811,7 @@ translators: %s: Select control button label e.g. \"Button width\" */ "Preview Device" = "Dispozitiv de previzualizare"; /* Title on display preview error */ -"Preview Unavailable" = "Previzualizare indisponibilă"; +"Preview Unavailable" = "Previzualizarea nu este disponibilă"; /* Accessibility label for media item preview for user's viewing an item in their media library */ "Preview media" = "Previzualizează elementul media"; diff --git a/WordPress/Resources/zh-Hant.lproj/Localizable.strings b/WordPress/Resources/zh-Hant.lproj/Localizable.strings index cf4d72587396..845ef140db8a 100644 --- a/WordPress/Resources/zh-Hant.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hant.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2022-11-30 14:54:27+0000 */ +/* Translation-Revision-Date: 2022-12-03 05:25:36+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/4.0.0-alpha.3 */ /* Language: zh_TW */ @@ -8080,7 +8080,7 @@ translators: %s: Select control option value e.g: \"Auto, 25%\". */ Button title for Trash comment state. Trashes a comment Trashes the comment */ -"Trash" = "移至垃圾桶"; +"Trash" = "移至回收桶"; /* Accessibility hint for trash button to delete items from the user's media library */ "Trash selected media" = "將選取的媒體移至垃圾桶"; From 025363403b3266d379d07710a78fc726160e54e8 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 6 Dec 2022 11:44:47 +0100 Subject: [PATCH 13/17] Update WordPress metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 3 +++ fastlane/metadata/de-DE/release_notes.txt | 3 +++ fastlane/metadata/default/release_notes.txt | 2 ++ fastlane/metadata/en-GB/release_notes.txt | 3 +++ fastlane/metadata/es-ES/release_notes.txt | 3 +++ fastlane/metadata/id/release_notes.txt | 3 +++ fastlane/metadata/ru/release_notes.txt | 3 +++ fastlane/metadata/sv/release_notes.txt | 3 +++ 8 files changed, 23 insertions(+) create mode 100644 fastlane/metadata/ar-SA/release_notes.txt create mode 100644 fastlane/metadata/de-DE/release_notes.txt create mode 100644 fastlane/metadata/en-GB/release_notes.txt create mode 100644 fastlane/metadata/es-ES/release_notes.txt create mode 100644 fastlane/metadata/id/release_notes.txt create mode 100644 fastlane/metadata/ru/release_notes.txt create mode 100644 fastlane/metadata/sv/release_notes.txt diff --git a/fastlane/metadata/ar-SA/release_notes.txt b/fastlane/metadata/ar-SA/release_notes.txt new file mode 100644 index 000000000000..1c5033751517 --- /dev/null +++ b/fastlane/metadata/ar-SA/release_notes.txt @@ -0,0 +1,3 @@ +أصلحنا مشكلة بصرية طفيفة من خلال عنصر التحكم في الصفحة الرئيسية والقائمة ضمن لوحة تحكم موقعي. + +عالجنا أيضًا مشكلة في موقعي. يتم الآن قطع اتصال زر "قطع الاتصال من ووردبريس.كوم" الآن عند النقر عليه، وسيتم تحديث التطبيق. diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt new file mode 100644 index 000000000000..5b2c1c29db8a --- /dev/null +++ b/fastlane/metadata/de-DE/release_notes.txt @@ -0,0 +1,3 @@ +Ein geringfügiges visuelles Problem mit dem Home- und Menü-Steuerelement im Dashboard „Meine Website“ wurde behoben. + +Wir haben ebenfalls einige Fehler im Bereich „Meine Website“ beseitigt. Der Button „Verbindung mit WordPress.com trennen“ trennt jetzt bei Antippen die Verbindung und lädt daraufhin die App erneut. diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt index 1f2d9254a2e6..ee4e32f39d48 100644 --- a/fastlane/metadata/default/release_notes.txt +++ b/fastlane/metadata/default/release_notes.txt @@ -1,3 +1,5 @@ +You can now migrate your site content to the Jetpack app without a hitch. + We fixed a small visual issue with the Home and Menu control in the My Site dashboard. We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app. diff --git a/fastlane/metadata/en-GB/release_notes.txt b/fastlane/metadata/en-GB/release_notes.txt new file mode 100644 index 000000000000..1f2d9254a2e6 --- /dev/null +++ b/fastlane/metadata/en-GB/release_notes.txt @@ -0,0 +1,3 @@ +We fixed a small visual issue with the Home and Menu control in the My Site dashboard. + +We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app. diff --git a/fastlane/metadata/es-ES/release_notes.txt b/fastlane/metadata/es-ES/release_notes.txt new file mode 100644 index 000000000000..454253539d95 --- /dev/null +++ b/fastlane/metadata/es-ES/release_notes.txt @@ -0,0 +1,3 @@ +Hemos corregido un pequeño problema visual con el control de inicio y menú en el escritorio de «Mi sitio». + +También hemos corregido un fallo en «Mi sitio». El botón de «Desconectar de WordPress.com» ahora desconecta cuando se toca y recargará la aplicación. diff --git a/fastlane/metadata/id/release_notes.txt b/fastlane/metadata/id/release_notes.txt new file mode 100644 index 000000000000..158a1db9c98f --- /dev/null +++ b/fastlane/metadata/id/release_notes.txt @@ -0,0 +1,3 @@ +Kami memperbaiki sedikit masalah tampilan pada kontrol Beranda dan Menu di dasbor Situs Saya. + +Kami juga mengatasi bug di Situs Saya. Sekarang mengetuk tombol "Putuskan koneksi dari WordPress.com” akan segera memutuskan koneksi dan menyegarkan aplikasi. diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt new file mode 100644 index 000000000000..ea239f6605cd --- /dev/null +++ b/fastlane/metadata/ru/release_notes.txt @@ -0,0 +1,3 @@ +Мы устранили небольшую проблему с отображением элемента управления на главной странице и в меню на консоли «Мой сайт». + +Мы также устранили ошибку в разделе «Мой сайт». Кнопка «Отключить от WordPress.com» теперь прерывает подключение и обновляет приложение. diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt new file mode 100644 index 000000000000..b9fb918c9be1 --- /dev/null +++ b/fastlane/metadata/sv/release_notes.txt @@ -0,0 +1,3 @@ +Vi har rättat ett litet visuellt problem med reglaget för startsida och meny i adminpanelen “Min webbplats“. + +Dessutom har vi fixat ett fel under “Min webbplats”. Om du trycker på ”Koppla bort från WordPress.com” bryts nu anslutningen, varefter appen laddas om. From 24fa04362d4a3fd3970ac884a016e6ef6a527e71 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 6 Dec 2022 11:44:55 +0100 Subject: [PATCH 14/17] Update Jetpack metadata translations --- fastlane/jetpack_metadata/ar-SA/release_notes.txt | 3 +++ fastlane/jetpack_metadata/de-DE/release_notes.txt | 3 +++ fastlane/jetpack_metadata/es-ES/release_notes.txt | 3 +++ fastlane/jetpack_metadata/id/release_notes.txt | 3 +++ fastlane/jetpack_metadata/it/release_notes.txt | 3 +++ fastlane/jetpack_metadata/ja/release_notes.txt | 3 +++ fastlane/jetpack_metadata/ru/release_notes.txt | 3 +++ fastlane/jetpack_metadata/zh-Hant/release_notes.txt | 3 +++ 8 files changed, 24 insertions(+) create mode 100644 fastlane/jetpack_metadata/ar-SA/release_notes.txt create mode 100644 fastlane/jetpack_metadata/de-DE/release_notes.txt create mode 100644 fastlane/jetpack_metadata/es-ES/release_notes.txt create mode 100644 fastlane/jetpack_metadata/id/release_notes.txt create mode 100644 fastlane/jetpack_metadata/it/release_notes.txt create mode 100644 fastlane/jetpack_metadata/ja/release_notes.txt create mode 100644 fastlane/jetpack_metadata/ru/release_notes.txt create mode 100644 fastlane/jetpack_metadata/zh-Hant/release_notes.txt diff --git a/fastlane/jetpack_metadata/ar-SA/release_notes.txt b/fastlane/jetpack_metadata/ar-SA/release_notes.txt new file mode 100644 index 000000000000..1c5033751517 --- /dev/null +++ b/fastlane/jetpack_metadata/ar-SA/release_notes.txt @@ -0,0 +1,3 @@ +أصلحنا مشكلة بصرية طفيفة من خلال عنصر التحكم في الصفحة الرئيسية والقائمة ضمن لوحة تحكم موقعي. + +عالجنا أيضًا مشكلة في موقعي. يتم الآن قطع اتصال زر "قطع الاتصال من ووردبريس.كوم" الآن عند النقر عليه، وسيتم تحديث التطبيق. diff --git a/fastlane/jetpack_metadata/de-DE/release_notes.txt b/fastlane/jetpack_metadata/de-DE/release_notes.txt new file mode 100644 index 000000000000..5b2c1c29db8a --- /dev/null +++ b/fastlane/jetpack_metadata/de-DE/release_notes.txt @@ -0,0 +1,3 @@ +Ein geringfügiges visuelles Problem mit dem Home- und Menü-Steuerelement im Dashboard „Meine Website“ wurde behoben. + +Wir haben ebenfalls einige Fehler im Bereich „Meine Website“ beseitigt. Der Button „Verbindung mit WordPress.com trennen“ trennt jetzt bei Antippen die Verbindung und lädt daraufhin die App erneut. diff --git a/fastlane/jetpack_metadata/es-ES/release_notes.txt b/fastlane/jetpack_metadata/es-ES/release_notes.txt new file mode 100644 index 000000000000..1224648aa418 --- /dev/null +++ b/fastlane/jetpack_metadata/es-ES/release_notes.txt @@ -0,0 +1,3 @@ +Hemos solucionado un pequeño problema visual con el control de inicio y del menú en el escritorio de Mi sitio. + +También hemos eliminado un error en Mi sitio. Ahora, el botón "Desconectar de WordPress.com" lo desconecta al tocarlo y actualiza la aplicación. diff --git a/fastlane/jetpack_metadata/id/release_notes.txt b/fastlane/jetpack_metadata/id/release_notes.txt new file mode 100644 index 000000000000..158a1db9c98f --- /dev/null +++ b/fastlane/jetpack_metadata/id/release_notes.txt @@ -0,0 +1,3 @@ +Kami memperbaiki sedikit masalah tampilan pada kontrol Beranda dan Menu di dasbor Situs Saya. + +Kami juga mengatasi bug di Situs Saya. Sekarang mengetuk tombol "Putuskan koneksi dari WordPress.com” akan segera memutuskan koneksi dan menyegarkan aplikasi. diff --git a/fastlane/jetpack_metadata/it/release_notes.txt b/fastlane/jetpack_metadata/it/release_notes.txt new file mode 100644 index 000000000000..60bdc8731e72 --- /dev/null +++ b/fastlane/jetpack_metadata/it/release_notes.txt @@ -0,0 +1,3 @@ +Abbiamo risolto un piccolo problema visuale con il controllo della Home e del Menu nella bacheca Il mio sito. + +Abbiamo anche risolto un bug in Il mio sito. Il pulsante "Disconnetti da WordPress.com" ora disconnette quando viene toccato e aggiorna l'app. diff --git a/fastlane/jetpack_metadata/ja/release_notes.txt b/fastlane/jetpack_metadata/ja/release_notes.txt new file mode 100644 index 000000000000..2e169325e71c --- /dev/null +++ b/fastlane/jetpack_metadata/ja/release_notes.txt @@ -0,0 +1,3 @@ +サイトの管理画面のホームとメニューの操作で発生する小さな問題を修正しました。 + +また、参加サイトのバグも修正しました。 「WordPress.com との連携を解除」ボタンをタップすると連携が解除され、アプリが更新されるようになりました。 diff --git a/fastlane/jetpack_metadata/ru/release_notes.txt b/fastlane/jetpack_metadata/ru/release_notes.txt new file mode 100644 index 000000000000..ea239f6605cd --- /dev/null +++ b/fastlane/jetpack_metadata/ru/release_notes.txt @@ -0,0 +1,3 @@ +Мы устранили небольшую проблему с отображением элемента управления на главной странице и в меню на консоли «Мой сайт». + +Мы также устранили ошибку в разделе «Мой сайт». Кнопка «Отключить от WordPress.com» теперь прерывает подключение и обновляет приложение. diff --git a/fastlane/jetpack_metadata/zh-Hant/release_notes.txt b/fastlane/jetpack_metadata/zh-Hant/release_notes.txt new file mode 100644 index 000000000000..d8d539b6c9b6 --- /dev/null +++ b/fastlane/jetpack_metadata/zh-Hant/release_notes.txt @@ -0,0 +1,3 @@ +我們修正了「我的網站」控制台首頁和選單控制項目在視覺上的一個小問題, + +也修正了「我的網站」中的一個錯誤。 現在點選「中斷與 WordPress.com 的連結」按鈕會中斷連結並重新整理應用程式。 From 55b975a7778cb97ca8c3ac7575aa81ff389d24c3 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 6 Dec 2022 11:45:09 +0100 Subject: [PATCH 15/17] Bump version number --- config/Version.internal.xcconfig | 2 +- config/Version.public.xcconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/Version.internal.xcconfig b/config/Version.internal.xcconfig index 4ba47a61c676..167f1184ca46 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=21.3 // Internal long version example: VERSION_LONG=9.9.0.20180423 -VERSION_LONG=21.3.0.20221202 +VERSION_LONG=21.3.0.20221206 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index d3afd1325ed7..c3a012b76234 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=21.3 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=21.3.0.1 +VERSION_LONG=21.3.0.2 From 75c637f8e86d2114b373f3741cf247a22ca54c42 Mon Sep 17 00:00:00 2001 From: Povilas Staskus Date: Tue, 6 Dec 2022 15:39:10 +0200 Subject: [PATCH 16/17] Do not depend on remote feature flags --- .../Services/JetpackNotificationMigrationService.swift | 2 +- .../JetpackNotificationMigrationServiceTests.swift | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Services/JetpackNotificationMigrationService.swift b/WordPress/Classes/Services/JetpackNotificationMigrationService.swift index 420b72525aa1..d8f57b9a2560 100644 --- a/WordPress/Classes/Services/JetpackNotificationMigrationService.swift +++ b/WordPress/Classes/Services/JetpackNotificationMigrationService.swift @@ -22,7 +22,7 @@ final class JetpackNotificationMigrationService: JetpackNotificationMigrationSer private let jetpackNotificationMigrationDefaultsKey = "jetpackNotificationMigrationDefaultsKey" private var jetpackMigrationPreventDuplicateNotifications: Bool { - return featureFlagStore.value(for: FeatureFlag.jetpackMigrationPreventDuplicateNotifications) + return FeatureFlag.jetpackMigrationPreventDuplicateNotifications.enabled } var wordPressNotificationsEnabled: Bool { diff --git a/WordPress/WordPressTest/JetpackNotificationMigrationServiceTests.swift b/WordPress/WordPressTest/JetpackNotificationMigrationServiceTests.swift index b93ee0a1650c..0d36c36b22d8 100644 --- a/WordPress/WordPressTest/JetpackNotificationMigrationServiceTests.swift +++ b/WordPress/WordPressTest/JetpackNotificationMigrationServiceTests.swift @@ -138,7 +138,11 @@ private class RemoteNotificationRegisterMock: RemoteNotificationRegister { } private class RemoteFeatureFlagStoreMock: RemoteFeatureFlagStore { - var value = false + var value = false { + didSet { + try? FeatureFlagOverrideStore().override(FeatureFlag.jetpackMigrationPreventDuplicateNotifications, withValue: value) + } + } override func value(for flag: OverrideableFlag) -> Bool { return value From 27964b22409acb4d65965627f88b392ab302494f Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 6 Dec 2022 14:58:27 +0100 Subject: [PATCH 17/17] Revert "Add note regarding #19714 to editorialized release notes" This reverts commit fcd38db6bdea08682ac89fc6f6a161bdce8b971d. Since making that change to the release notes, the content migration feature has been disabled (via feature toggle, see #19734, #19736) and it would be misleading to advertise it in the release notes. This also reverts f6efa1d7b4cda08ae5ee224afa474ed6cd7a01ce. --- WordPress/Resources/AppStoreStrings.po | 2 -- WordPress/Resources/release_notes.txt | 2 -- 2 files changed, 4 deletions(-) diff --git a/WordPress/Resources/AppStoreStrings.po b/WordPress/Resources/AppStoreStrings.po index 841c0abb410e..e08b33218b2f 100644 --- a/WordPress/Resources/AppStoreStrings.po +++ b/WordPress/Resources/AppStoreStrings.po @@ -47,8 +47,6 @@ msgstr "" msgctxt "v21.3-whats-new" msgid "" -"You can now migrate your site content to the Jetpack app without a hitch.\n" -"\n" "We fixed a small visual issue with the Home and Menu control in the My Site dashboard.\n" "\n" "We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app.\n" diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index ee4e32f39d48..1f2d9254a2e6 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,5 +1,3 @@ -You can now migrate your site content to the Jetpack app without a hitch. - We fixed a small visual issue with the Home and Menu control in the My Site dashboard. We also squashed a bug in My Site. The "Disconnect from WordPress.com” button now disconnects when tapped and will refresh the app.