From 344ba085d91e6f1dc23534bb24faa65c33c3a715 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 4 Nov 2021 12:44:40 +0100 Subject: [PATCH 001/371] Instantiates the analytics tracker in UnifiedAboutViewController --- .../About/UnifiedAboutTracker.swift | 70 ++++++++++++++++++ .../About/UnifiedAboutViewController.swift | 16 +++++ WordPress/WordPress.xcodeproj/project.pbxproj | 34 +++++++++ .../About/UnifiedAboutTrackerTests.swift | 72 +++++++++++++++++++ 4 files changed, 192 insertions(+) create mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift create mode 100644 WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift new file mode 100644 index 000000000000..2d48af2c1b46 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift @@ -0,0 +1,70 @@ +import Foundation + +protocol UnifiedAboutTrackerEvent { + var name: String { get } + var properties: [String: String] { get } +} + +/// Analytics tracker for the unified about flows. +/// +public class UnifiedAboutTracker { + typealias TrackCallback = (_ eventName: String, _ properties: [String: String]) -> Void + + /// The tracking callback. + /// + private let trackCallback: TrackCallback + + // MARK: - + + init(trackCallback: @escaping TrackCallback) { + self.trackCallback = trackCallback + } + + // MARK: - Tracking + + func track(_ event: UnifiedAboutTrackerEvent) { + trackCallback(event.name, event.properties) + } + + // MARK: - Supported Events + + public struct ScreenShownEvent: UnifiedAboutTrackerEvent { + let name = "about_screen_shown" + let properties = [String: String]() + } + + public struct ScreenDismissedEvent: UnifiedAboutTrackerEvent { + let name = "about_screen_dismissed" + let properties = [String: String]() + } + + public struct ButtonPressedEvent: UnifiedAboutTrackerEvent { + enum Button: String, CaseIterable { + case dismiss + case rateUs = "rate_us" + case share + case twitter + case legal + case automatticFamily = "automattic_family" + case workWithUs = "work_with_us" + + // App buttons + case appDayone = "app_dayone" + case appJetpack = "app_jetpack" + case appPocketcasts = "app_pocketcasts" + case appSimplenote = "app_simplenote" + case appTumblr = "app_tumblr" + case appWoo = "app_woo" + case appWordpress = "app_wordpress" + } + + private static let buttonPropertyKey = "button" + + let name = "about_screen_button_tapped" + let button: Button + + var properties: [String: String] { + [ButtonPressedEvent.buttonPropertyKey: button.rawValue] + } + } +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index f1cc8d160530..7bf68c5b4828 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -59,6 +59,22 @@ class UnifiedAboutViewController: UIViewController { ] ] + // MARK: - Analytics + + private let tracker = UnifiedAboutTracker() { eventName, properties in + // Part of this customization should happen in the App, so that we don't need to add analytics + // dependencies into unified-about (and it remains tracker agnostic). + // + // We could decide to let the app create the tracker and pass it to the VC, or maybe + // a simpler approach where the app can set a delegate / callback in the VC for tracking. + // + // I'm leaving these customizations here for now until we decide the concrete solution we want + // + let event = AnalyticsEvent(name: eventName, properties: properties) + + WPAnalytics.track(event) + } + // MARK: - Views private lazy var tableView: UITableView = { diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 412aeb7eef9b..c4f1f7a4c7a0 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2511,6 +2511,7 @@ F1450CF92437EEBB00A28BFE /* MediaRequestAuthenticatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1450CF82437EEBB00A28BFE /* MediaRequestAuthenticatorTests.swift */; }; F1482CE02575BDA4007E4DD6 /* SitesDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1482CDF2575BDA4007E4DD6 /* SitesDataProvider.swift */; }; F151EC832665271200AEA89E /* BloggingRemindersSchedulerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F151EC822665271200AEA89E /* BloggingRemindersSchedulerTests.swift */; }; + F1521A022733F0690041DEC7 /* UnifiedAboutTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */; }; F15272FD243B27BC00C8DC7A /* AbstractPost+Local.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15272FC243B27BC00C8DC7A /* AbstractPost+Local.swift */; }; F15272FF243B28B700C8DC7A /* RequestAuthenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15272FE243B28B600C8DC7A /* RequestAuthenticator.swift */; }; F1527301243B290E00C8DC7A /* AbstractPost+Autosave.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1527300243B290D00C8DC7A /* AbstractPost+Autosave.swift */; }; @@ -2547,6 +2548,8 @@ F198FF5D256D4877001266EB /* HomeWidgetCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA53E9B256571D800F4D9A2 /* HomeWidgetCache.swift */; }; F1A38F212678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; F1A38F222678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; + F1A75B9B2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */; }; + F1A75B9C2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */; }; F1ACDF6B256D6C120005AE9B /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; F1ACDF7C256D6C290005AE9B /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; F1ADCAF7241FEF0C00F150D2 /* AtomicAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */; }; @@ -7364,6 +7367,7 @@ F14B5F75208E64F900439554 /* Version.internal.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.internal.xcconfig; sourceTree = ""; }; F14E844C2317252200D0C63E /* WordPress 90.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 90.xcdatamodel"; sourceTree = ""; }; F151EC822665271200AEA89E /* BloggingRemindersSchedulerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersSchedulerTests.swift; sourceTree = ""; }; + F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedAboutTrackerTests.swift; sourceTree = ""; }; F15272FC243B27BC00C8DC7A /* AbstractPost+Local.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Local.swift"; sourceTree = ""; }; F15272FE243B28B600C8DC7A /* RequestAuthenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestAuthenticator.swift; sourceTree = ""; }; F1527300243B290D00C8DC7A /* AbstractPost+Autosave.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Autosave.swift"; sourceTree = ""; }; @@ -7385,6 +7389,7 @@ F198FF7F256D498A001266EB /* WordPressIntentsRelease-Internal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Internal.entitlements"; sourceTree = ""; }; F198FFB1256D4AB2001266EB /* WordPressIntentsRelease-Alpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Alpha.entitlements"; sourceTree = ""; }; F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersFlow.swift; sourceTree = ""; }; + F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnifiedAboutTracker.swift; sourceTree = ""; }; F1ACDF4A256D6B2B0005AE9B /* WordPressIntents-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressIntents-Bridging-Header.h"; sourceTree = ""; }; F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomicAuthenticationService.swift; sourceTree = ""; }; F1B1E7A224098FA100549E2A /* BlogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogTests.swift; sourceTree = ""; }; @@ -9028,6 +9033,7 @@ FFC6ADD21B56F295002F3C84 /* AboutViewController.swift */, FFC6ADD31B56F295002F3C84 /* AboutViewController.xib */, 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */, + F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */, ); path = About; sourceTree = ""; @@ -13023,6 +13029,7 @@ isa = PBXGroup; children = ( 8B69F0E2255C2BC0006B1CEF /* Activity */, + F15219FE2733F02A0041DEC7 /* Me */, 32F1A6D123F710A300AB8CA9 /* NUX */, 8BD36E042395CC2F00EFFF1C /* Aztec */, 325D3B3A23A8372500766DF6 /* Comments */, @@ -14102,6 +14109,30 @@ path = ../config; sourceTree = ""; }; + F15219FE2733F02A0041DEC7 /* Me */ = { + isa = PBXGroup; + children = ( + F15219FF2733F03E0041DEC7 /* App Settings */, + ); + path = Me; + sourceTree = ""; + }; + F15219FF2733F03E0041DEC7 /* App Settings */ = { + isa = PBXGroup; + children = ( + F1521A002733F0460041DEC7 /* About */, + ); + path = "App Settings"; + sourceTree = ""; + }; + F1521A002733F0460041DEC7 /* About */ = { + isa = PBXGroup; + children = ( + F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */, + ); + path = About; + sourceTree = ""; + }; F15D1FB7265C40C300854EE5 /* Blogging Reminders */ = { isa = PBXGroup; children = ( @@ -18082,6 +18113,7 @@ E1F47D4D1FE0290C00C1D44E /* PluginListCell.swift in Sources */, 3F5C865D25C9EBEF00BABE64 /* HomeWidgetAllTimeData.swift in Sources */, D829C33B21B12EFE00B09F12 /* UIView+Borders.swift in Sources */, + F1A75B9B2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */, 5D42A3E0175E7452005CFF05 /* BasePost.m in Sources */, 17F7C24922770B68002E5C2E /* main.swift in Sources */, 9A4E939F2268D9B400E14823 /* UIViewController+NoResults.swift in Sources */, @@ -18901,6 +18933,7 @@ 4054F4592214E6FE00D261AB /* TagsCategoriesStatsRecordValueTests.swift in Sources */, C8567496243F3D37001A995E /* TenorResultsPageTests.swift in Sources */, B0A6DEBF2626335F00B5B8EF /* AztecPostViewController+MenuTests.swift in Sources */, + F1521A022733F0690041DEC7 /* UnifiedAboutTrackerTests.swift in Sources */, 4054F43E221357B600D261AB /* TopCommentedPostStatsRecordValueTests.swift in Sources */, 93B853231B4416A30064FE72 /* WPAnalyticsTrackerAutomatticTracksTests.m in Sources */, D848CC0720FF2BE200A9038F /* NotificationContentRangeFactoryTests.swift in Sources */, @@ -19415,6 +19448,7 @@ FABB21A92602FC2C00C8785C /* HomeWidgetData.swift in Sources */, FABB21AA2602FC2C00C8785C /* WPStyleGuide+Activity.swift in Sources */, FABB21AB2602FC2C00C8785C /* AllTimeWidgetStats.swift in Sources */, + F1A75B9C2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */, FABB21AC2602FC2C00C8785C /* GutenbergFilesAppMediaSource.swift in Sources */, FABB21AD2602FC2C00C8785C /* NoteBlockTextTableViewCell.swift in Sources */, FABB21AE2602FC2C00C8785C /* NotificationSettingStreamsViewController.swift in Sources */, diff --git a/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift b/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift new file mode 100644 index 000000000000..66bb0e6dcbc5 --- /dev/null +++ b/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift @@ -0,0 +1,72 @@ +import Foundation +@testable import WordPress + +fileprivate extension UnifiedAboutTracker.ButtonPressedEvent.Button { + /// This method is useful to prevent the button names from being changed by mistake in our sources. + /// It's also useful because if cases are added or removed, the tests wont build until they're added here, + /// which helps us guarantee 100% testing coverage for this type of event. + /// + func expectedButtonName() -> String { + switch self { + case .dismiss: + return "dismiss" + case .rateUs: + return "rate_us" + case .share: + return "share" + case .twitter: + return "twitter" + case .legal: + return "legal" + case .automatticFamily: + return "automattic_family" + case .workWithUs: + return "work_with_us" + case .appDayone: + return "app_dayone" + case .appJetpack: + return "app_jetpack" + case .appPocketcasts: + return "app_pocketcasts" + case .appSimplenote: + return "app_simplenote" + case .appWoo: + return "app_woo" + case .appTumblr: + return "app_tumblr" + case .appWordpress: + return "app_wordpress" + } + } +} + +class UnifiedAboutTrackerTests: XCTestCase { + func testTrackingScreenShown() { + let tracker = UnifiedAboutTracker() { (eventName, properties) in + XCTAssertEqual(eventName, "about_screen_shown") + XCTAssert(properties.isEmpty) + } + + tracker.track(UnifiedAboutTracker.ScreenShownEvent()) + } + + func testTrackingScreenDismissed() { + let tracker = UnifiedAboutTracker() { (eventName, properties) in + XCTAssertEqual(eventName, "about_screen_dismissed") + XCTAssert(properties.isEmpty) + } + + tracker.track(UnifiedAboutTracker.ScreenDismissedEvent()) + } + + func testTrackingButtonPressed() { + for button in UnifiedAboutTracker.ButtonPressedEvent.Button.allCases { + let tracker = UnifiedAboutTracker() { (eventName, properties) in + XCTAssertEqual(eventName, "about_screen_button_tapped") + XCTAssertEqual(properties, ["button": button.expectedButtonName()]) + } + + tracker.track(UnifiedAboutTracker.ButtonPressedEvent(button: button)) + } + } +} From 80d9318aafb64f4f14d30e194eddaa0b9f884920 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 4 Nov 2021 14:37:45 +0100 Subject: [PATCH 002/371] Generic event tracking implementation for unified-about. --- .../About/UnifiedAboutEvent.swift | 50 +++++++++++++ .../About/UnifiedAboutTracker.swift | 70 ------------------- .../About/UnifiedAboutViewController.swift | 44 +++++++++--- WordPress/WordPress.xcodeproj/project.pbxproj | 20 +++--- ...sts.swift => UnifiedAboutEventTests.swift} | 30 ++++---- 5 files changed, 106 insertions(+), 108 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift delete mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift rename WordPress/WordPressTest/Me/App Settings/About/{UnifiedAboutTrackerTests.swift => UnifiedAboutEventTests.swift} (57%) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift new file mode 100644 index 000000000000..6b7d69cdf5ba --- /dev/null +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift @@ -0,0 +1,50 @@ +import Foundation + +public enum UnifiedAboutEvent { + case screenShown + case screenDismissed + case buttonPressed(button: Button) + + public enum Button: String, CaseIterable { + case dismiss + case rateUs = "rate_us" + case share + case twitter + case legal + case automatticFamily = "automattic_family" + case workWithUs = "work_with_us" + + // App buttons + case appDayone = "app_dayone" + case appJetpack = "app_jetpack" + case appPocketcasts = "app_pocketcasts" + case appSimplenote = "app_simplenote" + case appTumblr = "app_tumblr" + case appWoo = "app_woo" + case appWordpress = "app_wordpress" + } + + public static let buttonPropertyKey = "button" + + public var name: String { + switch self { + case .screenShown: + return "about_screen_shown" + case .screenDismissed: + return "about_screen_dismissed" + case .buttonPressed: + return "about_screen_button_tapped" + } + } + + public var properties: [String: String] { + switch self { + case .screenShown: + return [:] + case .screenDismissed: + return [:] + case .buttonPressed(let button): + return [UnifiedAboutEvent.buttonPropertyKey: button.rawValue] + } + } +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift deleted file mode 100644 index 2d48af2c1b46..000000000000 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutTracker.swift +++ /dev/null @@ -1,70 +0,0 @@ -import Foundation - -protocol UnifiedAboutTrackerEvent { - var name: String { get } - var properties: [String: String] { get } -} - -/// Analytics tracker for the unified about flows. -/// -public class UnifiedAboutTracker { - typealias TrackCallback = (_ eventName: String, _ properties: [String: String]) -> Void - - /// The tracking callback. - /// - private let trackCallback: TrackCallback - - // MARK: - - - init(trackCallback: @escaping TrackCallback) { - self.trackCallback = trackCallback - } - - // MARK: - Tracking - - func track(_ event: UnifiedAboutTrackerEvent) { - trackCallback(event.name, event.properties) - } - - // MARK: - Supported Events - - public struct ScreenShownEvent: UnifiedAboutTrackerEvent { - let name = "about_screen_shown" - let properties = [String: String]() - } - - public struct ScreenDismissedEvent: UnifiedAboutTrackerEvent { - let name = "about_screen_dismissed" - let properties = [String: String]() - } - - public struct ButtonPressedEvent: UnifiedAboutTrackerEvent { - enum Button: String, CaseIterable { - case dismiss - case rateUs = "rate_us" - case share - case twitter - case legal - case automatticFamily = "automattic_family" - case workWithUs = "work_with_us" - - // App buttons - case appDayone = "app_dayone" - case appJetpack = "app_jetpack" - case appPocketcasts = "app_pocketcasts" - case appSimplenote = "app_simplenote" - case appTumblr = "app_tumblr" - case appWoo = "app_woo" - case appWordpress = "app_wordpress" - } - - private static let buttonPropertyKey = "button" - - let name = "about_screen_button_tapped" - let button: Button - - var properties: [String: String] { - [ButtonPressedEvent.buttonPropertyKey: button.rawValue] - } - } -} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 7bf68c5b4828..7e2befe0838f 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -6,12 +6,14 @@ struct AboutItem { let title: String let subtitle: String? let cellStyle: AboutItemCellStyle + let eventButton: UnifiedAboutEvent.Button let action: (() -> Void)? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, action: (() -> Void)? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, eventButton: UnifiedAboutEvent.Button, action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle + self.eventButton = eventButton self.action = action } @@ -43,25 +45,26 @@ struct AboutItem { class UnifiedAboutViewController: UIViewController { static let sections: [[AboutItem]] = [ [ - AboutItem(title: "Rate Us"), - AboutItem(title: "Share with Friends"), - AboutItem(title: "Twitter", cellStyle: .value1) + AboutItem(title: "Rate Us", eventButton: .rateUs), + AboutItem(title: "Share with Friends", eventButton: .share), + AboutItem(title: "Twitter", cellStyle: .value1, eventButton: .twitter) ], [ - AboutItem(title: "Legal and More") + AboutItem(title: "Legal and More", eventButton: .legal) ], [ - AboutItem(title: "Automattic Family"), - AboutItem(title: "", cellStyle: .appLogos) + AboutItem(title: "Automattic Family", eventButton: .automatticFamily), + AboutItem(title: "", cellStyle: .appLogos, eventButton: .automatticFamily) ], [ - AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle) + AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle, eventButton: .workWithUs) ] ] // MARK: - Analytics - private let tracker = UnifiedAboutTracker() { eventName, properties in + typealias TrackEvent = ((UnifiedAboutEvent) -> Void) + public let trackEvent: TrackEvent = { event in // Part of this customization should happen in the App, so that we don't need to add analytics // dependencies into unified-about (and it remains tracker agnostic). // @@ -70,7 +73,7 @@ class UnifiedAboutViewController: UIViewController { // // I'm leaving these customizations here for now until we decide the concrete solution we want // - let event = AnalyticsEvent(name: eventName, properties: properties) + let event = AnalyticsEvent(name: event.name, properties: event.properties) WPAnalytics.track(event) } @@ -128,6 +131,24 @@ class UnifiedAboutViewController: UIViewController { tableView.reloadData() } + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + if isBeingPresented { + trackEvent(.screenShown) + //tracker.track(UnifiedAboutScreenShownEvent()) + } + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + if isBeingDismissed { + trackEvent(.screenDismissed) + //tracker.track(UnifiedAboutScreenDismissedEvent()) + } + } + // MARK: - Constants enum Metrics { @@ -171,6 +192,9 @@ extension UnifiedAboutViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let section = Self.sections[indexPath.section] let row = section[indexPath.row] + + trackEvent(.buttonPressed(button: row.eventButton)) + //tracker.track(UnifiedAboutButtonPressedEvent(button: row.eventButton)) row.action?() } } diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index c4f1f7a4c7a0..c0803b6267c0 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2511,7 +2511,7 @@ F1450CF92437EEBB00A28BFE /* MediaRequestAuthenticatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1450CF82437EEBB00A28BFE /* MediaRequestAuthenticatorTests.swift */; }; F1482CE02575BDA4007E4DD6 /* SitesDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1482CDF2575BDA4007E4DD6 /* SitesDataProvider.swift */; }; F151EC832665271200AEA89E /* BloggingRemindersSchedulerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F151EC822665271200AEA89E /* BloggingRemindersSchedulerTests.swift */; }; - F1521A022733F0690041DEC7 /* UnifiedAboutTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */; }; + F1521A022733F0690041DEC7 /* UnifiedAboutEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1521A012733F0690041DEC7 /* UnifiedAboutEventTests.swift */; }; F15272FD243B27BC00C8DC7A /* AbstractPost+Local.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15272FC243B27BC00C8DC7A /* AbstractPost+Local.swift */; }; F15272FF243B28B700C8DC7A /* RequestAuthenticator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15272FE243B28B600C8DC7A /* RequestAuthenticator.swift */; }; F1527301243B290E00C8DC7A /* AbstractPost+Autosave.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1527300243B290D00C8DC7A /* AbstractPost+Autosave.swift */; }; @@ -2548,8 +2548,8 @@ F198FF5D256D4877001266EB /* HomeWidgetCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA53E9B256571D800F4D9A2 /* HomeWidgetCache.swift */; }; F1A38F212678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; F1A38F222678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; - F1A75B9B2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */; }; - F1A75B9C2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */; }; + F1A75B9B2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */; }; + F1A75B9C2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */; }; F1ACDF6B256D6C120005AE9B /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; F1ACDF7C256D6C290005AE9B /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; F1ADCAF7241FEF0C00F150D2 /* AtomicAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */; }; @@ -7367,7 +7367,7 @@ F14B5F75208E64F900439554 /* Version.internal.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.internal.xcconfig; sourceTree = ""; }; F14E844C2317252200D0C63E /* WordPress 90.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 90.xcdatamodel"; sourceTree = ""; }; F151EC822665271200AEA89E /* BloggingRemindersSchedulerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersSchedulerTests.swift; sourceTree = ""; }; - F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedAboutTrackerTests.swift; sourceTree = ""; }; + F1521A012733F0690041DEC7 /* UnifiedAboutEventTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedAboutEventTests.swift; sourceTree = ""; }; F15272FC243B27BC00C8DC7A /* AbstractPost+Local.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Local.swift"; sourceTree = ""; }; F15272FE243B28B600C8DC7A /* RequestAuthenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestAuthenticator.swift; sourceTree = ""; }; F1527300243B290D00C8DC7A /* AbstractPost+Autosave.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Autosave.swift"; sourceTree = ""; }; @@ -7389,7 +7389,7 @@ F198FF7F256D498A001266EB /* WordPressIntentsRelease-Internal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Internal.entitlements"; sourceTree = ""; }; F198FFB1256D4AB2001266EB /* WordPressIntentsRelease-Alpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Alpha.entitlements"; sourceTree = ""; }; F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersFlow.swift; sourceTree = ""; }; - F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnifiedAboutTracker.swift; sourceTree = ""; }; + F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnifiedAboutEvent.swift; sourceTree = ""; }; F1ACDF4A256D6B2B0005AE9B /* WordPressIntents-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressIntents-Bridging-Header.h"; sourceTree = ""; }; F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomicAuthenticationService.swift; sourceTree = ""; }; F1B1E7A224098FA100549E2A /* BlogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogTests.swift; sourceTree = ""; }; @@ -9033,7 +9033,7 @@ FFC6ADD21B56F295002F3C84 /* AboutViewController.swift */, FFC6ADD31B56F295002F3C84 /* AboutViewController.xib */, 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */, - F1A75B9A2732EF3700784A70 /* UnifiedAboutTracker.swift */, + F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */, ); path = About; sourceTree = ""; @@ -14128,7 +14128,7 @@ F1521A002733F0460041DEC7 /* About */ = { isa = PBXGroup; children = ( - F1521A012733F0690041DEC7 /* UnifiedAboutTrackerTests.swift */, + F1521A012733F0690041DEC7 /* UnifiedAboutEventTests.swift */, ); path = About; sourceTree = ""; @@ -18113,7 +18113,7 @@ E1F47D4D1FE0290C00C1D44E /* PluginListCell.swift in Sources */, 3F5C865D25C9EBEF00BABE64 /* HomeWidgetAllTimeData.swift in Sources */, D829C33B21B12EFE00B09F12 /* UIView+Borders.swift in Sources */, - F1A75B9B2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */, + F1A75B9B2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */, 5D42A3E0175E7452005CFF05 /* BasePost.m in Sources */, 17F7C24922770B68002E5C2E /* main.swift in Sources */, 9A4E939F2268D9B400E14823 /* UIViewController+NoResults.swift in Sources */, @@ -18933,7 +18933,7 @@ 4054F4592214E6FE00D261AB /* TagsCategoriesStatsRecordValueTests.swift in Sources */, C8567496243F3D37001A995E /* TenorResultsPageTests.swift in Sources */, B0A6DEBF2626335F00B5B8EF /* AztecPostViewController+MenuTests.swift in Sources */, - F1521A022733F0690041DEC7 /* UnifiedAboutTrackerTests.swift in Sources */, + F1521A022733F0690041DEC7 /* UnifiedAboutEventTests.swift in Sources */, 4054F43E221357B600D261AB /* TopCommentedPostStatsRecordValueTests.swift in Sources */, 93B853231B4416A30064FE72 /* WPAnalyticsTrackerAutomatticTracksTests.m in Sources */, D848CC0720FF2BE200A9038F /* NotificationContentRangeFactoryTests.swift in Sources */, @@ -19448,7 +19448,7 @@ FABB21A92602FC2C00C8785C /* HomeWidgetData.swift in Sources */, FABB21AA2602FC2C00C8785C /* WPStyleGuide+Activity.swift in Sources */, FABB21AB2602FC2C00C8785C /* AllTimeWidgetStats.swift in Sources */, - F1A75B9C2732EF3700784A70 /* UnifiedAboutTracker.swift in Sources */, + F1A75B9C2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */, FABB21AC2602FC2C00C8785C /* GutenbergFilesAppMediaSource.swift in Sources */, FABB21AD2602FC2C00C8785C /* NoteBlockTextTableViewCell.swift in Sources */, FABB21AE2602FC2C00C8785C /* NotificationSettingStreamsViewController.swift in Sources */, diff --git a/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift b/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutEventTests.swift similarity index 57% rename from WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift rename to WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutEventTests.swift index 66bb0e6dcbc5..4b509e630207 100644 --- a/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutTrackerTests.swift +++ b/WordPress/WordPressTest/Me/App Settings/About/UnifiedAboutEventTests.swift @@ -1,7 +1,7 @@ import Foundation @testable import WordPress -fileprivate extension UnifiedAboutTracker.ButtonPressedEvent.Button { +fileprivate extension UnifiedAboutEvent.Button { /// This method is useful to prevent the button names from being changed by mistake in our sources. /// It's also useful because if cases are added or removed, the tests wont build until they're added here, /// which helps us guarantee 100% testing coverage for this type of event. @@ -40,33 +40,27 @@ fileprivate extension UnifiedAboutTracker.ButtonPressedEvent.Button { } } -class UnifiedAboutTrackerTests: XCTestCase { +class UnifiedAboutEventTests: XCTestCase { func testTrackingScreenShown() { - let tracker = UnifiedAboutTracker() { (eventName, properties) in - XCTAssertEqual(eventName, "about_screen_shown") - XCTAssert(properties.isEmpty) - } + let event: UnifiedAboutEvent = .screenShown - tracker.track(UnifiedAboutTracker.ScreenShownEvent()) + XCTAssertEqual(event.name, "about_screen_shown") + XCTAssert(event.properties.isEmpty) } func testTrackingScreenDismissed() { - let tracker = UnifiedAboutTracker() { (eventName, properties) in - XCTAssertEqual(eventName, "about_screen_dismissed") - XCTAssert(properties.isEmpty) - } + let event: UnifiedAboutEvent = .screenDismissed - tracker.track(UnifiedAboutTracker.ScreenDismissedEvent()) + XCTAssertEqual(event.name, "about_screen_dismissed") + XCTAssert(event.properties.isEmpty) } func testTrackingButtonPressed() { - for button in UnifiedAboutTracker.ButtonPressedEvent.Button.allCases { - let tracker = UnifiedAboutTracker() { (eventName, properties) in - XCTAssertEqual(eventName, "about_screen_button_tapped") - XCTAssertEqual(properties, ["button": button.expectedButtonName()]) - } + for button in UnifiedAboutEvent.Button.allCases { + let event: UnifiedAboutEvent = .buttonPressed(button: button) - tracker.track(UnifiedAboutTracker.ButtonPressedEvent(button: button)) + XCTAssertEqual(event.name, "about_screen_button_tapped") + XCTAssertEqual(event.properties, ["button": button.expectedButtonName()]) } } } From 950b1056a10b051d0b9dcc495af100474a25bd76 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 4 Nov 2021 14:54:49 +0100 Subject: [PATCH 003/371] Removes commented code. Improves tracking. --- .../About/UnifiedAboutViewController.swift | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 7e2befe0838f..41df31def69a 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -6,10 +6,10 @@ struct AboutItem { let title: String let subtitle: String? let cellStyle: AboutItemCellStyle - let eventButton: UnifiedAboutEvent.Button + let eventButton: UnifiedAboutEvent.Button? let action: (() -> Void)? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, eventButton: UnifiedAboutEvent.Button, action: (() -> Void)? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, eventButton: UnifiedAboutEvent.Button?, action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle @@ -54,7 +54,7 @@ class UnifiedAboutViewController: UIViewController { ], [ AboutItem(title: "Automattic Family", eventButton: .automatticFamily), - AboutItem(title: "", cellStyle: .appLogos, eventButton: .automatticFamily) + AboutItem(title: "", cellStyle: .appLogos, eventButton: nil) ], [ AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle, eventButton: .workWithUs) @@ -136,7 +136,6 @@ class UnifiedAboutViewController: UIViewController { if isBeingPresented { trackEvent(.screenShown) - //tracker.track(UnifiedAboutScreenShownEvent()) } } @@ -145,7 +144,6 @@ class UnifiedAboutViewController: UIViewController { if isBeingDismissed { trackEvent(.screenDismissed) - //tracker.track(UnifiedAboutScreenDismissedEvent()) } } @@ -193,8 +191,10 @@ extension UnifiedAboutViewController: UITableViewDelegate { let section = Self.sections[indexPath.section] let row = section[indexPath.row] - trackEvent(.buttonPressed(button: row.eventButton)) - //tracker.track(UnifiedAboutButtonPressedEvent(button: row.eventButton)) + if let eventButton = row.eventButton { + trackEvent(.buttonPressed(button: eventButton)) + } + row.action?() } } From bf268219dc663ea41b79c186491fbb81b450e589 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 5 Nov 2021 15:06:54 +0000 Subject: [PATCH 004/371] Unified About: Allow customizing row accessories and separators --- .../About/UnifiedAboutViewController.swift | 40 +++++++++++-------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index ca1a5419608e..16b741386327 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -6,12 +6,16 @@ struct AboutItem { let title: String let subtitle: String? let cellStyle: AboutItemCellStyle + let accessoryType: UITableViewCell.AccessoryType + let hidesSeparator: Bool let action: (() -> Void)? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, action: (() -> Void)? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle + self.accessoryType = accessoryType + self.hidesSeparator = hidesSeparator self.action = action } @@ -37,15 +41,6 @@ struct AboutItem { } } - var cellAccessoryType: UITableViewCell.AccessoryType { - switch cellStyle { - case .appLogos: - return .none - default: - return .disclosureIndicator - } - } - var cellSelectionStyle: UITableViewCell.SelectionStyle { switch cellStyle { case .appLogos: @@ -70,16 +65,16 @@ struct AboutItem { class UnifiedAboutViewController: UIViewController { static let sections: [[AboutItem]] = [ [ - AboutItem(title: "Rate Us"), - AboutItem(title: "Share with Friends"), - AboutItem(title: "Twitter", cellStyle: .value1) + AboutItem(title: "Rate Us", accessoryType: .none), + AboutItem(title: "Share with Friends", accessoryType: .none), + AboutItem(title: "Twitter", subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none) ], [ AboutItem(title: "Legal and More") ], [ - AboutItem(title: "Automattic Family"), - AboutItem(title: "", cellStyle: .appLogos) + AboutItem(title: "Automattic Family", hidesSeparator: true), + AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], [ AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle) @@ -91,6 +86,10 @@ class UnifiedAboutViewController: UIViewController { private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.translatesAutoresizingMaskIntoConstraints = false + + // Occasionally our hidden separator insets can cause the horizontal + // scrollbar to appear on rotation + tableView.showsHorizontalScrollIndicator = false tableView.dataSource = self tableView.delegate = self @@ -139,6 +138,7 @@ class UnifiedAboutViewController: UIViewController { tableView.reloadData() } + // MARK: - Constants enum Metrics { @@ -170,12 +170,20 @@ extension UnifiedAboutViewController: UITableViewDataSource { cell.textLabel?.text = row.title cell.detailTextLabel?.text = row.subtitle - cell.accessoryType = row.cellAccessoryType + cell.detailTextLabel?.textColor = .secondaryLabel + cell.accessoryType = row.accessoryType cell.selectionStyle = row.cellSelectionStyle return cell } + func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + let section = Self.sections[indexPath.section] + let row = section[indexPath.row] + + cell.separatorInset = row.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + } + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { let section = Self.sections[indexPath.section] let row = section[indexPath.row] From 718a318c029d04d151a9470ffb1e265608a90a02 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 5 Nov 2021 16:25:12 +0000 Subject: [PATCH 005/371] Hound fixes --- .../Me/App Settings/About/UnifiedAboutViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 9a49bb845344..d4272013e507 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -108,7 +108,7 @@ class UnifiedAboutViewController: UIViewController { private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.translatesAutoresizingMaskIntoConstraints = false - + // Occasionally our hidden separator insets can cause the horizontal // scrollbar to appear on rotation tableView.showsHorizontalScrollIndicator = false From ba4c69e6328a0ec3584e2125c225ed687b38de8d Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 12 Nov 2021 14:51:14 +0000 Subject: [PATCH 006/371] Unified About: Reintroduce device motion --- .bundle/config | 2 ++ .../App Settings/About/AutomatticAppLogosCell.swift | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.bundle/config b/.bundle/config index da970cb8c12e..395b3edaa503 100644 --- a/.bundle/config +++ b/.bundle/config @@ -1,3 +1,5 @@ --- BUNDLE_PATH: "vendor/bundle" +BUNDLE_RETRY: "3" +BUNDLE_JOBS: "3" BUNDLE_WITHOUT: "screenshots" diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index 675ad1155e44..e1ca34cfcc8b 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -1,5 +1,6 @@ import UIKit import SpriteKit +import CoreMotion /// A table view cell that contains a SpriteKit game scene which shows logos /// of the various apps from Automattic. @@ -82,6 +83,8 @@ private class AppLogosScene: SKScene { // Stores a reference to each of the balls in the scene private var balls: [SKNode] = [] + private let motionManager = CMMotionManager() + private var traitCollection: UITraitCollection? @@ -89,7 +92,8 @@ private class AppLogosScene: SKScene { override func didMove(to view: SKView) { super.didMove(to: view) - + + motionManager.startAccelerometerUpdates() generateScene() } @@ -228,4 +232,10 @@ private class AppLogosScene: SKScene { static let appLogoPrefix = "ua-logo-" static let physicsRestitution: CGFloat = 0.5 } + + override func update(_ currentTime: TimeInterval) { + if let accelerometerData = motionManager.accelerometerData { + physicsWorld.gravity = CGVector(dx: accelerometerData.acceleration.x * 9.8, dy: accelerometerData.acceleration.y * 9.8) + } + } } From 6ea26778471937dfac19d1d8f31767b1f2f9b43b Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 28 Sep 2021 12:59:37 +1000 Subject: [PATCH 007/371] Convert `LoginEmailScreen` to be a `ScreenObject` subclass --- .../Screens/Login/LoginEmailScreen.swift | 39 +++++++++---------- .../Login/WelcomeScreenLoginComponent.swift | 4 +- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginEmailScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginEmailScreen.swift index e95c764d7068..824784a5c021 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginEmailScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginEmailScreen.swift @@ -1,25 +1,26 @@ +import ScreenObject import XCTest // TODO: remove when unifiedAuth is permanent. -private struct ElementStringIDs { - static let emailTextField = "Login Email Address" - static let nextButton = "Login Email Next Button" - static let siteAddressButton = "Self Hosted Login Button" -} +public class LoginEmailScreen: ScreenObject { + + let emailTextFieldGetter: (XCUIApplication) -> XCUIElement = { + $0.textFields["Login Email Address"] + } -public class LoginEmailScreen: BaseScreen { - let emailTextField: XCUIElement - let nextButton: XCUIElement - let siteAddressButton: XCUIElement + let nextButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["Login Email Next Button"] + } - init() { - let app = XCUIApplication() - emailTextField = app.textFields[ElementStringIDs.emailTextField] - nextButton = app.buttons[ElementStringIDs.nextButton] - siteAddressButton = app.buttons[ElementStringIDs.siteAddressButton] + var emailTextField: XCUIElement { emailTextFieldGetter(app) } + var nextButton: XCUIElement { nextButtonGetter(app) } - super.init(element: emailTextField) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [emailTextFieldGetter, nextButtonGetter], + app: app + ) } public func proceedWith(email: String) -> LinkOrPasswordScreen { @@ -31,18 +32,16 @@ public class LoginEmailScreen: BaseScreen { } func goToSiteAddressLogin() -> LoginSiteAddressScreen { - siteAddressButton.tap() + app.buttons["Self Hosted Login Button"].tap() return LoginSiteAddressScreen() } static func isLoaded() -> Bool { - let expectedElement = XCUIApplication().textFields[ElementStringIDs.emailTextField] - return expectedElement.exists && expectedElement.isHittable + (try? LoginEmailScreen().isLoaded) ?? false } static func isEmailEntered() -> Bool { - let emailTextField = XCUIApplication().textFields[ElementStringIDs.emailTextField] - return emailTextField.value != nil + (try? LoginEmailScreen().emailTextField.value != nil) ?? false } } diff --git a/WordPress/UITestsFoundation/Screens/Login/WelcomeScreenLoginComponent.swift b/WordPress/UITestsFoundation/Screens/Login/WelcomeScreenLoginComponent.swift index ab22037ef88b..edec43edaa09 100644 --- a/WordPress/UITestsFoundation/Screens/Login/WelcomeScreenLoginComponent.swift +++ b/WordPress/UITestsFoundation/Screens/Login/WelcomeScreenLoginComponent.swift @@ -18,10 +18,10 @@ public class WelcomeScreenLoginComponent: BaseScreen { super.init(element: emailLoginButton) } - public func selectEmailLogin() -> LoginEmailScreen { + public func selectEmailLogin() throws -> LoginEmailScreen { emailLoginButton.tap() - return LoginEmailScreen() + return try LoginEmailScreen() } func goToSiteAddressLogin() -> LoginSiteAddressScreen { From 2f064814aad3f4cd94af9df1ba4fe86a71171825 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 28 Sep 2021 13:07:32 +1000 Subject: [PATCH 008/371] Convert `LoginUsernamePasswordScreen` to be a `ScreenObject` subclass --- .../Login/LoginSiteAddressScreen.swift | 4 +- .../Login/LoginUsernamePasswordScreen.swift | 40 ++++++++++++++----- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginSiteAddressScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginSiteAddressScreen.swift index 33e0b51a0b67..9a6823b345c7 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginSiteAddressScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginSiteAddressScreen.swift @@ -25,12 +25,12 @@ public class LoginSiteAddressScreen: BaseScreen { super.init(element: siteAddressTextField) } - public func proceedWith(siteUrl: String) -> LoginUsernamePasswordScreen { + public func proceedWith(siteUrl: String) throws -> LoginUsernamePasswordScreen { siteAddressTextField.tap() siteAddressTextField.typeText(siteUrl) nextButton.tap() - return LoginUsernamePasswordScreen() + return try LoginUsernamePasswordScreen() } public func proceedWithWP(siteUrl: String) throws -> GetStartedScreen { diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift index 1f6b0e5221f9..10fbd820f6a7 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift @@ -1,3 +1,4 @@ +import ScreenObject import XCTest import XCUITestHelpers @@ -16,18 +17,35 @@ private struct ElementStringIDs { static let nextButton = "Continue Button" } -public class LoginUsernamePasswordScreen: BaseScreen { - let usernameTextField: XCUIElement - let passwordTextField: XCUIElement - let nextButton: XCUIElement +public class LoginUsernamePasswordScreen: ScreenObject { - init() { - let app = XCUIApplication() - usernameTextField = app.textFields[ElementStringIDs.usernameTextField] - passwordTextField = app.secureTextFields[ElementStringIDs.passwordTextField] - nextButton = app.buttons[ElementStringIDs.nextButton] + let usernameTextFieldGetter: (XCUIApplication) -> XCUIElement = { + $0.textFields[ElementStringIDs.usernameTextField] + } + + let passwordTextFieldGetter: (XCUIApplication) -> XCUIElement = { + $0.secureTextFields[ElementStringIDs.passwordTextField] + } + + let nextButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons[ElementStringIDs.nextButton] + } + + var usernameTextField: XCUIElement { usernameTextFieldGetter(app) } + var passwordTextField: XCUIElement { passwordTextFieldGetter(app) } + var nextButton: XCUIElement { nextButtonGetter(app) } - super.init(element: passwordTextField) + init(app: XCUIApplication = XCUIApplication()) throws { + // Notice that we don't use the "next button" getter because, at the time the screen loads, + // that element is disabled. `ScreenObject` uses `isEnabled == true` on the elements we + // pass at `init`. + try super.init( + expectedElementGetters: [ + usernameTextFieldGetter, + passwordTextFieldGetter + ], + app: app + ) } public func proceedWith(username: String, password: String) -> LoginEpilogueScreen { @@ -47,6 +65,6 @@ public class LoginUsernamePasswordScreen: BaseScreen { } public static func isLoaded() -> Bool { - return XCUIApplication().buttons[ElementStringIDs.nextButton].exists + (try? LoginUsernamePasswordScreen().isLoaded) ?? false } } From 66a49ff6f14fccf6fea9162c17eb76e8dd586dac Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 30 Sep 2021 16:56:18 +1000 Subject: [PATCH 009/371] Convert `ReaderScreen` to be a `ScreenObject` subclass --- .../Screens/ReaderScreen.swift | 27 +++++++++++-------- .../Screens/TabNavComponent.swift | 4 +-- .../WordPressScreenshotGeneration.swift | 2 +- .../Tests/MainNavigationTests.swift | 4 +-- 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/ReaderScreen.swift b/WordPress/UITestsFoundation/Screens/ReaderScreen.swift index 3fffb038d0c0..fa833ce56726 100644 --- a/WordPress/UITestsFoundation/Screens/ReaderScreen.swift +++ b/WordPress/UITestsFoundation/Screens/ReaderScreen.swift @@ -1,22 +1,27 @@ +import ScreenObject import XCTest -private struct ElementStringIDs { - static let readerTable = "Reader" - static let discoverButton = "Discover" -} +public class ReaderScreen: ScreenObject { -public class ReaderScreen: BaseScreen { - let discoverButton: XCUIElement + private let discoverButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["Discover"] + } - init() { - let readerTable = XCUIApplication().tables[ElementStringIDs.readerTable] - discoverButton = XCUIApplication().buttons[ElementStringIDs.discoverButton] + var discoverButton: XCUIElement { discoverButtonGetter(app) } - super.init(element: readerTable) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [ + // swiftlint:skip:next opening_brace + { $0.tables["Reader"] }, + discoverButtonGetter + ], + app: app + ) } public static func isLoaded() -> Bool { - return XCUIApplication().tables[ElementStringIDs.readerTable].exists + (try? ReaderScreen().isLoaded) ?? false } public func openDiscover() -> ReaderScreen { diff --git a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift index 7f3551240072..132abac75910 100644 --- a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift +++ b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift @@ -63,9 +63,9 @@ public class TabNavComponent: ScreenObject { return BlockEditorScreen() } - public func gotoReaderScreen() -> ReaderScreen { + public func goToReaderScreen() throws -> ReaderScreen { readerTabButton.tap() - return ReaderScreen() + return try ReaderScreen() } public func gotoNotificationsScreen() -> NotificationsScreen { diff --git a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift index 28dcb31c17b4..6d2b9203f38b 100644 --- a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift +++ b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift @@ -95,7 +95,7 @@ class WordPressScreenshotGeneration: XCTestCase { // Get Discover screenshot // Currently, the view includes the "You Might Like" section try TabNavComponent() - .gotoReaderScreen() + .goToReaderScreen() .openDiscover() .thenTakeScreenshot(2, named: "Discover") diff --git a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift index 07a54cac8874..f4418102c42a 100644 --- a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift +++ b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift @@ -21,8 +21,8 @@ class MainNavigationTests: XCTestCase { func testTabBarNavigation() throws { XCTAssert(MySiteScreen.isLoaded(), "MySitesScreen screen isn't loaded.") - _ = mySiteScreen - .tabBar.gotoReaderScreen() + _ = try mySiteScreen + .tabBar.goToReaderScreen() XCTAssert(ReaderScreen.isLoaded(), "Reader screen isn't loaded.") From a6acf80dba4bbfbc8cd4467754210e748d7dae5e Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 15 Oct 2021 15:31:43 +1100 Subject: [PATCH 010/371] Handle notifications alert in Reader screen scenario during UI tests --- WordPress/UITestsFoundation/FancyAlertComponent.swift | 2 +- WordPress/WordPressUITests/Tests/MainNavigationTests.swift | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/FancyAlertComponent.swift b/WordPress/UITestsFoundation/FancyAlertComponent.swift index 1c38d14f2f0e..9b618d2766ea 100644 --- a/WordPress/UITestsFoundation/FancyAlertComponent.swift +++ b/WordPress/UITestsFoundation/FancyAlertComponent.swift @@ -35,7 +35,7 @@ public class FancyAlertComponent: ScreenObject { defaultAlertButton.tap() } - func cancelAlert() { + public func cancelAlert() { cancelAlertButton.tap() } diff --git a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift index f4418102c42a..e307e437d576 100644 --- a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift +++ b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift @@ -26,6 +26,11 @@ class MainNavigationTests: XCTestCase { XCTAssert(ReaderScreen.isLoaded(), "Reader screen isn't loaded.") + // We may get a notifications fancy alert when loading the reader for the first time + if let alert = try? FancyAlertComponent() { + alert.cancelAlert() + } + _ = try mySiteScreen .tabBar.gotoNotificationsScreen() .dismissNotificationAlertIfNeeded() From cdd1e92dc38ce0d451459a99ef793c46daf9247c Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 30 Sep 2021 17:15:00 +1000 Subject: [PATCH 011/371] Extract logic to scroll an element in dedicated extension This is so that `BaseScreen` and `ScreenObject` can share it. --- WordPress/UITestsFoundation/BaseScreen.swift | 18 +-------------- .../XCUIElement+Scroll.swift | 23 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 4 ++++ 3 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 WordPress/UITestsFoundation/XCUIElement+Scroll.swift diff --git a/WordPress/UITestsFoundation/BaseScreen.swift b/WordPress/UITestsFoundation/BaseScreen.swift index 5abea3d9c376..bfd7a191c4cd 100644 --- a/WordPress/UITestsFoundation/BaseScreen.swift +++ b/WordPress/UITestsFoundation/BaseScreen.swift @@ -69,24 +69,8 @@ extension BaseScreen { } } - /// Scroll an element into view within another element. - /// scrollView can be a UIScrollView, or anything that subclasses it like UITableView - /// - /// TODO: The implementation of this could use work: - /// - What happens if the element is above the current scroll view position? - /// - What happens if it's a really long scroll view? public func scrollElementIntoView(element: XCUIElement, within scrollView: XCUIElement, threshold: Int = 1000) { - - var iteration = 0 - - while !element.isFullyVisibleOnScreen && iteration < threshold { - scrollView.scroll(byDeltaX: 0, deltaY: 100) - iteration += 1 - } - - if !element.isFullyVisibleOnScreen { - XCTFail("Unable to scroll element into view") - } + element.scrollIntoView(within: scrollView, threshold: threshold) } @discardableResult diff --git a/WordPress/UITestsFoundation/XCUIElement+Scroll.swift b/WordPress/UITestsFoundation/XCUIElement+Scroll.swift new file mode 100644 index 000000000000..c5215ae81afa --- /dev/null +++ b/WordPress/UITestsFoundation/XCUIElement+Scroll.swift @@ -0,0 +1,23 @@ +import XCTest + +extension XCUIElement { + + /// Scroll an element into view within another element. + /// scrollView can be a UIScrollView, or anything that subclasses it like UITableView + /// + /// TODO: The implementation of this could use work: + /// - What happens if the element is above the current scroll view position? + /// - What happens if it's a really long scroll view? + public func scrollIntoView(within scrollView: XCUIElement, threshold: Int = 1000) { + var iteration = 0 + + while !isFullyVisibleOnScreen && iteration < threshold { + scrollView.scroll(byDeltaX: 0, deltaY: 100) + iteration += 1 + } + + if !isFullyVisibleOnScreen { + XCTFail("Unable to scroll element into view") + } + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index adf0222af9ed..c46a3a680c26 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -608,6 +608,7 @@ 3FB1929626C79EC6000F5AA3 /* Date+TimeStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FB1929426C79EC6000F5AA3 /* Date+TimeStrings.swift */; }; 3FB34ACB25672A90001A74A6 /* HomeWidgetTodayData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FB34ACA25672A90001A74A6 /* HomeWidgetTodayData.swift */; }; 3FB34ADA25672AA5001A74A6 /* HomeWidgetTodayData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FB34ACA25672A90001A74A6 /* HomeWidgetTodayData.swift */; }; + 3FB5C2B327059AC8007D0ECE /* XCUIElement+Scroll.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FB5C2B227059AC8007D0ECE /* XCUIElement+Scroll.swift */; }; 3FBF21B7267AA17A0098335F /* BloggingRemindersAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FBF21B6267AA17A0098335F /* BloggingRemindersAnimator.swift */; }; 3FBF21B8267AA17A0098335F /* BloggingRemindersAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FBF21B6267AA17A0098335F /* BloggingRemindersAnimator.swift */; }; 3FC2C33D26C4CF0A00C6D98F /* XCUITestHelpers in Frameworks */ = {isa = PBXBuildFile; productRef = 3FC2C33C26C4CF0A00C6D98F /* XCUITestHelpers */; }; @@ -5216,6 +5217,7 @@ 3FB1928F26C6109F000F5AA3 /* TimeSelectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeSelectionView.swift; sourceTree = ""; }; 3FB1929426C79EC6000F5AA3 /* Date+TimeStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Date+TimeStrings.swift"; sourceTree = ""; }; 3FB34ACA25672A90001A74A6 /* HomeWidgetTodayData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeWidgetTodayData.swift; sourceTree = ""; }; + 3FB5C2B227059AC8007D0ECE /* XCUIElement+Scroll.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCUIElement+Scroll.swift"; sourceTree = ""; }; 3FBF21B6267AA17A0098335F /* BloggingRemindersAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersAnimator.swift; sourceTree = ""; }; 3FC7F89D2612341900FD8728 /* UnifiedPrologueStatsContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedPrologueStatsContentView.swift; sourceTree = ""; }; 3FC8D19A244F43B500495820 /* ReaderTabItemsStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderTabItemsStore.swift; sourceTree = ""; }; @@ -9465,6 +9467,7 @@ 3FE39A4326F8391D006E2B3A /* Screens */, 3FA640592670CCD40064401E /* UITestsFoundation.h */, 3F762E9426784B540088CD45 /* WireMock.swift */, + 3FB5C2B227059AC8007D0ECE /* XCUIElement+Scroll.swift */, 3F762E9A26784D2A0088CD45 /* XCUIElement+Utils.swift */, 3F762E9826784CC90088CD45 /* XCUIElementQuery+Utils.swift */, ); @@ -18527,6 +18530,7 @@ 3FA640642670CED80064401E /* BaseScreen.swift in Sources */, 3F2F856026FAF235000FCDA5 /* NotificationsScreen.swift in Sources */, 3F2F854026FAE9DC000FCDA5 /* BlockEditorScreen.swift in Sources */, + 3FB5C2B327059AC8007D0ECE /* XCUIElement+Scroll.swift in Sources */, 3F2F854726FAED51000FCDA5 /* MediaPickerAlbumListScreen.swift in Sources */, 3FE39A3626F8370D006E2B3A /* MySitesScreen.swift in Sources */, 3F762E9926784CC90088CD45 /* XCUIElementQuery+Utils.swift in Sources */, From 9684ef15add0ec10c988c55e68bf0621448dbfc4 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 30 Sep 2021 17:17:35 +1000 Subject: [PATCH 012/371] Convert `PostsScreen` to be a `ScreenObject` subclass --- .../Screens/MySiteScreen.swift | 4 +-- .../Screens/PostsScreen.swift | 27 +++++++------------ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index ca964cbee4ba..0a7a9d4d8107 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -90,14 +90,14 @@ public class MySiteScreen: BaseScreen { return try JetpackBackupScreen() } - public func gotoPostsScreen() -> PostsScreen { + public func gotoPostsScreen() throws -> PostsScreen { // A hack for iPad, because sometimes tapping "posts" doesn't load it the first time if XCUIDevice.isPad { mediaButton.tap() } postsButton.tap() - return PostsScreen() + return try PostsScreen() } public func gotoMediaScreen() -> MediaScreen { diff --git a/WordPress/UITestsFoundation/Screens/PostsScreen.swift b/WordPress/UITestsFoundation/Screens/PostsScreen.swift index de32a1346533..4d2eac5930c6 100644 --- a/WordPress/UITestsFoundation/Screens/PostsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/PostsScreen.swift @@ -1,13 +1,7 @@ +import ScreenObject import XCTest -private struct ElementStringIDs { - static let draftsButton = "drafts" - static let publishedButton = "published" - - static let autosaveVersionsAlert = "autosave-options-alert" -} - -public class PostsScreen: BaseScreen { +public class PostsScreen: ScreenObject { public enum PostStatus { case published @@ -16,19 +10,18 @@ public class PostsScreen: BaseScreen { private var currentlyFilteredPostStatus: PostStatus = .published - init() { - super.init(element: XCUIApplication().tables["PostsTable"]) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [ { $0.tables["PostsTable"] } ], app: app) showOnly(.published) } @discardableResult public func showOnly(_ status: PostStatus) -> PostsScreen { - switch status { - case .published: - XCUIApplication().buttons[ElementStringIDs.publishedButton].tap() - case .drafts: - XCUIApplication().buttons[ElementStringIDs.draftsButton].tap() + case .published: + app.buttons["published"].tap() + case .drafts: + app.buttons["drafts"].tap() } currentlyFilteredPostStatus = status @@ -44,7 +37,7 @@ public class PostsScreen: BaseScreen { let cell = expectedElement.cells[slug] XCTAssert(cell.waitForExistence(timeout: 5)) - scrollElementIntoView(element: cell, within: expectedElement) + cell.scrollIntoView(within: expectedElement) cell.tap() dismissAutosaveDialogIfNeeded() @@ -58,7 +51,7 @@ public class PostsScreen: BaseScreen { /// If there are two versions of a local post, the app will ask which version we want to use when editing. /// We always want to use the local version (which is currently the first option) private func dismissAutosaveDialogIfNeeded() { - let autosaveDialog = XCUIApplication().alerts[ElementStringIDs.autosaveVersionsAlert] + let autosaveDialog = app.alerts["autosave-options-alert"] if autosaveDialog.exists { autosaveDialog.buttons.firstMatch.tap() } From db2a0445763e2c74dabcb87e54f7456748c98ca5 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 13 Oct 2021 14:07:11 +1100 Subject: [PATCH 013/371] Convert `MediaPickerAlbumListScreen` to be a `ScreenObject` subclass --- .../Screens/Editor/BlockEditorScreen.swift | 8 ++++---- .../Screens/Editor/EditorPostSettings.swift | 2 +- .../Media/MediaPickerAlbumListScreen.swift | 20 +++++++++++-------- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 1ec2b788bed9..1e4c34a476b5 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -57,9 +57,9 @@ public class BlockEditorScreen: BaseScreen { /** Adds an image block with latest image from device. */ - public func addImage() -> BlockEditorScreen { + public func addImage() throws -> BlockEditorScreen { addBlock("Image block") - addImageByOrder(id: 0) + try addImageByOrder(id: 0) return self } @@ -126,14 +126,14 @@ public class BlockEditorScreen: BaseScreen { /* Select Image from Camera Roll by its ID. Starts with 0 */ - private func addImageByOrder(id: Int) { + private func addImageByOrder(id: Int) throws { imageDeviceButton.tap() // Allow access to device media app.tap() // trigger the media permissions alert handler // Inject the first picture - MediaPickerAlbumListScreen() + try MediaPickerAlbumListScreen() .selectAlbum(atIndex: 0) .selectImage(atIndex: 0) } diff --git a/WordPress/UITestsFoundation/Screens/Editor/EditorPostSettings.swift b/WordPress/UITestsFoundation/Screens/Editor/EditorPostSettings.swift index d2af02f39aa3..e342e99db834 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/EditorPostSettings.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/EditorPostSettings.swift @@ -53,7 +53,7 @@ public class EditorPostSettings: ScreenObject { public func setFeaturedImage() throws -> EditorPostSettings { featuredImageButton.tap() - MediaPickerAlbumListScreen() + try MediaPickerAlbumListScreen() .selectAlbum(atIndex: 0) // Select media library .selectImage(atIndex: 0) // Select latest uploaded image diff --git a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift index b7ed89e2caee..33191bd0cb18 100644 --- a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift @@ -1,17 +1,21 @@ +import ScreenObject import XCTest -public class MediaPickerAlbumListScreen: BaseScreen { - let albumList: XCUIElement +public class MediaPickerAlbumListScreen: ScreenObject { - public init() { - let app = XCUIApplication() - albumList = app.tables["AlbumTable"] + private let albumListGetter: (XCUIApplication) -> XCUIElement = { + $0.tables["AlbumTable"] + } - super.init(element: albumList) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetter: albumListGetter, + app: app + ) } public func selectAlbum(atIndex index: Int) -> MediaPickerAlbumScreen { - let selectedAlbum = albumList.cells.element(boundBy: index) + let selectedAlbum = albumListGetter(app).cells.element(boundBy: index) XCTAssertTrue(selectedAlbum.waitForExistence(timeout: 5), "Selected album did not load") selectedAlbum.tap() @@ -19,6 +23,6 @@ public class MediaPickerAlbumListScreen: BaseScreen { } public static func isLoaded() -> Bool { - return XCUIApplication().tables["AlbumTable"].exists + (try? MediaPickerAlbumListScreen().isLoaded) ?? false } } From b7a7f329eb28651f045f97eade4304a8574a28d3 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 13 Oct 2021 14:19:27 +1100 Subject: [PATCH 014/371] Convert `MediaPickerAlbumScreen` to be a `ScreenObject` subclass --- .../Screens/Editor/AztecEditorScreen.swift | 4 +-- .../Media/MediaPickerAlbumListScreen.swift | 4 +-- .../Media/MediaPickerAlbumScreen.swift | 26 +++++++++---------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/AztecEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/AztecEditorScreen.swift index 7711f4dc9564..c3bc0f888dd9 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/AztecEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/AztecEditorScreen.swift @@ -209,7 +209,7 @@ public class AztecEditorScreen: BaseScreen { Select Image from Camera Roll by its ID. Starts with 0 Simulator range: 0..4 */ - func addImageByOrder(id: Int) -> AztecEditorScreen { + func addImageByOrder(id: Int) throws -> AztecEditorScreen { tapToolbarButton(button: mediaButton) // Allow access to device media @@ -221,7 +221,7 @@ public class AztecEditorScreen: BaseScreen { } // Inject the first picture - MediaPickerAlbumScreen().selectImage(atIndex: 0) + try MediaPickerAlbumScreen().selectImage(atIndex: 0) insertMediaButton.tap() // Wait for upload to finish diff --git a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift index 33191bd0cb18..6655051e5c3c 100644 --- a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumListScreen.swift @@ -14,12 +14,12 @@ public class MediaPickerAlbumListScreen: ScreenObject { ) } - public func selectAlbum(atIndex index: Int) -> MediaPickerAlbumScreen { + public func selectAlbum(atIndex index: Int) throws -> MediaPickerAlbumScreen { let selectedAlbum = albumListGetter(app).cells.element(boundBy: index) XCTAssertTrue(selectedAlbum.waitForExistence(timeout: 5), "Selected album did not load") selectedAlbum.tap() - return MediaPickerAlbumScreen() + return try MediaPickerAlbumScreen() } public static func isLoaded() -> Bool { diff --git a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumScreen.swift b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumScreen.swift index 731527c89590..0c75bf1ca717 100644 --- a/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Media/MediaPickerAlbumScreen.swift @@ -1,34 +1,32 @@ +import ScreenObject import XCTest -public class MediaPickerAlbumScreen: BaseScreen { - let mediaCollection: XCUIElement - let insertButton: XCUIElement - - public init() { - let app = XCUIApplication() - mediaCollection = app.collectionViews["MediaCollection"] - insertButton = app.buttons["SelectedActionButton"] +public class MediaPickerAlbumScreen: ScreenObject { + let mediaCollectionGetter: (XCUIApplication) -> XCUIElement = { + $0.collectionViews["MediaCollection"] + } - super.init(element: mediaCollection) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [mediaCollectionGetter], app: app) } public func selectImage(atIndex index: Int) { - let selectedImage = mediaCollection.cells.element(boundBy: index) + let selectedImage = mediaCollectionGetter(app).cells.element(boundBy: index) XCTAssertTrue(selectedImage.waitForExistence(timeout: 5), "Selected image did not load") selectedImage.tap() } func insertSelectedImage() { - insertButton.tap() + app.buttons["SelectedActionButton"].tap() } - public static func isLoaded() -> Bool { + public static func isLoaded(app: XCUIApplication = XCUIApplication()) -> Bool { // Check if the media picker is loaded as a component within the editor // and only return true if the media picker is a full screen - if XCUIApplication().navigationBars["Azctec Editor Navigation Bar"].exists { + if app.navigationBars["Azctec Editor Navigation Bar"].exists { return false } - return XCUIApplication().collectionViews["MediaCollection"].exists + return (try? MediaPickerAlbumScreen().isLoaded) ?? false } } From a3a3c03963e3573060841d2c54571e9fb89e3f11 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 13 Oct 2021 14:26:11 +1100 Subject: [PATCH 015/371] Convert `NotificationsScreen` to be a `ScreenObject` subclass --- WordPress/UITestsFoundation/Globals.swift | 16 +++++++++++++++ .../Screens/NotificationsScreen.swift | 20 +++++++++---------- .../Screens/TabNavComponent.swift | 4 ++-- .../WordPressScreenshotGeneration.swift | 2 +- .../Tests/MainNavigationTests.swift | 2 +- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/WordPress/UITestsFoundation/Globals.swift b/WordPress/UITestsFoundation/Globals.swift index 52c4177eaddc..38676543b988 100644 --- a/WordPress/UITestsFoundation/Globals.swift +++ b/WordPress/UITestsFoundation/Globals.swift @@ -36,4 +36,20 @@ extension ScreenObject { safari.scrollViews.element(boundBy: 0).buttons.element(boundBy: 1).tap() } } + + @discardableResult + public func dismissNotificationAlertIfNeeded( + _ action: FancyAlertComponent.Action = .cancel + ) throws -> Self { + guard FancyAlertComponent.isLoaded() else { return self } + + switch action { + case .accept: + try FancyAlertComponent().acceptAlert() + case .cancel: + try FancyAlertComponent().cancelAlert() + } + + return self + } } diff --git a/WordPress/UITestsFoundation/Screens/NotificationsScreen.swift b/WordPress/UITestsFoundation/Screens/NotificationsScreen.swift index 92fde0d46714..5ac443196e25 100644 --- a/WordPress/UITestsFoundation/Screens/NotificationsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/NotificationsScreen.swift @@ -1,28 +1,28 @@ +import ScreenObject import XCTest -public class NotificationsScreen: BaseScreen { +public class NotificationsScreen: ScreenObject { - let replyButton: XCUIElement - - init() { - let navBar = XCUIApplication().tables["Notifications Table"] - replyButton = XCUIApplication().buttons["reply-button"] - - super.init(element: navBar) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [ { $0.tables["Notifications Table"] } ], + app: app + ) } public func openNotification(withText notificationText: String) -> NotificationsScreen { - XCUIApplication().staticTexts[notificationText].tap() + app.staticTexts[notificationText].tap() return self } @discardableResult public func replyToNotification() -> NotificationsScreen { + let replyButton = app.buttons["reply-button"] replyButton.tap() return self } public static func isLoaded() -> Bool { - return XCUIApplication().tables["Notifications Table"].exists + (try? NotificationsScreen().isLoaded) ?? false } } diff --git a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift index 132abac75910..da3357c867d3 100644 --- a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift +++ b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift @@ -68,9 +68,9 @@ public class TabNavComponent: ScreenObject { return try ReaderScreen() } - public func gotoNotificationsScreen() -> NotificationsScreen { + public func goToNotificationsScreen() throws -> NotificationsScreen { notificationsTabButton.tap() - return NotificationsScreen() + return try NotificationsScreen() } public static func isLoaded() -> Bool { diff --git a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift index 6d2b9203f38b..9ff0d40b0ef5 100644 --- a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift +++ b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift @@ -101,7 +101,7 @@ class WordPressScreenshotGeneration: XCTestCase { // Get Notifications screenshot let notificationList = try TabNavComponent() - .gotoNotificationsScreen() + .goToNotificationsScreen() .dismissNotificationAlertIfNeeded() if XCUIDevice.isPad { notificationList diff --git a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift index e307e437d576..e9dbd8936be5 100644 --- a/WordPress/WordPressUITests/Tests/MainNavigationTests.swift +++ b/WordPress/WordPressUITests/Tests/MainNavigationTests.swift @@ -32,7 +32,7 @@ class MainNavigationTests: XCTestCase { } _ = try mySiteScreen - .tabBar.gotoNotificationsScreen() + .tabBar.goToNotificationsScreen() .dismissNotificationAlertIfNeeded() XCTContext.runActivity(named: "Confirm Notifications screen and main navigation bar are loaded.") { (activity) in From 9e4bf1c38edf23063a2cfe5b729542f37e41ddc1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 13 Oct 2021 14:38:58 +1100 Subject: [PATCH 016/371] Convert `MySitesScreen` to be a `ScreenObject` subclass --- .../Screens/Login/LoginEpilogueScreen.swift | 4 +- .../Screens/MySiteScreen.swift | 4 +- .../Screens/MySitesScreen.swift | 48 +++++++++---------- 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift index c95ae2525fd1..06b0c62203bf 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift @@ -30,9 +30,9 @@ public class LoginEpilogueScreen: BaseScreen { // Used by "Self-Hosted after WordPress.com login" test. When a site is added from the Sites List, the Sites List modal (MySitesScreen) // remains active after the epilogue "done" button is tapped. - public func continueWithSelfHostedSiteAddedFromSitesList() -> MySitesScreen { + public func continueWithSelfHostedSiteAddedFromSitesList() throws -> MySitesScreen { continueButton.tap() - return MySitesScreen() + return try MySitesScreen() } func connectSite() { diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index 0a7a9d4d8107..52f656c6348a 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -61,9 +61,9 @@ public class MySiteScreen: BaseScreen { super.init(element: navBar) } - public func showSiteSwitcher() -> MySitesScreen { + public func showSiteSwitcher() throws -> MySitesScreen { switchSiteButton.tap() - return MySitesScreen() + return try MySitesScreen() } public func removeSelfHostedSite() { diff --git a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift index cda3c1496248..61f64bd773a3 100644 --- a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift @@ -1,43 +1,43 @@ +import ScreenObject import XCTest -private struct ElementStringIDs { - static let blogsTable = "Blogs" - static let cancelButton = "cancel-button" - static let plusButton = "add-site-button" - static let addSelfHostedSiteButton = "Add self-hosted site" -} - -/// The site switcher aka blog list. In the app, it's a modal we can get to from My Site by tapping the down arrow next to the site title. -public class MySitesScreen: BaseScreen { - let blogsTable: XCUIElement - let cancelButton: XCUIElement - let plusButton: XCUIElement - let addSelfHostedSiteButton: XCUIElement +/// The site switcher AKA blog list. Currently presented as a modal we can get to from My Site by +/// tapping the down arrow next to the site title. +public class MySitesScreen: ScreenObject { + let cancelButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["cancel-button"] + } - init() { - let app = XCUIApplication() - blogsTable = app.staticTexts[ElementStringIDs.blogsTable] - cancelButton = app.buttons[ElementStringIDs.cancelButton] - plusButton = app.buttons[ElementStringIDs.plusButton] - addSelfHostedSiteButton = app.buttons[ElementStringIDs.addSelfHostedSiteButton] + let plusButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["add-site-button"] + } - super.init(element: plusButton) + init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [ + // swiftlint:disable:next opening_brace + { $0.staticTexts["Blogs"] }, + cancelButtonGetter, + plusButtonGetter + ], + app: app + ) } public func addSelfHostedSite() -> LoginSiteAddressScreen { - plusButton.tap() - addSelfHostedSiteButton.tap() + plusButtonGetter(app).tap() + app.buttons["Add self-hosted site"].tap() return LoginSiteAddressScreen() } public func closeModal() throws -> MySiteScreen { - cancelButton.tap() + cancelButtonGetter(app).tap() return try MySiteScreen() } @discardableResult public func switchToSite(withTitle title: String) throws -> MySiteScreen { - XCUIApplication().cells[title].tap() + app.cells[title].tap() return try MySiteScreen() } } From 5b42beb71fdb984c7c855ea905f4a28a929c1a89 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 13 Oct 2021 17:04:29 +1100 Subject: [PATCH 017/371] Convert `MySiteScreen` to be a `ScreenObject` subclass --- .../Screens/MySiteScreen.swift | 97 ++++++++++--------- .../WordPressUITests/Tests/SignupTests.swift | 2 +- 2 files changed, 53 insertions(+), 46 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index 52f656c6348a..9b399872104c 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -1,3 +1,4 @@ +import ScreenObject import XCTest private struct ElementStringIDs { @@ -17,22 +18,35 @@ private struct ElementStringIDs { } /// The home-base screen for an individual site. Used in many of our UI tests. -public class MySiteScreen: BaseScreen { +public class MySiteScreen: ScreenObject { public let tabBar: TabNavComponent - let navBar: XCUIElement - let removeSiteButton: XCUIElement - let removeSiteSheet: XCUIElement - let removeSiteAlert: XCUIElement - let activityLogButton: XCUIElement - let jetpackScanButton: XCUIElement - let jetpackBackupButton: XCUIElement - let postsButton: XCUIElement - let mediaButton: XCUIElement - let statsButton: XCUIElement - let siteSettingsButton: XCUIElement - let createButton: XCUIElement + + let activityLogButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.cells[ElementStringIDs.activityLogButton] + } + + let postsButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.cells[ElementStringIDs.postsButton] + } + + let mediaButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.cells[ElementStringIDs.mediaButton] + } + + var mediaButton: XCUIElement { mediaButtonGetter(app) } + + let statsButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.cells[ElementStringIDs.statsButton] + } + + let createButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons[ElementStringIDs.createButton] + } let readerButton: XCUIElement - let switchSiteButton: XCUIElement + + let switchSiteButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons[ElementStringIDs.switchSiteButton] + } static var isVisible: Bool { let app = XCUIApplication() @@ -40,53 +54,46 @@ public class MySiteScreen: BaseScreen { return blogTable.exists && blogTable.isHittable } - public init() throws { - let app = XCUIApplication() + public init(app: XCUIApplication = XCUIApplication()) throws { tabBar = try TabNavComponent() - removeSiteButton = app.cells[ElementStringIDs.removeSiteButton] - removeSiteSheet = app.sheets.buttons.element(boundBy: 0) - removeSiteAlert = app.alerts.buttons.element(boundBy: 1) - activityLogButton = app.cells[ElementStringIDs.activityLogButton] - jetpackScanButton = app.cells[ElementStringIDs.jetpackScanButton] - jetpackBackupButton = app.cells[ElementStringIDs.jetpackBackupButton] - postsButton = app.cells[ElementStringIDs.postsButton] - mediaButton = app.cells[ElementStringIDs.mediaButton] - statsButton = app.cells[ElementStringIDs.statsButton] - siteSettingsButton = app.cells[ElementStringIDs.settingsButton] - createButton = app.buttons[ElementStringIDs.createButton] readerButton = app.buttons[ElementStringIDs.ReaderButton] - switchSiteButton = app.buttons[ElementStringIDs.switchSiteButton] - navBar = app.navigationBars[ElementStringIDs.navBarTitle] - super.init(element: navBar) + try super.init( + expectedElementGetters: [ + switchSiteButtonGetter, + statsButtonGetter, + postsButtonGetter, + mediaButtonGetter, + createButtonGetter + ], + app: app + ) } public func showSiteSwitcher() throws -> MySitesScreen { - switchSiteButton.tap() + switchSiteButtonGetter(app).tap() return try MySitesScreen() } public func removeSelfHostedSite() { - removeSiteButton.tap() - if XCUIDevice.isPad { - removeSiteAlert.tap() - } else { - removeSiteSheet.tap() - } + app.cells[ElementStringIDs.removeSiteButton].tap() + // TODO: Wouldn't it be better to do this with an accessibility label? + let index = XCUIDevice.isPad ? 1 : 0 + app.sheets.buttons.element(boundBy: index).tap() } public func goToActivityLog() throws -> ActivityLogScreen { - activityLogButton.tap() + app.cells[ElementStringIDs.activityLogButton].tap() return try ActivityLogScreen() } public func goToJetpackScan() throws -> JetpackScanScreen { - jetpackScanButton.tap() + app.cells[ElementStringIDs.jetpackScanButton].tap() return try JetpackScanScreen() } public func goToJetpackBackup() throws -> JetpackBackupScreen { - jetpackBackupButton.tap() + app.cells[ElementStringIDs.jetpackBackupButton].tap() return try JetpackBackupScreen() } @@ -96,7 +103,7 @@ public class MySiteScreen: BaseScreen { mediaButton.tap() } - postsButton.tap() + postsButtonGetter(app).tap() return try PostsScreen() } @@ -106,21 +113,21 @@ public class MySiteScreen: BaseScreen { } public func goToStatsScreen() throws -> StatsScreen { - statsButton.tap() + statsButtonGetter(app).tap() return try StatsScreen() } public func goToSettingsScreen() throws -> SiteSettingsScreen { - siteSettingsButton.tap() + app.cells[ElementStringIDs.settingsButton].tap() return try SiteSettingsScreen() } func gotoCreateSheet() throws -> ActionSheetComponent { - createButton.tap() + createButtonGetter(app).tap() return try ActionSheetComponent() } public static func isLoaded() -> Bool { - return XCUIApplication().navigationBars[ElementStringIDs.navBarTitle].exists + (try? MySiteScreen().isLoaded) ?? false } } diff --git a/WordPress/WordPressUITests/Tests/SignupTests.swift b/WordPress/WordPressUITests/Tests/SignupTests.swift index 1fb2eff06010..9851d0c848d4 100644 --- a/WordPress/WordPressUITests/Tests/SignupTests.swift +++ b/WordPress/WordPressUITests/Tests/SignupTests.swift @@ -26,6 +26,6 @@ class SignupTests: XCTestCase { .continueWithSignup() .dismissNotificationAlertIfNeeded() - XCTAssert(mySiteScreen.isLoaded()) + XCTAssert(mySiteScreen.isLoaded) } } From a4c8a3aac5ec1e30a3a65fbe583f0e48a11aac15 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 14 Oct 2021 10:18:15 +1100 Subject: [PATCH 018/371] Convert `MediaScreen` to be a `ScreenObject` subclass --- .../UITestsFoundation/Screens/MediaScreen.swift | 17 ++++++++--------- .../Screens/MySiteScreen.swift | 4 ++-- .../WordPressScreenshotGeneration.swift | 2 +- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/MediaScreen.swift b/WordPress/UITestsFoundation/Screens/MediaScreen.swift index 2966310d83b2..771bf1f50c12 100644 --- a/WordPress/UITestsFoundation/Screens/MediaScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MediaScreen.swift @@ -1,17 +1,16 @@ +import ScreenObject import XCTest -public class MediaScreen: BaseScreen { +public class MediaScreen: ScreenObject { - private struct ElementIDs { - static let mediaGridView = "MediaCollection" - } - - public init() { - let mediaGrid = XCUIApplication().collectionViews[ElementIDs.mediaGridView] - super.init(element: mediaGrid) + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init( + expectedElementGetters: [ { $0.collectionViews["MediaCollection"] } ], + app: app + ) } static func isLoaded() -> Bool { - return XCUIApplication().tables[ElementIDs.mediaGridView].exists + (try? MediaScreen().isLoaded) ?? false } } diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index 9b399872104c..80baef46017b 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -107,9 +107,9 @@ public class MySiteScreen: ScreenObject { return try PostsScreen() } - public func gotoMediaScreen() -> MediaScreen { + public func goToMediaScreen() throws -> MediaScreen { mediaButton.tap() - return MediaScreen() + return try MediaScreen() } public func goToStatsScreen() throws -> StatsScreen { diff --git a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift index 9ff0d40b0ef5..92866d0e7f1b 100644 --- a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift +++ b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift @@ -77,7 +77,7 @@ class WordPressScreenshotGeneration: XCTestCase { .thenTakeScreenshot(4, named: "MySite") // Get Media screenshot - _ = mySite.gotoMediaScreen() + _ = try mySite.goToMediaScreen() sleep(imagesWaitTime) // wait for post images to load mySite.thenTakeScreenshot(6, named: "Media") From 653c2b048019cc2da09f7d99f8f17fc3b7e36204 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 14 Oct 2021 10:53:13 +1100 Subject: [PATCH 019/371] Convert `BlockEditorScreen` to be a `ScreenObject` subclass --- .../Screens/Editor/BlockEditorScreen.swift | 90 ++++++++++++------- .../Screens/PostsScreen.swift | 19 ++-- .../Screens/TabNavComponent.swift | 2 +- .../WordPressScreenshotGeneration.swift | 8 +- 4 files changed, 68 insertions(+), 51 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 1e4c34a476b5..b5ecee7d32e8 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -1,35 +1,28 @@ +import ScreenObject import XCTest -public class BlockEditorScreen: BaseScreen { +public class BlockEditorScreen: ScreenObject { - // Navigation bar - let editorNavBar = XCUIApplication().navigationBars["Gutenberg Editor Navigation Bar"] - let editorCloseButton = XCUIApplication().navigationBars["Gutenberg Editor Navigation Bar"].buttons["Close"] - let publishButton = XCUIApplication().buttons["Publish"] - let publishNowButton = XCUIApplication().buttons["Publish Now"] - let moreButton = XCUIApplication().buttons["more_post_options"] + let editorCloseButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.navigationBars["Gutenberg Editor Navigation Bar"].buttons["Close"] + } - // Editor area - // Title - let titleView = XCUIApplication().otherElements["Post title. Empty"].firstMatch // Uses a localized string - // Paragraph block - let paragraphView = XCUIApplication().otherElements["Paragraph Block. Row 1. Empty"].textViews.element(boundBy: 0) - // Image block - let imagePlaceholder = XCUIApplication().buttons["Image block. Empty"] // Uses a localized string + var editorCloseButton: XCUIElement { editorCloseButtonGetter(app) } - // Toolbar - let addBlockButton = XCUIApplication().buttons["add-block-button"] // Uses a testID + let addBlockButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["add-block-button"] // Uses a testID + } - // Action sheets - let actionSheet = XCUIApplication().sheets.element(boundBy: 0) - let imageDeviceButton = XCUIApplication().sheets.buttons["Choose from device"] // Uses a localized string - let discardButton = XCUIApplication().buttons["Discard"] // Uses a localized string - let postSettingsButton = XCUIApplication().sheets.buttons["Post Settings"] // Uses a localized string - let keepEditingButton = XCUIApplication().sheets.buttons["Keep Editing"] // Uses a localized string + var addBlockButton: XCUIElement { addBlockButtonGetter(app) } - public init() { - // Check addBlockButton element to ensure block editor is fully loaded - super.init(element: addBlockButton) + public init(app: XCUIApplication = XCUIApplication()) throws { + // The block editor has _many_ elements but most are loaded on-demand. To verify the screen + // is loaded, we rely only on the button to add a new block and on the navigation bar we + // expect to encase the screen. + try super.init( + expectedElementGetters: [ addBlockButtonGetter, editorCloseButtonGetter ], + app: app + ) } /** @@ -37,6 +30,8 @@ public class BlockEditorScreen: BaseScreen { - Parameter text: the test to enter into the title */ public func enterTextInTitle(text: String) -> BlockEditorScreen { + let titleView = app.otherElements["Post title. Empty"].firstMatch // Uses a localized string + titleView.tap() titleView.typeText(text) @@ -49,6 +44,8 @@ public class BlockEditorScreen: BaseScreen { */ public func addParagraphBlock(withText text: String) -> BlockEditorScreen { addBlock("Paragraph block") + + let paragraphView = app.otherElements["Paragraph Block. Row 1. Empty"].textViews.element(boundBy: 0) paragraphView.typeText(text) return self @@ -78,10 +75,12 @@ public class BlockEditorScreen: BaseScreen { public func closeEditor() { XCTContext.runActivity(named: "Close the block editor") { (activity) in XCTContext.runActivity(named: "Close the More menu if needed") { (activity) in + let actionSheet = app.sheets.element(boundBy: 0) if actionSheet.exists { if XCUIDevice.isPad { app.otherElements["PopoverDismissRegion"].tap() } else { + let keepEditingButton = app.sheets.buttons["Keep Editing"] // Uses a localized string keepEditingButton.tap() } } @@ -95,16 +94,19 @@ public class BlockEditorScreen: BaseScreen { let notSavedState = app.staticTexts["You have unsaved changes."] if notSavedState.exists { Logger.log(message: "Discarding unsaved changes", event: .v) + let discardButton = app.buttons["Discard"] // Uses a localized string discardButton.tap() } } - let editorClosed = waitFor(element: editorNavBar, predicate: "isEnabled == false") - XCTAssert(editorClosed, "Block editor should be closed but is still loaded.") + let editorNavBar = app.navigationBars["Gutenberg Editor Navigation Bar"] + let waitForEditorToClose = editorNavBar.waitFor(predicateString: "isEnabled == false") + XCTAssertEqual(waitForEditorToClose, .completed, "Block editor should be closed but is still loaded.") } } public func publish() throws -> EditorNoticeComponent { + let publishButton = app.buttons["Publish"] publishButton.tap() try confirmPublish() @@ -112,7 +114,9 @@ public class BlockEditorScreen: BaseScreen { } public func openPostSettings() throws -> EditorPostSettings { + let moreButton = app.buttons["more_post_options"] moreButton.tap() + let postSettingsButton = app.sheets.buttons["Post Settings"] // Uses a localized string postSettingsButton.tap() return try EditorPostSettings() @@ -127,6 +131,8 @@ public class BlockEditorScreen: BaseScreen { Select Image from Camera Roll by its ID. Starts with 0 */ private func addImageByOrder(id: Int) throws { + let imageDeviceButton = app.sheets.buttons["Choose from device"] // Uses a localized string + imageDeviceButton.tap() // Allow access to device media @@ -142,23 +148,43 @@ public class BlockEditorScreen: BaseScreen { if FancyAlertComponent.isLoaded() { try FancyAlertComponent().acceptAlert() } else { + let publishNowButton = app.buttons["Publish Now"] publishNowButton.tap() } } static func isLoaded() -> Bool { - return XCUIApplication().navigationBars["Gutenberg Editor Navigation Bar"].buttons["Close"].exists + (try? BlockEditorScreen().isLoaded) ?? false } @discardableResult - public func openBlockPicker() -> BlockEditorScreen { + public func openBlockPicker() throws -> BlockEditorScreen { addBlockButton.tap() - return BlockEditorScreen() + return try BlockEditorScreen() } @discardableResult - public func closeBlockPicker() -> BlockEditorScreen { + public func closeBlockPicker() throws -> BlockEditorScreen { editorCloseButton.coordinate(withNormalizedOffset: CGVector(dx: 0, dy: 0)).tap() - return BlockEditorScreen() + return try BlockEditorScreen() + } +} + +// TODO: Move this to XCUITestHelpers or ScreenObject +extension XCUIElement { + + func waitFor( + predicateString: String, + timeout: TimeInterval = 10 + ) -> XCTWaiter.Result { + XCTWaiter.wait( + for: [ + XCTNSPredicateExpectation( + predicate: NSPredicate(format: predicateString), + object: self + ) + ], + timeout: timeout + ) } } diff --git a/WordPress/UITestsFoundation/Screens/PostsScreen.swift b/WordPress/UITestsFoundation/Screens/PostsScreen.swift index 4d2eac5930c6..57464e467c54 100644 --- a/WordPress/UITestsFoundation/Screens/PostsScreen.swift +++ b/WordPress/UITestsFoundation/Screens/PostsScreen.swift @@ -60,33 +60,24 @@ public class PostsScreen: ScreenObject { public struct EditorScreen { - var isGutenbergEditor: Bool { - let blockEditorElement = "add-block-button" - return XCUIApplication().buttons[blockEditorElement].waitForExistence(timeout: 3) - } - var isAztecEditor: Bool { let aztecEditorElement = "Azctec Editor Navigation Bar" return XCUIApplication().navigationBars[aztecEditorElement].exists } - private var blockEditor: BlockEditorScreen { - return BlockEditorScreen() - } - private var aztecEditor: AztecEditorScreen { return AztecEditorScreen(mode: .rich) } func dismissDialogsIfNeeded() throws { - if self.isGutenbergEditor { - try blockEditor.dismissNotificationAlertIfNeeded(.accept) - } + guard let blockEditor = try? BlockEditorScreen() else { return } + + try blockEditor.dismissNotificationAlertIfNeeded(.accept) } public func close() { - if isGutenbergEditor { - self.blockEditor.closeEditor() + if let blockEditor = try? BlockEditorScreen() { + blockEditor.closeEditor() } if isAztecEditor { diff --git a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift index da3357c867d3..d4024890c39b 100644 --- a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift +++ b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift @@ -60,7 +60,7 @@ public class TabNavComponent: ScreenObject { let actionSheet = try mySite.gotoCreateSheet() actionSheet.goToBlogPost() - return BlockEditorScreen() + return try BlockEditorScreen() } public func goToReaderScreen() throws -> ReaderScreen { diff --git a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift index 92866d0e7f1b..54a49037a591 100644 --- a/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift +++ b/WordPress/WordPressScreenshotGeneration/WordPressScreenshotGeneration.swift @@ -44,10 +44,10 @@ class WordPressScreenshotGeneration: XCTestCase { let postEditorScreenshot = try postList.selectPost(withSlug: "our-services") sleep(imagesWaitTime) // wait for post images to load if XCUIDevice.isPad { - BlockEditorScreen() + try BlockEditorScreen() .thenTakeScreenshot(1, named: "Editor") } else { - BlockEditorScreen() + try BlockEditorScreen() .openBlockPicker() .thenTakeScreenshot(1, named: "Editor-With-BlockPicker") .closeBlockPicker() @@ -62,9 +62,9 @@ class WordPressScreenshotGeneration: XCTestCase { .gotoPostsScreen() .showOnly(.drafts) .selectPost(withSlug: "easy-blueberry-muffins") - BlockEditorScreen().selectBlock(containingText: "Ingredients") + try BlockEditorScreen().selectBlock(containingText: "Ingredients") sleep(imagesWaitTime) // wait for post images to load - BlockEditorScreen().thenTakeScreenshot(7, named: "Editor-With-Keyboard") + try BlockEditorScreen().thenTakeScreenshot(7, named: "Editor-With-Keyboard") ipadScreenshot.close() } else { postList.pop() From b4c388ee75db6276686127f763f9f08c445d1bed Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Thu, 14 Oct 2021 16:39:26 +1100 Subject: [PATCH 020/371] Explicitly set a short wait timeout for common UI test screens Namely the prologue and the tab-nav component. That's because if we need to wait for them for 20 seconds on every check in flows when they're not loaded, the tests drag along for too long. --- WordPress/UITestsFoundation/FancyAlertComponent.swift | 3 ++- .../Screens/Login/Unified/PrologueScreen.swift | 3 ++- WordPress/UITestsFoundation/Screens/TabNavComponent.swift | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/WordPress/UITestsFoundation/FancyAlertComponent.swift b/WordPress/UITestsFoundation/FancyAlertComponent.swift index 9b618d2766ea..288762f41f76 100644 --- a/WordPress/UITestsFoundation/FancyAlertComponent.swift +++ b/WordPress/UITestsFoundation/FancyAlertComponent.swift @@ -23,7 +23,8 @@ public class FancyAlertComponent: ScreenObject { public init(app: XCUIApplication = XCUIApplication()) throws { try super.init( expectedElementGetters: [defaultAlertButtonGetter, cancelAlertButtonGetter], - app: app + app: app, + waitTimeout: 3 ) } diff --git a/WordPress/UITestsFoundation/Screens/Login/Unified/PrologueScreen.swift b/WordPress/UITestsFoundation/Screens/Login/Unified/PrologueScreen.swift index d3a7a908cfc9..70ecb8970f36 100644 --- a/WordPress/UITestsFoundation/Screens/Login/Unified/PrologueScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/Unified/PrologueScreen.swift @@ -17,7 +17,8 @@ public class PrologueScreen: ScreenObject { public init(app: XCUIApplication = XCUIApplication()) throws { try super.init( expectedElementGetters: [continueButtonGetter, siteAddressButtonGetter], - app: app + app: app, + waitTimeout: 3 ) } diff --git a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift index d4024890c39b..bbd490405db6 100644 --- a/WordPress/UITestsFoundation/Screens/TabNavComponent.swift +++ b/WordPress/UITestsFoundation/Screens/TabNavComponent.swift @@ -30,7 +30,8 @@ public class TabNavComponent: ScreenObject { readerTabButtonGetter, notificationsTabButtonGetter ], - app: app + app: app, + waitTimeout: 3 ) } From 16d8396c6d8a71dc2d60f000e28e3b35ee2bc773 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 15 Oct 2021 13:56:17 +1100 Subject: [PATCH 021/371] Update query to get navigation bar in `MySitesScreen` How was it working before?! --- WordPress/UITestsFoundation/Screens/MySitesScreen.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift index 61f64bd773a3..821237b83f05 100644 --- a/WordPress/UITestsFoundation/Screens/MySitesScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySitesScreen.swift @@ -16,7 +16,7 @@ public class MySitesScreen: ScreenObject { try super.init( expectedElementGetters: [ // swiftlint:disable:next opening_brace - { $0.staticTexts["Blogs"] }, + { $0.staticTexts["My Sites"] }, cancelButtonGetter, plusButtonGetter ], From 1c4fb5cd0113b15c8878058aab13a7d774cc39ea Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Tue, 26 Oct 2021 12:16:29 +1100 Subject: [PATCH 022/371] Fix remove self hosted site step for iPad in `MySiteScreen` --- .../UITestsFoundation/Screens/MySiteScreen.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift index 80baef46017b..a2dd65d18d5b 100644 --- a/WordPress/UITestsFoundation/Screens/MySiteScreen.swift +++ b/WordPress/UITestsFoundation/Screens/MySiteScreen.swift @@ -77,9 +77,15 @@ public class MySiteScreen: ScreenObject { public func removeSelfHostedSite() { app.cells[ElementStringIDs.removeSiteButton].tap() - // TODO: Wouldn't it be better to do this with an accessibility label? - let index = XCUIDevice.isPad ? 1 : 0 - app.sheets.buttons.element(boundBy: index).tap() + + let removeButton: XCUIElement + if XCUIDevice.isPad { + removeButton = app.alerts.buttons.element(boundBy: 1) + } else { + removeButton = app.sheets.buttons.element(boundBy: 0) + } + + removeButton.tap() } public func goToActivityLog() throws -> ActivityLogScreen { From 284817d5d0a844154ae8ca96b8f0f505e01eaf07 Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Mon, 8 Nov 2021 16:54:54 -0300 Subject: [PATCH 023/371] Re-enables Gutenberg UI tests by adding support for blogging reminders alert dismissal --- .../Screens/Editor/BlockEditorScreen.swift | 11 +++++++++++ .../WordPressUITests/Tests/EditorGutenbergTests.swift | 6 ------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index b5ecee7d32e8..da56becdecff 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -150,6 +150,17 @@ public class BlockEditorScreen: ScreenObject { } else { let publishNowButton = app.buttons["Publish Now"] publishNowButton.tap() + dismissBloggingRemindersAlertIfNeeded() + } + } + + public func dismissBloggingRemindersAlertIfNeeded() { + let bloggingRemindersAlertIsLoaded = app.buttons["Set reminders"].waitForExistence(timeout: 3) + + if bloggingRemindersAlertIsLoaded { + let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) + + dismissBloggingRemindersAlertButton.tap() } } diff --git a/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift b/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift index 46becc1189fe..0622a2fb1603 100644 --- a/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift +++ b/WordPress/WordPressUITests/Tests/EditorGutenbergTests.swift @@ -24,7 +24,6 @@ class EditorGutenbergTests: XCTestCase { } func testTextPostPublish() throws { - try skipTillBloggingRemindersAreHandled() let title = getRandomPhrase() let content = getRandomContent() @@ -39,7 +38,6 @@ class EditorGutenbergTests: XCTestCase { } func testBasicPostPublish() throws { - try skipTillBloggingRemindersAreHandled() let title = getRandomPhrase() let content = getRandomContent() @@ -65,8 +63,4 @@ class EditorGutenbergTests: XCTestCase { .verifyEpilogueDisplays(postTitle: title, siteAddress: WPUITestCredentials.testWPcomSitePrimaryAddress) .done() } - - func skipTillBloggingRemindersAreHandled(file: StaticString = #file, line: UInt = #line) throws { - try XCTSkipIf(true, "Skipping test because we haven't added support for Blogging Reminders. See https://github.com/wordpress-mobile/WordPress-iOS/issues/16797.", file: file, line: line) - } } From 801b7026640fe7997cc621830f5dbf98d2f5e16e Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Tue, 9 Nov 2021 11:17:32 -0300 Subject: [PATCH 024/371] Adds support for blogging reminders dismissal on iPads --- .../Screens/Editor/BlockEditorScreen.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index da56becdecff..f20b85e7a1e1 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -158,9 +158,13 @@ public class BlockEditorScreen: ScreenObject { let bloggingRemindersAlertIsLoaded = app.buttons["Set reminders"].waitForExistence(timeout: 3) if bloggingRemindersAlertIsLoaded { - let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) + if XCUIDevice.isPad { + app.swipeDown(velocity: .fast) + } else { + let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) - dismissBloggingRemindersAlertButton.tap() + dismissBloggingRemindersAlertButton.tap() + } } } From 5168687e9ee2ff343fa9646507b52d533ffdd0bb Mon Sep 17 00:00:00 2001 From: Tiago Marques <42008628+tiagomar@users.noreply.github.com> Date: Wed, 10 Nov 2021 14:31:03 -0300 Subject: [PATCH 025/371] Update WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift Readability enhancement Co-authored-by: Gio Lodi --- .../Screens/Editor/BlockEditorScreen.swift | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index f20b85e7a1e1..0977f7579d35 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -155,16 +155,14 @@ public class BlockEditorScreen: ScreenObject { } public func dismissBloggingRemindersAlertIfNeeded() { - let bloggingRemindersAlertIsLoaded = app.buttons["Set reminders"].waitForExistence(timeout: 3) + guard app.buttons["Set reminders"].waitForExistence(timeout: 3) else { return } - if bloggingRemindersAlertIsLoaded { - if XCUIDevice.isPad { - app.swipeDown(velocity: .fast) - } else { - let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) - - dismissBloggingRemindersAlertButton.tap() - } + if XCUIDevice.isPad { + app.swipeDown(velocity: .fast) + } else { + let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) + dismissBloggingRemindersAlertButton.tap() + } } } From 6ffeb1d19f90fd06e0d31bbc840f15ffb97e9e66 Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Wed, 10 Nov 2021 16:20:48 -0300 Subject: [PATCH 026/371] Removes extra bracket from BlockEditorScreen --- .../UITestsFoundation/Screens/Editor/BlockEditorScreen.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 0977f7579d35..915820a8cb4b 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -163,7 +163,6 @@ public class BlockEditorScreen: ScreenObject { let dismissBloggingRemindersAlertButton = app.buttons.element(boundBy: 0) dismissBloggingRemindersAlertButton.tap() } - } } static func isLoaded() -> Bool { From 8492bb0dc05c4e4f116427cf604992da26bee38a Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 12 Nov 2021 14:51:59 +0000 Subject: [PATCH 027/371] Unified About: Re-add haptics for app logos --- .../About/AutomatticAppLogosCell.swift | 40 +++++++++++++++++-- .../About/UnifiedAboutViewController.swift | 8 ++++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index e1ca34cfcc8b..a85dc207268b 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -87,7 +87,18 @@ private class AppLogosScene: SKScene { private var traitCollection: UITraitCollection? + // Haptics + fileprivate var softGenerator = UIImpactFeedbackGenerator(style: .soft) + fileprivate var rigidGenerator = UIImpactFeedbackGenerator(style: .rigid) + // Keeps track of the last time a specific physics body made contact. + // Used to limit the number of haptics impacts we trigger as a result of collisions. + fileprivate var contacts: [SKPhysicsBody:TimeInterval] = [:] + + private var bounds: CGRect { + view?.bounds ?? .zero + } + // MARK: - Scene lifecycle override func didMove(to view: SKView) { @@ -95,6 +106,8 @@ private class AppLogosScene: SKScene { motionManager.startAccelerometerUpdates() generateScene() + + scene?.physicsWorld.contactDelegate = self } override func didChangeSize(_ oldSize: CGSize) { @@ -174,6 +187,7 @@ private class AppLogosScene: SKScene { let physicsBody = SKPhysicsBody(circleOfRadius: Metrics.ballRadius) physicsBody.categoryBitMask = ballCategory physicsBody.collisionBitMask = ballCategory | edgeCategory + physicsBody.contactTestBitMask = ballCategory physicsBody.affectedByGravity = true physicsBody.restitution = Constants.physicsRestitution ball.physicsBody = physicsBody @@ -208,10 +222,6 @@ private class AppLogosScene: SKScene { } } - private var bounds: CGRect { - view?.bounds ?? .zero - } - enum Metrics { static let ballRadius: CGFloat = 36.0 static let logoSize: CGFloat = 40.0 @@ -231,6 +241,8 @@ private class AppLogosScene: SKScene { enum Constants { static let appLogoPrefix = "ua-logo-" static let physicsRestitution: CGFloat = 0.5 + static let phyicsContactDebounce: TimeInterval = 0.25 + static let hapticsImpulseThreshold: TimeInterval = 0.10 } override func update(_ currentTime: TimeInterval) { @@ -239,3 +251,23 @@ private class AppLogosScene: SKScene { } } } + +extension AppLogosScene: SKPhysicsContactDelegate { + func didBegin(_ contact: SKPhysicsContact) { + let currentTime = CACurrentMediaTime() + + // If we trigger a haptics impact for every single impact it feels a bit much, + // so we'll ignore concurrent contacts for the same physics body within a small timeout. + if let timestamp = contacts[contact.bodyA], + currentTime - timestamp < Constants.phyicsContactDebounce { + return + } + + // We'll use a soft generator for collisions with a small impulse + // and a rigid generator for harder collisions so we have some variety in the feedback. + let generator: UIImpactFeedbackGenerator = contact.collisionImpulse < Constants.hapticsImpulseThreshold ? softGenerator : rigidGenerator + generator.impactOccurred() + + contacts[contact.bodyA] = currentTime + } +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 88da32457302..9bb081c7210b 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -162,6 +162,14 @@ class UnifiedAboutViewController: UIViewController { tableView.reloadData() } + override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { + super.viewWillTransition(to: size, with: coordinator) + + DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { + self.tableView.scrollToRow(at: IndexPath(row: 1, section: 2), at: .middle, animated: true) + } + } + // MARK: - Constants enum Metrics { From 0790789489c1ca6ed020b813995714af9c317ae6 Mon Sep 17 00:00:00 2001 From: James Frost Date: Mon, 15 Nov 2021 15:33:24 +0000 Subject: [PATCH 028/371] Unified About: Improve handling of device rotation --- .../Classes/System/WordPressAppDelegate.swift | 11 ++++++ .../About/AutomatticAppLogosCell.swift | 36 +++++++++++++++---- .../About/UnifiedAboutViewController.swift | 16 +++++++-- .../System/OrientationLimited.swift | 6 ++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++++ 5 files changed, 66 insertions(+), 9 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/System/OrientationLimited.swift diff --git a/WordPress/Classes/System/WordPressAppDelegate.swift b/WordPress/Classes/System/WordPressAppDelegate.swift index 93652dff86ff..e245def84cd1 100644 --- a/WordPress/Classes/System/WordPressAppDelegate.swift +++ b/WordPress/Classes/System/WordPressAppDelegate.swift @@ -254,6 +254,17 @@ class WordPressAppDelegate: UIResponder, UIApplicationDelegate { return true } + // Note that this method only appears to be called for iPhone devices, not iPad. + // This allows individual view controllers to cancel rotation if they need to. + func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask { + if let vc = window?.topmostPresentedViewController, + vc is OrientationLimited { + return vc.supportedInterfaceOrientations + } + + return application.supportedInterfaceOrientations(for: window) + } + // MARK: - Setup func runStartupSequence(with launchOptions: [UIApplication.LaunchOptionsKey: Any] = [:]) { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index a85dc207268b..0c291d3c48c5 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -93,23 +93,28 @@ private class AppLogosScene: SKScene { // Keeps track of the last time a specific physics body made contact. // Used to limit the number of haptics impacts we trigger as a result of collisions. - fileprivate var contacts: [SKPhysicsBody:TimeInterval] = [:] + fileprivate var contacts: [SKPhysicsBody: TimeInterval] = [:] private var bounds: CGRect { view?.bounds ?? .zero } - + // MARK: - Scene lifecycle override func didMove(to view: SKView) { super.didMove(to: view) - + motionManager.startAccelerometerUpdates() + generateScene() scene?.physicsWorld.contactDelegate = self } + deinit { + motionManager.stopAccelerometerUpdates() + } + override func didChangeSize(_ oldSize: CGSize) { super.didChangeSize(oldSize) @@ -243,11 +248,30 @@ private class AppLogosScene: SKScene { static let physicsRestitution: CGFloat = 0.5 static let phyicsContactDebounce: TimeInterval = 0.25 static let hapticsImpulseThreshold: TimeInterval = 0.10 + static let gravityModifier: CGFloat = 9.8 } override func update(_ currentTime: TimeInterval) { if let accelerometerData = motionManager.accelerometerData { - physicsWorld.gravity = CGVector(dx: accelerometerData.acceleration.x * 9.8, dy: accelerometerData.acceleration.y * 9.8) + let acceleration = accelerometerData.acceleration + let gravity = gravityVector(with: acceleration) + + physicsWorld.gravity = CGVector(dx: gravity.dx * Constants.gravityModifier, dy: gravity.dy * Constants.gravityModifier) + } + } + + private func gravityVector(with acceleration: CMAcceleration) -> CGVector { + switch UIDevice.current.orientation { + case .portraitUpsideDown: + // iPad always rotates the screen so needs the axes flipped, but iPhone keeps the orientation locked + return UIDevice.current.userInterfaceIdiom == .pad ? + CGVector(dx: -acceleration.x, dy: -acceleration.y) : CGVector(dx: acceleration.x, dy: acceleration.y) + case .landscapeLeft: + return CGVector(dx: -acceleration.y, dy: acceleration.x) + case .landscapeRight: + return CGVector(dx: acceleration.y, dy: -acceleration.x) + default: + return CGVector(dx: acceleration.x, dy: acceleration.y) } } } @@ -255,7 +279,7 @@ private class AppLogosScene: SKScene { extension AppLogosScene: SKPhysicsContactDelegate { func didBegin(_ contact: SKPhysicsContact) { let currentTime = CACurrentMediaTime() - + // If we trigger a haptics impact for every single impact it feels a bit much, // so we'll ignore concurrent contacts for the same physics body within a small timeout. if let timestamp = contacts[contact.bodyA], @@ -267,7 +291,7 @@ extension AppLogosScene: SKPhysicsContactDelegate { // and a rigid generator for harder collisions so we have some variety in the feedback. let generator: UIImpactFeedbackGenerator = contact.collisionImpulse < Constants.hapticsImpulseThreshold ? softGenerator : rigidGenerator generator.impactOccurred() - + contacts[contact.bodyA] = currentTime } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 9bb081c7210b..bbe33fdf34dd 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -68,7 +68,7 @@ struct AboutItem { } } -class UnifiedAboutViewController: UIViewController { +class UnifiedAboutViewController: UIViewController, OrientationLimited { static let sections: [[AboutItem]] = [ [ AboutItem(title: "Rate Us"), @@ -87,6 +87,8 @@ class UnifiedAboutViewController: UIViewController { ] ] + private static let appLogosIndexPath = IndexPath(row: 1, section: 2) + let headerView: UIView = { // These customizations are temporarily here, but if this VC is moved into a framework we'll need to move them // into the main App. @@ -138,6 +140,10 @@ class UnifiedAboutViewController: UIViewController { return footerView }() + override var supportedInterfaceOrientations: UIInterfaceOrientationMask { + return .portrait + } + // MARK: - View lifecycle override func viewDidLoad() { @@ -165,8 +171,8 @@ class UnifiedAboutViewController: UIViewController { override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) - DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) { - self.tableView.scrollToRow(at: IndexPath(row: 1, section: 2), at: .middle, animated: true) + DispatchQueue.main.asyncAfter(deadline: .now() + Constants.appLogosScrollDelay) { + self.tableView.scrollToRow(at: UnifiedAboutViewController.appLogosIndexPath, at: .middle, animated: true) } } @@ -177,6 +183,10 @@ class UnifiedAboutViewController: UIViewController { static let footerVerticalOffset: CGFloat = 20.0 } + enum Constants { + static let appLogosScrollDelay: TimeInterval = 0.25 + } + enum Images { static let automatticLogo = "automattic-logo" } diff --git a/WordPress/Classes/ViewRelated/System/OrientationLimited.swift b/WordPress/Classes/ViewRelated/System/OrientationLimited.swift new file mode 100644 index 000000000000..57f29ca51290 --- /dev/null +++ b/WordPress/Classes/ViewRelated/System/OrientationLimited.swift @@ -0,0 +1,6 @@ +import UIKit + +// On rotation, WordPressAppDelegate will check if a VC is OrientationLimited. +// If so, it will use the VC's value for supportedInterfaceOrientations when +// returning a value from application(_:supportedInterfaceOrientationsFor:) +protocol OrientationLimited: UIViewController {} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index adf0222af9ed..147120cd1ccf 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -219,6 +219,8 @@ 1730D4A31E97E3E400326B7C /* MediaItemTableViewCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1730D4A21E97E3E400326B7C /* MediaItemTableViewCells.swift */; }; 173BCE791CEB780800AE8817 /* Domain.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173BCE781CEB780800AE8817 /* Domain.swift */; }; 173D82E7238EE2A7008432DA /* FeatureFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173D82E6238EE2A7008432DA /* FeatureFlagTests.swift */; }; + 173DF288274294DB007C64B5 /* OrientationLimited.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF287274294DB007C64B5 /* OrientationLimited.swift */; }; + 173DF289274294DB007C64B5 /* OrientationLimited.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF287274294DB007C64B5 /* OrientationLimited.swift */; }; 1746D7771D2165AE00B11D77 /* ForcePopoverPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */; }; 1749965F2271BF08007021BD /* WordPressAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */; }; 174C116F2624603400346EC6 /* MBarRouteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174C116E2624603400346EC6 /* MBarRouteTests.swift */; }; @@ -4807,6 +4809,7 @@ 1730D4A21E97E3E400326B7C /* MediaItemTableViewCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaItemTableViewCells.swift; sourceTree = ""; }; 173BCE781CEB780800AE8817 /* Domain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Domain.swift; sourceTree = ""; }; 173D82E6238EE2A7008432DA /* FeatureFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlagTests.swift; sourceTree = ""; }; + 173DF287274294DB007C64B5 /* OrientationLimited.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrientationLimited.swift; sourceTree = ""; }; 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForcePopoverPresenter.swift; sourceTree = ""; }; 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressAppDelegate.swift; sourceTree = ""; }; 174C116E2624603400346EC6 /* MBarRouteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MBarRouteTests.swift; sourceTree = ""; }; @@ -11232,6 +11235,7 @@ 3F30E50823FB362700225013 /* WPTabBarController+MeNavigation.swift */, 43DDFE8B21715ADD008BE72F /* WPTabBarController+QuickStart.swift */, 57BAD50B225CCE1A006139EC /* WPTabBarController+Swift.swift */, + 173DF287274294DB007C64B5 /* OrientationLimited.swift */, ); path = System; sourceTree = ""; @@ -17934,6 +17938,7 @@ 5D146EBB189857ED0068FDC6 /* FeaturedImageViewController.m in Sources */, 98BAA7C326F925F70073A2F9 /* InlineEditableSingleLineCell.swift in Sources */, 57276E71239BDFD200515BE2 /* NotificationCenter+ObserveMultiple.swift in Sources */, + 173DF288274294DB007C64B5 /* OrientationLimited.swift in Sources */, D817799020ABF26800330998 /* ReaderCellConfiguration.swift in Sources */, FF1B11E5238FDFE70038B93E /* GutenbergGalleryUploadProcessor.swift in Sources */, F5E1BA9B253A0A5E0091E9A6 /* StoriesIntroViewController.swift in Sources */, @@ -19807,6 +19812,7 @@ 3FE3D1FE26A6F4AC00F3CD10 /* ListTableHeaderView.swift in Sources */, FABB23052602FC2C00C8785C /* WPAnalyticsEvent.swift in Sources */, FABB23062602FC2C00C8785C /* Coordinate.m in Sources */, + 173DF289274294DB007C64B5 /* OrientationLimited.swift in Sources */, F1D8C6EC26BABE3E002E3323 /* WeeklyRoundupDebugScreen.swift in Sources */, FABB23072602FC2C00C8785C /* SiteCreationRotatingMessageView.swift in Sources */, FABB23082602FC2C00C8785C /* SignupUsernameViewController.swift in Sources */, From 450881a8aa93ca2c2e82358b46df5c3338a09d72 Mon Sep 17 00:00:00 2001 From: James Frost Date: Mon, 15 Nov 2021 15:55:39 +0000 Subject: [PATCH 029/371] Unified About: Fixes gravity on iPhone --- .../Me/App Settings/About/AutomatticAppLogosCell.swift | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index 0c291d3c48c5..d6f8fe513898 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -261,11 +261,15 @@ private class AppLogosScene: SKScene { } private func gravityVector(with acceleration: CMAcceleration) -> CGVector { + guard UIDevice.current.userInterfaceIdiom == .pad else { + // iPhone locks the interface orientation, so we can just use the acceleration as-is + return CGVector(dx: acceleration.x, dy: acceleration.y) + } + + // iPad rotates the interface so we need to change the gravity acceleration to match switch UIDevice.current.orientation { case .portraitUpsideDown: - // iPad always rotates the screen so needs the axes flipped, but iPhone keeps the orientation locked - return UIDevice.current.userInterfaceIdiom == .pad ? - CGVector(dx: -acceleration.x, dy: -acceleration.y) : CGVector(dx: acceleration.x, dy: acceleration.y) + return CGVector(dx: -acceleration.x, dy: -acceleration.y) case .landscapeLeft: return CGVector(dx: -acceleration.y, dy: acceleration.x) case .landscapeRight: From 894b56f152c77d15a47db10eb4d7139d1bcc9125 Mon Sep 17 00:00:00 2001 From: James Frost Date: Mon, 15 Nov 2021 16:15:19 +0000 Subject: [PATCH 030/371] Hound fix --- .../Me/App Settings/About/AutomatticAppLogosCell.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index d6f8fe513898..2305b5687a73 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -265,7 +265,7 @@ private class AppLogosScene: SKScene { // iPhone locks the interface orientation, so we can just use the acceleration as-is return CGVector(dx: acceleration.x, dy: acceleration.y) } - + // iPad rotates the interface so we need to change the gravity acceleration to match switch UIDevice.current.orientation { case .portraitUpsideDown: From e85af1759b58bde7feddc5980e197814c7c7bcb0 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 15 Nov 2021 13:45:26 -0500 Subject: [PATCH 031/371] Add analytic properties for no sites view --- .../Utility/Analytics/WPAnalyticsEvent.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index cb93edbe4192..aac867703232 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -209,6 +209,11 @@ import Foundation case domainsRegistrationFormViewed case domainsRegistrationFormSubmitted case domainsPurchaseWebviewViewed + + // My Site: No sites view displayed + case mySiteNoSitesViewDisplayed + case mySiteNoSitesViewActionTapped + case mySiteNoSitesViewHidden /// A String that represents the event var value: String { @@ -574,6 +579,14 @@ import Foundation return "domains_registration_form_submitted" case .domainsPurchaseWebviewViewed: return "domains_purchase_webview_viewed" + + // My Site No Sites View + case .mySiteNoSitesViewDisplayed: + return "my_site_no_sites_view_displayed" + case .mySiteNoSitesViewActionTapped: + return "my_site_no_sites_view_action_tapped" + case .mySiteNoSitesViewHidden: + return "my_site_no_sites_view_hidden" } } From ee7e6f9dec2e42cd866e98301c5501342ac7b943 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 15 Nov 2021 13:45:51 -0500 Subject: [PATCH 032/371] Add tracking to the My Site no sites view --- .../Blog/My Site/MySiteViewController.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index e9cc73cfa97b..6a0406cbe612 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -73,6 +73,8 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } FancyAlertViewController.presentCustomAppIconUpgradeAlertIfNecessary(from: self) + + trackNoSitesVisibleIfNeeded() } private func subscribeToPostSignupNotifications() { @@ -173,6 +175,11 @@ class MySiteViewController: UIViewController, NoResultsViewHost { // MARK: - No Sites UI logic private func hideNoSites() { + // Only track if the no sites view is currently visible + if noResultsViewController.view.superview != nil { + WPAnalytics.track(.mySiteNoSitesViewHidden) + } + hideNoResults() cleanupNoResultsView() @@ -196,6 +203,14 @@ class MySiteViewController: UIViewController, NoResultsViewHost { configureNoResultsView() addNoResultsViewAndConfigureConstraints() } + + private func trackNoSitesVisibleIfNeeded() { + guard noResultsViewController.view.superview != nil else { + return + } + + WPAnalytics.track(.mySiteNoSitesViewDisplayed) + } private func makeNoResultsScrollView() { let scrollView = UIScrollView() @@ -223,6 +238,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { image: "mysites-nosites") noResultsViewController.actionButtonHandler = { [weak self] in self?.presentInterfaceForAddingNewSite() + WPAnalytics.track(.mySiteNoSitesViewActionTapped) } } From 6a2558c6c3195f7ad05acac37d9189e23d66a52c Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 15 Nov 2021 15:14:39 -0500 Subject: [PATCH 033/371] Remove whitespace --- .../Classes/Utility/Analytics/WPAnalyticsEvent.swift | 4 ++-- .../ViewRelated/Blog/My Site/MySiteViewController.swift | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index aac867703232..25a27ee7f52b 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -209,7 +209,7 @@ import Foundation case domainsRegistrationFormViewed case domainsRegistrationFormSubmitted case domainsPurchaseWebviewViewed - + // My Site: No sites view displayed case mySiteNoSitesViewDisplayed case mySiteNoSitesViewActionTapped @@ -579,7 +579,7 @@ import Foundation return "domains_registration_form_submitted" case .domainsPurchaseWebviewViewed: return "domains_purchase_webview_viewed" - + // My Site No Sites View case .mySiteNoSitesViewDisplayed: return "my_site_no_sites_view_displayed" diff --git a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift index 6a0406cbe612..f4c792f2aef3 100644 --- a/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/My Site/MySiteViewController.swift @@ -73,7 +73,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { } FancyAlertViewController.presentCustomAppIconUpgradeAlertIfNecessary(from: self) - + trackNoSitesVisibleIfNeeded() } @@ -179,7 +179,7 @@ class MySiteViewController: UIViewController, NoResultsViewHost { if noResultsViewController.view.superview != nil { WPAnalytics.track(.mySiteNoSitesViewHidden) } - + hideNoResults() cleanupNoResultsView() @@ -203,12 +203,12 @@ class MySiteViewController: UIViewController, NoResultsViewHost { configureNoResultsView() addNoResultsViewAndConfigureConstraints() } - + private func trackNoSitesVisibleIfNeeded() { guard noResultsViewController.view.superview != nil else { return } - + WPAnalytics.track(.mySiteNoSitesViewDisplayed) } From 8bae628c8b8ee9198204d3e420d9a8ea2e613c60 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Tue, 16 Nov 2021 16:14:47 +0700 Subject: [PATCH 034/371] Add feature flag for the comment thread --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index 37517e64b86c..e7731f71d0f9 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -19,6 +19,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case domains case followConversationViaNotifications case aboutScreen + case newCommentThread /// Returns a boolean indicating if the feature is enabled var enabled: Bool { @@ -63,6 +64,8 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { return true case .aboutScreen: return BuildConfiguration.current == .localDeveloper + case .newCommentThread: + return false } } @@ -123,6 +126,8 @@ extension FeatureFlag { return "Follow Conversation via Notifications" case .aboutScreen: return "New Unified About Screen" + case .newCommentThread: + return "New Comment Thread" } } From 6cac756ddaeee7a148bf3adf03cc0ea552464f14 Mon Sep 17 00:00:00 2001 From: James Frost Date: Tue, 16 Nov 2021 10:21:35 +0000 Subject: [PATCH 035/371] Revert bundler config change --- .bundle/config | 2 -- 1 file changed, 2 deletions(-) diff --git a/.bundle/config b/.bundle/config index 395b3edaa503..da970cb8c12e 100644 --- a/.bundle/config +++ b/.bundle/config @@ -1,5 +1,3 @@ --- BUNDLE_PATH: "vendor/bundle" -BUNDLE_RETRY: "3" -BUNDLE_JOBS: "3" BUNDLE_WITHOUT: "screenshots" From 7bf78db63dc76330a74ef8ee549569e891ed452c Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Tue, 16 Nov 2021 17:50:23 +0700 Subject: [PATCH 036/371] Extract cell configuration logic to the header cell --- .../CommentDetailViewController.swift | 19 ++++----- .../Comments/CommentHeaderTableViewCell.swift | 41 +++++++++++++++++++ 2 files changed, 48 insertions(+), 12 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift index 10e5370e2374..cf2bf99a1b79 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift @@ -398,14 +398,12 @@ private extension CommentDetailViewController { func configureHeaderCell() { // if the comment is a reply, show the author of the parent comment. if let parentComment = self.parentComment { - headerCell.textLabel?.text = String(format: .replyCommentTitleFormat, parentComment.authorForDisplay()) - headerCell.detailTextLabel?.text = parentComment.contentPreviewForDisplay().trimmingCharacters(in: .whitespacesAndNewlines) - return + return headerCell.configure(for: .reply(parentComment.authorForDisplay()), + subtitle: parentComment.contentPreviewForDisplay().trimmingCharacters(in: .whitespacesAndNewlines)) } // otherwise, if this is a comment to a post, show the post title instead. - headerCell.textLabel?.text = .postCommentTitleText - headerCell.detailTextLabel?.text = comment.titleForDisplay() + headerCell.configure(for: .post, subtitle: comment.titleForDisplay()) } func configureContentCell(_ cell: CommentContentTableViewCell, comment: Comment) { @@ -631,12 +629,9 @@ private extension String { static let textCellIdentifier = "textCell" // MARK: Localization - static let postCommentTitleText = NSLocalizedString("Comment on", comment: "Provides hint that the current screen displays a comment on a post. " - + "The title of the post will displayed below this string. " - + "Example: Comment on \n My First Post") - static let replyCommentTitleFormat = NSLocalizedString("Reply to %1$@", comment: "Provides hint that the screen displays a reply to a comment." - + "%1$@ is a placeholder for the comment author that's been replied to." - + "Example: Reply to Pamela Nguyen") + static let replyPlaceholderFormat = NSLocalizedString("Reply to %1$@", comment: "Placeholder text for the reply text field." + + "%1$@ is a placeholder for the comment author." + + "Example: Reply to Pamela Nguyen") static let replyIndicatorLabelText = NSLocalizedString("You replied to this comment.", comment: "Informs that the user has replied to this comment.") static let webAddressLabelText = NSLocalizedString("Web address", comment: "Describes the web address section in the comment detail screen.") static let emailAddressLabelText = NSLocalizedString("Email address", comment: "Describes the email address section in the comment detail screen.") @@ -859,7 +854,7 @@ private extension CommentDetailViewController { func configureReplyView() { let replyView = ReplyTextView(width: view.frame.width) - replyView.placeholder = String(format: .replyCommentTitleFormat, comment.authorForDisplay()) + replyView.placeholder = String(format: .replyPlaceholderFormat, comment.authorForDisplay()) replyView.accessibilityIdentifier = NSLocalizedString("Reply Text", comment: "Notifications Reply Accessibility Identifier") replyView.delegate = self replyView.onReply = { [weak self] content in diff --git a/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift b/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift index 71b3aa2982b0..797086a245c4 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift @@ -2,6 +2,24 @@ import UIKit class CommentHeaderTableViewCell: UITableViewCell, Reusable { + enum Title { + /// Title for a top-level comment on a post. + case post + + /// Title for a comment that's a reply to another comment. + /// Requires a String describing the replied author's name. + case reply(String) + + var stringValue: String { + switch self { + case .post: + return .postCommentTitleText + case .reply(let author): + return String(format: .replyCommentTitleFormat, author) + } + } + } + // MARK: Initialization required init() { @@ -13,6 +31,18 @@ class CommentHeaderTableViewCell: UITableViewCell, Reusable { fatalError("init(coder:) has not been implemented") } + /// Configures the header cell. + /// - Parameters: + /// - title: The title type for the header. See `Title`. + /// - subtitle: A text snippet of the parent object. + /// - showsDisclosureIndicator: When this is `false`, the cell is configured to look non-interactive. + func configure(for title: Title, subtitle: String, showsDisclosureIndicator: Bool = true) { + textLabel?.setText(title.stringValue) + detailTextLabel?.setText(subtitle) + accessoryType = showsDisclosureIndicator ? .disclosureIndicator : .none + selectionStyle = showsDisclosureIndicator ? .default : .none + } + // MARK: Helpers private typealias Style = WPStyleGuide.CommentDetail.Header @@ -30,3 +60,14 @@ class CommentHeaderTableViewCell: UITableViewCell, Reusable { } } + +// MARK: Localization + +private extension String { + static let postCommentTitleText = NSLocalizedString("Comment on", comment: "Provides hint that the current screen displays a comment on a post. " + + "The title of the post will displayed below this string. " + + "Example: Comment on \n My First Post") + static let replyCommentTitleFormat = NSLocalizedString("Reply to %1$@", comment: "Provides hint that the screen displays a reply to a comment." + + "%1$@ is a placeholder for the comment author that's been replied to." + + "Example: Reply to Pamela Nguyen") +} From 2a61f12bb8e6c05e4a7b38e9e90f47fb0af467b6 Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Tue, 16 Nov 2021 10:36:48 -0300 Subject: [PATCH 037/371] Add retrys and action check to reduce flakiness on editor tests --- .../Screens/Editor/BlockEditorScreen.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 915820a8cb4b..57d48a29518a 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -107,7 +107,14 @@ public class BlockEditorScreen: ScreenObject { public func publish() throws -> EditorNoticeComponent { let publishButton = app.buttons["Publish"] - publishButton.tap() + let publishNowButton = app.buttons["Publish Now"] + var tries = 0 + // This loop to check for Publish Now Button is an attempt to confirm that the publishButton.tap() call took effect. + // The tests would fail sometimes in the pipeline with no apparent reason. + repeat { + publishButton.tap() + tries += 1 + } while !publishNowButton.waitForIsHittable(timeout: 3) && tries <= 3 try confirmPublish() return try EditorNoticeComponent(withNotice: "Post published", andAction: "View") From 41e9f0700e46ae17c3c7c9d681f4ab0e1c75e3a9 Mon Sep 17 00:00:00 2001 From: James Frost Date: Tue, 16 Nov 2021 11:16:21 +0000 Subject: [PATCH 038/371] Unified About: Add Share action --- .../About/UnifiedAboutViewController.swift | 113 +++++++++++++----- .../Me/Me Main/MeViewController.swift | 2 +- 2 files changed, 83 insertions(+), 32 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 98f9c9499408..8f48ea094fc9 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -9,15 +9,13 @@ struct AboutItem { let cellStyle: AboutItemCellStyle let accessoryType: UITableViewCell.AccessoryType let hidesSeparator: Bool - let action: (() -> Void)? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: (() -> Void)? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle self.accessoryType = accessoryType self.hidesSeparator = hidesSeparator - self.action = action } func makeCell() -> UITableViewCell { @@ -64,26 +62,52 @@ struct AboutItem { } class UnifiedAboutViewController: UIViewController, OrientationLimited { - static let sections: [[AboutItem]] = [ + enum ItemIdentifier { + case rateUs + case share + case socialTwitter + case socialFacebook + case socialInstagram + case legalAndMore + case automatticFamily + case appLogos + case workWithUs + } + + let sections: [[ItemIdentifier]] = [ [ - AboutItem(title: "Rate Us", accessoryType: .none), - AboutItem(title: "Share with Friends", accessoryType: .none), - AboutItem(title: "Twitter", subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none) + .rateUs, + .share, + .socialTwitter ], [ - AboutItem(title: "Legal and More") + .legalAndMore ], [ - AboutItem(title: "Automattic Family", hidesSeparator: true), - AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) + .automatticFamily, + .appLogos ], [ - AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle) + .workWithUs ] ] private static let appLogosIndexPath = IndexPath(row: 1, section: 2) + let itemDetails: [ItemIdentifier: AboutItem] = [ + .rateUs: AboutItem(title: "Rate Us", accessoryType: .none), + .share: AboutItem(title: "Share with Friends", accessoryType: .none), + .socialTwitter: AboutItem(title: "Twitter", subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none), + .legalAndMore: AboutItem(title: "Legal and More"), + .automatticFamily: AboutItem(title: "Automattic Family", hidesSeparator: true), + .appLogos: AboutItem(title: "", cellStyle: .appLogos), + .workWithUs: AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle) + ] + + var sharePresenter: ShareAppContentPresenter? + + // MARK: - Views + let headerView: UIView = { // These customizations are temporarily here, but if this VC is moved into a framework we'll need to move them // into the main App. @@ -105,8 +129,6 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return headerView }() - // MARK: - Views - private lazy var tableView: UITableView = { let tableView = UITableView(frame: .zero, style: .insetGrouped) tableView.translatesAutoresizingMaskIntoConstraints = false @@ -146,6 +168,15 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle + init(sharePresenter: ShareAppContentPresenter? = nil) { + self.sharePresenter = sharePresenter + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + override func viewDidLoad() { super.viewDidLoad() @@ -171,11 +202,18 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) + // When rotating (only on iPad), scroll so that the app logos cell is always visible DispatchQueue.main.asyncAfter(deadline: .now() + Constants.appLogosScrollDelay) { self.tableView.scrollToRow(at: UnifiedAboutViewController.appLogosIndexPath, at: .middle, animated: true) } } + // MARK: - Navigation + + private func presentShareSheet(from view: UIView?) { + sharePresenter?.present(for: .wordpress, in: self, source: .about, sourceView: view) + } + // MARK: - Constants enum Metrics { @@ -196,40 +234,45 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { extension UnifiedAboutViewController: UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { - return Self.sections.count + return sections.count } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return Self.sections[section].count + return sections[section].count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let section = Self.sections[indexPath.section] - let row = section[indexPath.row] + let section = sections[indexPath.section] + let identifier = section[indexPath.row] + guard let item = itemDetails[identifier] else { + return UITableViewCell() + } - let cell = row.makeCell() + let cell = item.makeCell() - cell.textLabel?.text = row.title - cell.detailTextLabel?.text = row.subtitle + cell.textLabel?.text = item.title + cell.detailTextLabel?.text = item.subtitle cell.detailTextLabel?.textColor = .secondaryLabel - cell.accessoryType = row.accessoryType - cell.selectionStyle = row.cellSelectionStyle + cell.accessoryType = item.accessoryType + cell.selectionStyle = item.cellSelectionStyle return cell } func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { - let section = Self.sections[indexPath.section] - let row = section[indexPath.row] + let section = sections[indexPath.section] + let identifier = section[indexPath.row] + let item = itemDetails[identifier] - cell.separatorInset = row.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + cell.separatorInset = (item?.hidesSeparator == true) ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - let section = Self.sections[indexPath.section] - let row = section[indexPath.row] + let section = sections[indexPath.section] + let identifier = section[indexPath.row] + let item = itemDetails[identifier] - return row.cellHeight + return item?.cellHeight ?? 0 } } @@ -237,8 +280,16 @@ extension UnifiedAboutViewController: UITableViewDataSource { extension UnifiedAboutViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let section = Self.sections[indexPath.section] - let row = section[indexPath.row] - row.action?() + let section = sections[indexPath.section] + let identifier = section[indexPath.row] + + switch identifier { + case .share: + presentShareSheet(from: tableView.cellForRow(at: indexPath)) + default: + break + } + + tableView.deselectSelectedRowWithAnimation(true) } } diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index bede85cdef81..09d09d978264 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -253,7 +253,7 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in - let controller = UnifiedAboutViewController() + let controller = UnifiedAboutViewController(sharePresenter: self.sharePresenter) controller.modalPresentationStyle = .formSheet self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) From c55fe5eab639754973f1940b923e2f4ba2b41c81 Mon Sep 17 00:00:00 2001 From: James Frost Date: Tue, 16 Nov 2021 16:35:51 +0000 Subject: [PATCH 039/371] Unified About: Update footer view to scroll with table contents --- .../About/UnifiedAboutViewController.swift | 65 ++++++++++--------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 98f9c9499408..bbe65ad7be43 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -84,6 +84,26 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { private static let appLogosIndexPath = IndexPath(row: 1, section: 2) + + // MARK: - Views + + private lazy var tableView: UITableView = { + let tableView = UITableView(frame: .zero, style: .insetGrouped) + tableView.translatesAutoresizingMaskIntoConstraints = false + + // Occasionally our hidden separator insets can cause the horizontal + // scrollbar to appear on rotation + tableView.showsHorizontalScrollIndicator = false + + tableView.tableHeaderView = headerView + tableView.tableFooterView = footerView + + tableView.dataSource = self + tableView.delegate = self + + return tableView + }() + let headerView: UIView = { // These customizations are temporarily here, but if this VC is moved into a framework we'll need to move them // into the main App. @@ -105,38 +125,30 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return headerView }() - // MARK: - Views - - private lazy var tableView: UITableView = { - let tableView = UITableView(frame: .zero, style: .insetGrouped) - tableView.translatesAutoresizingMaskIntoConstraints = false - - // Occasionally our hidden separator insets can cause the horizontal - // scrollbar to appear on rotation - tableView.showsHorizontalScrollIndicator = false - - tableView.tableHeaderView = headerView - - tableView.dataSource = self - tableView.delegate = self - - return tableView - }() - private lazy var footerView: UIView = { let footerView = UIView() - footerView.translatesAutoresizingMaskIntoConstraints = false footerView.backgroundColor = .systemGroupedBackground + let containerView = UIView() + containerView.translatesAutoresizingMaskIntoConstraints = false + footerView.addSubview(containerView) + let logo = UIImageView(image: UIImage(named: Images.automatticLogo)) logo.translatesAutoresizingMaskIntoConstraints = false - footerView.addSubview(logo) + containerView.addSubview(logo) NSLayoutConstraint.activate([ - logo.centerXAnchor.constraint(equalTo: footerView.centerXAnchor), - logo.centerYAnchor.constraint(equalTo: footerView.centerYAnchor) + containerView.leadingAnchor.constraint(equalTo: footerView.leadingAnchor), + containerView.trailingAnchor.constraint(equalTo: footerView.trailingAnchor), + containerView.topAnchor.constraint(equalTo: footerView.topAnchor, constant: Metrics.footerVerticalOffset), + containerView.bottomAnchor.constraint(equalTo: footerView.bottomAnchor), + containerView.heightAnchor.constraint(equalToConstant: Metrics.footerHeight), + logo.centerXAnchor.constraint(equalTo: containerView.centerXAnchor), + logo.centerYAnchor.constraint(equalTo: containerView.centerYAnchor) ]) + footerView.frame.size = footerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize) + return footerView }() @@ -152,17 +164,12 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { view.backgroundColor = .systemGroupedBackground view.addSubview(tableView) - view.addSubview(footerView) NSLayoutConstraint.activate([ tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), - tableView.topAnchor.constraint(equalTo: view.topAnchor), - tableView.bottomAnchor.constraint(equalTo: footerView.topAnchor), - footerView.bottomAnchor.constraint(equalTo: view.safeBottomAnchor, constant: Metrics.footerVerticalOffset), - footerView.heightAnchor.constraint(equalToConstant: Metrics.footerHeight), - footerView.leadingAnchor.constraint(equalTo: view.leadingAnchor), - footerView.trailingAnchor.constraint(equalTo: view.trailingAnchor) + tableView.topAnchor.constraint(equalTo: view.safeTopAnchor), + tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor) ]) tableView.reloadData() From 80b174188d79804b5bfbf887954c45d64d663387 Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Tue, 16 Nov 2021 18:34:26 -0300 Subject: [PATCH 040/371] Add wait for the block button to be hittable before tapping it --- .../UITestsFoundation/Screens/Editor/BlockEditorScreen.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 57d48a29518a..1e52d47475aa 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -130,8 +130,10 @@ public class BlockEditorScreen: ScreenObject { } private func addBlock(_ blockLabel: String) { + let blockButton = XCUIApplication().buttons[blockLabel] addBlockButton.tap() - XCUIApplication().buttons[blockLabel].tap() + guard blockButton.waitForIsHittable(timeout: 3) else { return } + blockButton.tap() } /* From ab3f2f4c48ad0f7a8671165fc9cb3262514d8933 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 17 Nov 2021 20:40:27 +0700 Subject: [PATCH 041/371] Show the new comment header view in reader comments --- .../Comments/CommentHeaderTableViewCell.swift | 7 +++ .../Reader/ReaderCommentsViewController.m | 58 ++++++++++++++++--- .../Reader/ReaderCommentsViewController.swift | 28 +++++++++ 3 files changed, 84 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift b/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift index 797086a245c4..554924b8b4f8 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentHeaderTableViewCell.swift @@ -6,6 +6,9 @@ class CommentHeaderTableViewCell: UITableViewCell, Reusable { /// Title for a top-level comment on a post. case post + /// Title for the comment threads. + case thread + /// Title for a comment that's a reply to another comment. /// Requires a String describing the replied author's name. case reply(String) @@ -14,6 +17,8 @@ class CommentHeaderTableViewCell: UITableViewCell, Reusable { switch self { case .post: return .postCommentTitleText + case .thread: + return .commentThreadTitleText case .reply(let author): return String(format: .replyCommentTitleFormat, author) } @@ -70,4 +75,6 @@ private extension String { static let replyCommentTitleFormat = NSLocalizedString("Reply to %1$@", comment: "Provides hint that the screen displays a reply to a comment." + "%1$@ is a placeholder for the comment author that's been replied to." + "Example: Reply to Pamela Nguyen") + static let commentThreadTitleText = NSLocalizedString("Comments on", comment: "Sentence fragment. " + + "The full phrase is 'Comments on' followed by the title of a post on a separate line.") } diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index 4f752c9ad624..c4991da69998 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -64,6 +64,9 @@ @interface ReaderCommentsViewController () Bool { @@ -33,4 +34,31 @@ import Foundation return NSLocalizedString("Could not disable notifications", comment: "The app failed to disable notifications for the subscription") } } + + // MARK: New Comment Threads + + func configuredHeaderView(for tableView: UITableView) -> UIView { + guard let post = post else { + return .init() + } + + let cell = CommentHeaderTableViewCell() + cell.backgroundColor = .systemBackground + cell.configure(for: .thread, subtitle: post.titleForDisplay(), showsDisclosureIndicator: false) + + // the table view does not render separators for the section header views, so we need to create one. + let separatorView = UIView() + separatorView.translatesAutoresizingMaskIntoConstraints = false + separatorView.backgroundColor = .separator + + cell.contentView.addSubview(separatorView) + NSLayoutConstraint.activate([ + separatorView.heightAnchor.constraint(equalToConstant: .hairlineBorderWidth), + separatorView.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor), + separatorView.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor), + separatorView.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: tableView.separatorInset.left) + ]) + + return cell + } } From 00f70ad3008dee3591b89d047e53b09daafef714 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Wed, 17 Nov 2021 14:45:56 +0100 Subject: [PATCH 042/371] rake lint:autocorrect --- .../Me/App Settings/About/UnifiedAboutViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index dbd867231693..e2852ced9ccb 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -100,7 +100,7 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { WPAnalytics.track(event) } - + // MARK: - Views private static let appLogosIndexPath = IndexPath(row: 1, section: 2) From 89d3d68e246ab5371867b120406677bc91df1866 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 17 Nov 2021 21:13:47 +0700 Subject: [PATCH 043/371] Move the post subscription state to view controller --- .../Reader/ReaderCommentsViewController.m | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index c4991da69998..d2c02e1ae86a 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -64,9 +64,12 @@ @interface ReaderCommentsViewController () Date: Wed, 17 Nov 2021 14:20:14 +0000 Subject: [PATCH 044/371] Refactoring of new About Screen configuration * AboutItem extracted to its own file, along with a new configuration protocol * The host app now provides a configuration to the about screen with full list of items to be displayed. --- .../About/AboutScreenConfiguration.swift | 63 ++++++ .../About/UnifiedAboutViewController.swift | 183 ++++++------------ .../WordPressAboutScreenConfiguration.swift | 41 ++++ .../Me/Me Main/MeViewController.swift | 3 +- WordPress/WordPress.xcodeproj/project.pbxproj | 12 ++ 5 files changed, 177 insertions(+), 125 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift create mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift new file mode 100644 index 000000000000..dc0a8023eef2 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -0,0 +1,63 @@ +import Foundation + +typealias AboutScreenSection = [AboutItem] + +/// Users of UnifiedAboutViewController must provide a configuration conforming to this protocol. +/// It provides a list of AboutItems, grouped into sections, which will be displayed in the about screen's table view. +protocol AboutScreenConfiguration { + var sections: [AboutScreenSection] { get } +} + +typealias AboutItemAction = ((AboutItemActionContext) -> Void) + +struct AboutItemActionContext { + /// The About Screen view controller itself. + let viewController: UIViewController + + /// If the action was triggered by the user interacting with a specific view, it'll be available here. + let sourceView: UIView? +} + +/// Defines a single row in the unified about screen. +/// +struct AboutItem { + /// Title displayed in the main textLabel of the item's table row + let title: String + + /// Subtitle displayed in the detailTextLabel of the item's table row + let subtitle: String? + + /// Which cell style should be used to render the item's cell. See `AboutItemCellStyle` for options. + let cellStyle: AboutItemCellStyle + + /// The accessory type that should be used for the item's table row + let accessoryType: UITableViewCell.AccessoryType + + /// If `true`, the item's table row will hide its bottom separator + let hidesSeparator: Bool + + /// An optional action that can be performed when the item's table row is tapped. + /// The action will be passed an `AboutItemActionContext` containing references to the view controller + /// and the source view that triggered the action. + let action: AboutItemAction? + + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil) { + self.title = title + self.subtitle = subtitle + self.cellStyle = cellStyle + self.accessoryType = accessoryType + self.hidesSeparator = hidesSeparator + self.action = action + } + + enum AboutItemCellStyle: String { + // Displays only a title + case `default` + // Displays a title on the leading side and a secondary value on the trailing side + case value1 + // Displays a title with a smaller subtitle below + case subtitle + // Displays the custom app logos cell + case appLogos + } +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 8f48ea094fc9..ff8cb1db6b94 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,111 +1,24 @@ import UIKit import WordPressShared -/// Defines a single row in the unified about screen. -/// -struct AboutItem { - let title: String - let subtitle: String? - let cellStyle: AboutItemCellStyle - let accessoryType: UITableViewCell.AccessoryType - let hidesSeparator: Bool - - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false) { - self.title = title - self.subtitle = subtitle - self.cellStyle = cellStyle - self.accessoryType = accessoryType - self.hidesSeparator = hidesSeparator - } - func makeCell() -> UITableViewCell { - switch cellStyle { - case .default: - return UITableViewCell(style: .default, reuseIdentifier: cellStyle.rawValue) - case .value1: - return UITableViewCell(style: .value1, reuseIdentifier: cellStyle.rawValue) - case .subtitle: - return UITableViewCell(style: .subtitle, reuseIdentifier: cellStyle.rawValue) - case .appLogos: - return AutomatticAppLogosCell() - } - } +class UnifiedAboutViewController: UIViewController, OrientationLimited { + let configuration: AboutScreenConfiguration - var cellHeight: CGFloat { - switch cellStyle { - case .appLogos: - return AutomatticAppLogosCell.Metrics.cellHeight - default: - return UITableView.automaticDimension - } + private var sections: [AboutScreenSection] { + configuration.sections } - var cellSelectionStyle: UITableViewCell.SelectionStyle { - switch cellStyle { - case .appLogos: - return .none - default: - return .default + private var appLogosIndexPath: IndexPath? { + for (sectionIndex, row) in sections.enumerated() { + if let rowIndex = row.firstIndex(where: { $0.cellStyle == .appLogos }) { + return IndexPath(row: rowIndex, section: sectionIndex) + } } - } - - enum AboutItemCellStyle: String { - // Displays only a title - case `default` - // Displays a title on the leading side and a secondary value on the trailing side - case value1 - // Displays a title with a smaller subtitle below - case subtitle - // Displays the custom app logos cell - case appLogos - } -} -class UnifiedAboutViewController: UIViewController, OrientationLimited { - enum ItemIdentifier { - case rateUs - case share - case socialTwitter - case socialFacebook - case socialInstagram - case legalAndMore - case automatticFamily - case appLogos - case workWithUs + return nil } - let sections: [[ItemIdentifier]] = [ - [ - .rateUs, - .share, - .socialTwitter - ], - [ - .legalAndMore - ], - [ - .automatticFamily, - .appLogos - ], - [ - .workWithUs - ] - ] - - private static let appLogosIndexPath = IndexPath(row: 1, section: 2) - - let itemDetails: [ItemIdentifier: AboutItem] = [ - .rateUs: AboutItem(title: "Rate Us", accessoryType: .none), - .share: AboutItem(title: "Share with Friends", accessoryType: .none), - .socialTwitter: AboutItem(title: "Twitter", subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none), - .legalAndMore: AboutItem(title: "Legal and More"), - .automatticFamily: AboutItem(title: "Automattic Family", hidesSeparator: true), - .appLogos: AboutItem(title: "", cellStyle: .appLogos), - .workWithUs: AboutItem(title: "Work With Us", subtitle: "Join From Anywhere", cellStyle: .subtitle) - ] - - var sharePresenter: ShareAppContentPresenter? - // MARK: - Views let headerView: UIView = { @@ -168,8 +81,8 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle - init(sharePresenter: ShareAppContentPresenter? = nil) { - self.sharePresenter = sharePresenter + init(configuration: AboutScreenConfiguration) { + self.configuration = configuration super.init(nibName: nil, bundle: nil) } @@ -202,18 +115,14 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) - // When rotating (only on iPad), scroll so that the app logos cell is always visible - DispatchQueue.main.asyncAfter(deadline: .now() + Constants.appLogosScrollDelay) { - self.tableView.scrollToRow(at: UnifiedAboutViewController.appLogosIndexPath, at: .middle, animated: true) + if let indexPath = appLogosIndexPath { + // When rotating (only on iPad), scroll so that the app logos cell is always visible + DispatchQueue.main.asyncAfter(deadline: .now() + Constants.appLogosScrollDelay) { + self.tableView.scrollToRow(at: indexPath, at: .middle, animated: true) + } } } - // MARK: - Navigation - - private func presentShareSheet(from view: UIView?) { - sharePresenter?.present(for: .wordpress, in: self, source: .about, sourceView: view) - } - // MARK: - Constants enum Metrics { @@ -243,10 +152,7 @@ extension UnifiedAboutViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let section = sections[indexPath.section] - let identifier = section[indexPath.row] - guard let item = itemDetails[identifier] else { - return UITableViewCell() - } + let item = section[indexPath.row] let cell = item.makeCell() @@ -261,18 +167,16 @@ extension UnifiedAboutViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { let section = sections[indexPath.section] - let identifier = section[indexPath.row] - let item = itemDetails[identifier] + let item = section[indexPath.row] - cell.separatorInset = (item?.hidesSeparator == true) ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset } func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { let section = sections[indexPath.section] - let identifier = section[indexPath.row] - let item = itemDetails[identifier] + let item = section[indexPath.row] - return item?.cellHeight ?? 0 + return item.cellHeight } } @@ -281,15 +185,46 @@ extension UnifiedAboutViewController: UITableViewDataSource { extension UnifiedAboutViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let section = sections[indexPath.section] - let identifier = section[indexPath.row] + let item = section[indexPath.row] + + let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) + item.action?(context) - switch identifier { - case .share: - presentShareSheet(from: tableView.cellForRow(at: indexPath)) + tableView.deselectSelectedRowWithAnimation(true) + } +} + +// MARK: AboutItem Extensions + +private extension AboutItem { + func makeCell() -> UITableViewCell { + switch cellStyle { + case .default: + return UITableViewCell(style: .default, reuseIdentifier: cellStyle.rawValue) + case .value1: + return UITableViewCell(style: .value1, reuseIdentifier: cellStyle.rawValue) + case .subtitle: + return UITableViewCell(style: .subtitle, reuseIdentifier: cellStyle.rawValue) + case .appLogos: + return AutomatticAppLogosCell() + } + } + + var cellHeight: CGFloat { + switch cellStyle { + case .appLogos: + return AutomatticAppLogosCell.Metrics.cellHeight default: - break + return UITableView.automaticDimension } + } - tableView.deselectSelectedRowWithAnimation(true) + var cellSelectionStyle: UITableViewCell.SelectionStyle { + switch cellStyle { + case .appLogos: + return .none + default: + return .default + } } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift new file mode 100644 index 000000000000..6b2de5f9737a --- /dev/null +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -0,0 +1,41 @@ +import Foundation + +class WordPressAboutScreenConfiguration: AboutScreenConfiguration { + let sharePresenter: ShareAppContentPresenter + + lazy var sections: [[AboutItem]] = { + [ + [ + AboutItem(title: TextContent.rateUs, accessoryType: .none), + AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in + self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) + }), + AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none), + ], + [ + AboutItem(title: TextContent.legalAndMore), + ], + [ + AboutItem(title: TextContent.automatticFamily, hidesSeparator: true), + AboutItem(title: "", cellStyle: .appLogos) + ], + [ + AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle) + ] + ] + }() + + init(sharePresenter: ShareAppContentPresenter) { + self.sharePresenter = sharePresenter + } + + private enum TextContent { + static let rateUs = NSLocalizedString("Rate Us", comment: "Title for button allowing users to rate the app in the App Store") + static let share = NSLocalizedString("Share with Friends", comment: "Title for button allowing users to share information about the app with friends, such as via Messages") + static let twitter = NSLocalizedString("Twitter", comment: "Title of button that displays the app's Twitter profile") + static let legalAndMore = NSLocalizedString("Legal and More", comment: "Title of button which shows a list of legal documentation such as privacy policy and acknowledgements") + static let automatticFamily = NSLocalizedString("Automattic Family", comment: "Title of button that displays information about the other apps available from Automattic") + static let workWithUs = NSLocalizedString("Work With Us", comment: "Title of button that displays the Automattic Work With Us web page") + static let workWithUsSubtitle = NSLocalizedString("Join From Anywhere", comment: "Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world") + } +} diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index 09d09d978264..ff1c9d5c9f9e 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -253,7 +253,8 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in - let controller = UnifiedAboutViewController(sharePresenter: self.sharePresenter) + let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) + let controller = UnifiedAboutViewController(configuration: configuration) controller.modalPresentationStyle = .formSheet self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 500cf434e56c..6514d70e21ee 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -221,6 +221,10 @@ 173D82E7238EE2A7008432DA /* FeatureFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173D82E6238EE2A7008432DA /* FeatureFlagTests.swift */; }; 173DF288274294DB007C64B5 /* OrientationLimited.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF287274294DB007C64B5 /* OrientationLimited.swift */; }; 173DF289274294DB007C64B5 /* OrientationLimited.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF287274294DB007C64B5 /* OrientationLimited.swift */; }; + 173DF28E274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */; }; + 173DF28F274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */; }; + 173DF291274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */; }; + 173DF292274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */; }; 1746D7771D2165AE00B11D77 /* ForcePopoverPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */; }; 1749965F2271BF08007021BD /* WordPressAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */; }; 174C116F2624603400346EC6 /* MBarRouteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174C116E2624603400346EC6 /* MBarRouteTests.swift */; }; @@ -4811,6 +4815,8 @@ 173BCE781CEB780800AE8817 /* Domain.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Domain.swift; sourceTree = ""; }; 173D82E6238EE2A7008432DA /* FeatureFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlagTests.swift; sourceTree = ""; }; 173DF287274294DB007C64B5 /* OrientationLimited.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrientationLimited.swift; sourceTree = ""; }; + 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutScreenConfiguration.swift; sourceTree = ""; }; + 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressAboutScreenConfiguration.swift; sourceTree = ""; }; 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForcePopoverPresenter.swift; sourceTree = ""; }; 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressAppDelegate.swift; sourceTree = ""; }; 174C116E2624603400346EC6 /* MBarRouteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MBarRouteTests.swift; sourceTree = ""; }; @@ -9038,6 +9044,8 @@ 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */, 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */, F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */, + 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */, + 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */, ); path = About; sourceTree = ""; @@ -17612,6 +17620,7 @@ E14BCABB1E0BC817002E0603 /* Delay.swift in Sources */, D83CA3A520842CAF0060E310 /* Pageable.swift in Sources */, 17E362EC22C40BE8000E0C79 /* AppIconViewController.swift in Sources */, + 173DF28E274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */, 598DD1711B97985700146967 /* ThemeBrowserCell.swift in Sources */, B5A05AD91CA48601002EC787 /* ImageCropViewController.swift in Sources */, F93735F122D534FE00A3C312 /* LoggingURLRedactor.swift in Sources */, @@ -17783,6 +17792,7 @@ E15644EB1CE0E4C500D96E64 /* FeatureItemRow.swift in Sources */, F5A738BF244DF7E400EDE065 /* ReaderTagsTableViewController+Cells.swift in Sources */, 8B0732E9242BA1F000E7FBD3 /* PrepublishingHeaderView.swift in Sources */, + 173DF291274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */, 3F3CA65025D3003C00642A89 /* StatsWidgetsStore.swift in Sources */, 0857C2791CE5375F0014AE99 /* MenuItemsVisualOrderingView.m in Sources */, C700F9EE257FD64E0090938E /* JetpackScanViewController.swift in Sources */, @@ -19664,6 +19674,7 @@ FABB22812602FC2C00C8785C /* GutenbergRequestAuthenticator.swift in Sources */, 3FB1929626C79EC6000F5AA3 /* Date+TimeStrings.swift in Sources */, FABB22822602FC2C00C8785C /* WPTableViewActivityCell.m in Sources */, + 173DF28F274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */, FABB22842602FC2C00C8785C /* PeopleViewController.swift in Sources */, FABB22852602FC2C00C8785C /* ConfettiView.swift in Sources */, FABB22862602FC2C00C8785C /* RegisterDomainSuggestionsViewController.swift in Sources */, @@ -20548,6 +20559,7 @@ FABB25A52602FC2C00C8785C /* BlogToJetpackAccount.m in Sources */, FABB25A62602FC2C00C8785C /* NotificationSettingsViewController.swift in Sources */, FABB25A72602FC2C00C8785C /* ChangeUsernameViewController.swift in Sources */, + 173DF292274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */, FABB25A82602FC2C00C8785C /* RichTextView.swift in Sources */, FABB25A92602FC2C00C8785C /* ScenePresenter.swift in Sources */, FABB25AA2602FC2C00C8785C /* AccountSettingsStore.swift in Sources */, From c97f46f4daa051fee43249388f09ef6667d88b9f Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 17 Nov 2021 21:55:50 +0700 Subject: [PATCH 045/371] minor: update docs --- .../Reader/ReaderCommentsViewController.m | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index d2c02e1ae86a..ed0a83ce6072 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -67,7 +67,7 @@ @interface ReaderCommentsViewController () Date: Wed, 17 Nov 2021 21:58:49 +0700 Subject: [PATCH 046/371] minor: fix styling --- .../Classes/ViewRelated/Reader/ReaderCommentsViewController.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index ed0a83ce6072..0b02aa25873c 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -172,7 +172,7 @@ - (void)viewDidAppear:(BOOL)animated [super viewDidAppear:animated]; [self.tableView reloadData]; - if(self.promptToAddComment) { + if (self.promptToAddComment) { [self.replyTextView becomeFirstResponder]; // Reset the value to prevent prompting again if the user leaves and comes back From ae8eabdbfa6cd3eb8dcddbabb7ef444f97dced56 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 17 Nov 2021 22:03:48 +0700 Subject: [PATCH 047/371] minor: simplify code --- .../ViewRelated/Reader/ReaderCommentsViewController.m | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index 0b02aa25873c..ba5c4efc8c65 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -444,12 +444,11 @@ - (void)configureViewConstraints @"replyTextView" : self.replyTextView }]; - NSString *verticalVisualFormatString = @"V:|[postHeader][tableView][replyTextView]"; + NSString *verticalVisualFormatString = @"V:|[tableView][replyTextView]"; - if ([self newCommentThreadEnabled]) { - verticalVisualFormatString = @"V:|[tableView][replyTextView]"; - } else { + if (![self newCommentThreadEnabled]) { [views setObject:self.postHeaderWrapper forKey:@"postHeader"]; + verticalVisualFormatString = @"V:|[postHeader][tableView][replyTextView]"; // PostHeader Constraints [[self.postHeaderWrapper.leftAnchor constraintEqualToAnchor:self.tableView.leftAnchor] setActive:YES]; From ead87cd5e0086b507574deb83961ac39e1091ca9 Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 17 Nov 2021 16:41:40 +0000 Subject: [PATCH 048/371] Unified About: Add link navigation support, and Work With Us link --- .../About/AboutScreenConfiguration.swift | 26 +++++++++++++++++-- .../About/UnifiedAboutViewController.swift | 18 +++++++++++++ .../WordPressAboutScreenConfiguration.swift | 13 +++++++++- 3 files changed, 54 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index dc0a8023eef2..896e703541ea 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -1,11 +1,15 @@ import Foundation typealias AboutScreenSection = [AboutItem] +typealias AboutScreenURLPresenterBlock = ((URL, AboutItemActionContext) -> Void) /// Users of UnifiedAboutViewController must provide a configuration conforming to this protocol. -/// It provides a list of AboutItems, grouped into sections, which will be displayed in the about screen's table view. protocol AboutScreenConfiguration { + /// A list of AboutItems, grouped into sections, which will be displayed in the about screen's table view. var sections: [AboutScreenSection] { get } + + /// A block that presents the provided URL in a web view + var presentURL: AboutScreenURLPresenterBlock? { get } } typealias AboutItemAction = ((AboutItemActionContext) -> Void) @@ -18,6 +22,17 @@ struct AboutItemActionContext { let sourceView: UIView? } +/// An About Screen link contains a display title and url for a single link-based navigation item. +struct AboutScreenLink { + let title: String + let url: String + + init(_ title: String = "", url: String) { + self.title = title + self.url = url + } +} + /// Defines a single row in the unified about screen. /// struct AboutItem { @@ -41,13 +56,20 @@ struct AboutItem { /// and the source view that triggered the action. let action: AboutItemAction? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil) { + /// An optional list of titles and URLs to be used for navigation. + /// If a single link is provided, the title is ignored in favour of the item's title, and tapping the item's table row will display the URL in a webview. + /// If multiple links are provided, an intermediary screen will be displayed containing a list of titles of each link. + /// If a title on this intermediary screen is tapped, the associated URL will be displayed in a webview. + let links: [AboutScreenLink]? + + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil, links: [AboutScreenLink]? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle self.accessoryType = accessoryType self.hidesSeparator = hidesSeparator self.action = action + self.links = links } enum AboutItemCellStyle: String { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index ff8cb1db6b94..e74f9de80724 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -190,8 +190,26 @@ extension UnifiedAboutViewController: UITableViewDelegate { let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) item.action?(context) + // If the item contains links, we'll present them or show a menu + showLinks(for: item, with: context) + tableView.deselectSelectedRowWithAnimation(true) } + + private func showLinks(for item: AboutItem, with context: AboutItemActionContext) { + guard let links = item.links else { + return + } + + if links.count == 1, + let link = links.first?.url, + let url = URL(string: link) { + // If there's one link we'll display it directly + configuration.presentURL?(url, context) + } else { + // If there are multiple, we'll show an interstitial screen + } + } } // MARK: AboutItem Extensions diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 6b2de5f9737a..6293e20bfa73 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit class WordPressAboutScreenConfiguration: AboutScreenConfiguration { let sharePresenter: ShareAppContentPresenter @@ -20,11 +21,17 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { AboutItem(title: "", cellStyle: .appLogos) ], [ - AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle) + AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, links: Links.workWithUs) ] ] }() + let presentURL: AboutScreenURLPresenterBlock? = { url, context in + let webViewController = WebViewControllerFactory.controller(url: url) + let navigationController = UINavigationController(rootViewController: webViewController) + context.viewController.present(navigationController, animated: true, completion: nil) + } + init(sharePresenter: ShareAppContentPresenter) { self.sharePresenter = sharePresenter } @@ -38,4 +45,8 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { static let workWithUs = NSLocalizedString("Work With Us", comment: "Title of button that displays the Automattic Work With Us web page") static let workWithUsSubtitle = NSLocalizedString("Join From Anywhere", comment: "Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world") } + + private enum Links { + static let workWithUs = [AboutScreenLink(url: "https://automattic.com/work-with-us")] + } } From 3cec96afc46e7ceb3f92de0b6e6da24ae83c5913 Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 17 Nov 2021 16:45:41 +0000 Subject: [PATCH 049/371] Unified About: Add Twitter link support --- .../App Settings/About/WordPressAboutScreenConfiguration.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 6293e20bfa73..f762e1f6951e 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -11,7 +11,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) }), - AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none), + AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, links: Links.twitter), ], [ AboutItem(title: TextContent.legalAndMore), @@ -47,6 +47,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { } private enum Links { + static let twitter = [AboutScreenLink(url: "https://twitter.com/WordPressiOS")] static let workWithUs = [AboutScreenLink(url: "https://automattic.com/work-with-us")] } } From b4ffeb947cf7fa5fc87b7465de90626233e7f87a Mon Sep 17 00:00:00 2001 From: Wendy Chen Date: Wed, 17 Nov 2021 11:34:22 -0600 Subject: [PATCH 050/371] Fixing userinfo error. --- WordPress/Classes/Services/MediaService.m | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/WordPress/Classes/Services/MediaService.m b/WordPress/Classes/Services/MediaService.m index d7ad40dc9ad3..c2d5d0a9046f 100644 --- a/WordPress/Classes/Services/MediaService.m +++ b/WordPress/Classes/Services/MediaService.m @@ -435,9 +435,7 @@ - (NSError *)customMediaUploadError:(NSError *)error remote:(id Date: Wed, 17 Nov 2021 11:52:27 -0600 Subject: [PATCH 051/371] Adding release notes. --- RELEASE-NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 9d4dac4d2956..211ac864321f 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,6 +1,6 @@ 18.8 ----- - +* [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] 18.7 ----- From 170fc14bc273245db261f02973892a6452143b39 Mon Sep 17 00:00:00 2001 From: "Tanner W. Stokes" Date: Wed, 17 Nov 2021 14:13:54 -0500 Subject: [PATCH 052/371] Cloning userInfo from the original error caused a Core Data crash, so we just send the custom error message. --- WordPress/Classes/Services/MediaService.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/Services/MediaService.m b/WordPress/Classes/Services/MediaService.m index c2d5d0a9046f..0dd775c7b87f 100644 --- a/WordPress/Classes/Services/MediaService.m +++ b/WordPress/Classes/Services/MediaService.m @@ -435,7 +435,10 @@ - (NSError *)customMediaUploadError:(NSError *)error remote:(id Date: Wed, 17 Nov 2021 20:11:29 +0000 Subject: [PATCH 053/371] Unified About: Adds Legal and More section --- .../About/AboutScreenConfiguration.swift | 10 +- .../About/UnifiedAboutViewController.swift | 92 ++++++++++++++++++- .../WordPressAboutScreenConfiguration.swift | 18 +++- .../Me/Me Main/MeViewController.swift | 2 +- 4 files changed, 115 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 896e703541ea..7ca0ef2186f8 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -9,7 +9,10 @@ protocol AboutScreenConfiguration { var sections: [AboutScreenSection] { get } /// A block that presents the provided URL in a web view - var presentURL: AboutScreenURLPresenterBlock? { get } + var presentURLBlock: AboutScreenURLPresenterBlock? { get } + + /// A block that dismisses the about screen + var dismissBlock: ((AboutItemActionContext) -> Void) { get } } typealias AboutItemAction = ((AboutItemActionContext) -> Void) @@ -20,6 +23,11 @@ struct AboutItemActionContext { /// If the action was triggered by the user interacting with a specific view, it'll be available here. let sourceView: UIView? + + init(viewController: UIViewController, sourceView: UIView? = nil) { + self.viewController = viewController + self.sourceView = sourceView + } } /// An About Screen link contains a display title and url for a single link-based navigation item. diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index e74f9de80724..a35655dc5efb 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -81,6 +81,11 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle + static func controller(configuration: AboutScreenConfiguration) -> UIViewController { + let controller = UnifiedAboutViewController(configuration: configuration) + return UINavigationController(rootViewController: controller) + } + init(configuration: AboutScreenConfiguration) { self.configuration = configuration super.init(nibName: nil, bundle: nil) @@ -93,6 +98,8 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { override func viewDidLoad() { super.viewDidLoad() + navigationController?.setNavigationBarHidden(true, animated: false) + view.backgroundColor = .systemGroupedBackground view.addSubview(tableView) @@ -205,9 +212,11 @@ extension UnifiedAboutViewController: UITableViewDelegate { let link = links.first?.url, let url = URL(string: link) { // If there's one link we'll display it directly - configuration.presentURL?(url, context) + configuration.presentURLBlock?(url, context) } else { // If there are multiple, we'll show an interstitial screen + let viewController = AboutLinkListViewController(configuration: configuration, item: item) + navigationController?.pushViewController(viewController, animated: true) } } } @@ -246,3 +255,84 @@ private extension AboutItem { } } } + +/// This view controller displays a simple list in a table view of links provided by an `AboutItem`. +/// +private class AboutLinkListViewController: UITableViewController { + let configuration: AboutScreenConfiguration + let item: AboutItem + + init(configuration: AboutScreenConfiguration, item: AboutItem) { + self.configuration = configuration + self.item = item + super.init(style: .insetGrouped) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - View Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + + title = item.title + + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) + + tableView.register(UITableViewCell.self, forCellReuseIdentifier: Self.cellIdentifier) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + navigationController?.setNavigationBarHidden(false, animated: true) + } + + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + navigationController?.setNavigationBarHidden(true, animated: true) + } + + // MARK: - Actions + + @objc private func doneTapped() { + let context = AboutItemActionContext(viewController: self) + configuration.dismissBlock(context) + } + + // MARK: - Table view data source / delegate + override func numberOfSections(in tableView: UITableView) -> Int { + 1 + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + item.links?.count ?? 0 + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let cell = tableView.dequeueReusableCell(withIdentifier: Self.cellIdentifier, for: indexPath) + cell.textLabel?.text = item.links?[indexPath.row].title ?? "" + + return cell + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + defer { + tableView.deselectRow(at: indexPath, animated: true) + } + + guard let link = item.links?[indexPath.row], + let url = URL(string: link.url) else { + return + } + + let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) + configuration.presentURLBlock?(url, context) + + } + + private static let cellIdentifier = "Cell" +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index f762e1f6951e..14dbf0c8a4cf 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -14,7 +14,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, links: Links.twitter), ], [ - AboutItem(title: TextContent.legalAndMore), + AboutItem(title: TextContent.legalAndMore, links: Links.legalAndMore), ], [ AboutItem(title: TextContent.automatticFamily, hidesSeparator: true), @@ -26,12 +26,16 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { ] }() - let presentURL: AboutScreenURLPresenterBlock? = { url, context in + let presentURLBlock: AboutScreenURLPresenterBlock? = { url, context in let webViewController = WebViewControllerFactory.controller(url: url) let navigationController = UINavigationController(rootViewController: webViewController) context.viewController.present(navigationController, animated: true, completion: nil) } + let dismissBlock: ((AboutItemActionContext) -> Void) = { context in + context.viewController.presentingViewController?.dismiss(animated: true) + } + init(sharePresenter: ShareAppContentPresenter) { self.sharePresenter = sharePresenter } @@ -47,7 +51,13 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { } private enum Links { - static let twitter = [AboutScreenLink(url: "https://twitter.com/WordPressiOS")] - static let workWithUs = [AboutScreenLink(url: "https://automattic.com/work-with-us")] + static let legalAndMore = [ + AboutScreenLink("Terms of Service", url: WPAutomatticTermsOfServiceURL), + AboutScreenLink("Privacy Policy", url: WPAutomatticPrivacyURL), + AboutScreenLink("Source Code", url: WPGithubMainURL), + AboutScreenLink("Acknowledgements", url: Bundle.main.url(forResource: "acknowledgements", withExtension: "html")?.absoluteString ?? "") + ] + static let twitter = [AboutScreenLink(url: "https://twitter.com/WordPressiOS")] + static let workWithUs = [AboutScreenLink(url: "https://automattic.com/work-with-us")] } } diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index ff1c9d5c9f9e..525d78e16c17 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,7 +254,7 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController(configuration: configuration) + let controller = UnifiedAboutViewController.controller(configuration: configuration) controller.modalPresentationStyle = .formSheet self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) From 5d24fe81a3932da5d68df60edcc088ac06e63cce Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 17 Nov 2021 20:23:19 +0000 Subject: [PATCH 054/371] Unified About: Small fix to hide disclosure indicator for app logos row --- .../App Settings/About/WordPressAboutScreenConfiguration.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index f762e1f6951e..a6d173b2b4ec 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -18,7 +18,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { ], [ AboutItem(title: TextContent.automatticFamily, hidesSeparator: true), - AboutItem(title: "", cellStyle: .appLogos) + AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], [ AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, links: Links.workWithUs) From 042ed7f551d1994079005d5af46a90bcc94f6d60 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Wed, 17 Nov 2021 21:02:44 +0100 Subject: [PATCH 055/371] Show a notice when switching editor mode in gutenberg --- .../ViewRelated/Gutenberg/GutenbergViewController.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift index 3c15b46ba29e..48275def32e9 100644 --- a/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift +++ b/WordPress/Classes/ViewRelated/Gutenberg/GutenbergViewController.swift @@ -465,6 +465,14 @@ class GutenbergViewController: UIViewController, PostEditor, FeaturedImageDelega gutenberg.toggleHTMLMode() mode.toggle() editorSession.switch(editor: analyticsEditor) + presentEditingModeSwitchedNotice() + } + + private func presentEditingModeSwitchedNotice() { + let message = mode == .html + ? NSLocalizedString("Switched to HTML mode", comment: "Message of the notice shown when toggling the HTML editor mode") + : NSLocalizedString("Switched to Visual mode", comment: "Message of the notice shown when toggling the Visual editor mode") + gutenberg.showNotice(message) } func requestHTML(for reason: RequestHTMLReason) { From f5dbb70f4ea49a370dac54493580fca6d47be870 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 11:40:04 +0100 Subject: [PATCH 056/371] Improves how we handle links in Unified About. --- .../About/AboutScreenConfiguration.swift | 31 +++++-------------- .../About/UnifiedAboutViewController.swift | 27 ++++++---------- .../WordPressAboutScreenConfiguration.swift | 19 +++++++++--- 3 files changed, 31 insertions(+), 46 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 896e703541ea..d9185a8b72f7 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -1,18 +1,19 @@ import Foundation typealias AboutScreenSection = [AboutItem] -typealias AboutScreenURLPresenterBlock = ((URL, AboutItemActionContext) -> Void) /// Users of UnifiedAboutViewController must provide a configuration conforming to this protocol. protocol AboutScreenConfiguration { /// A list of AboutItems, grouped into sections, which will be displayed in the about screen's table view. var sections: [AboutScreenSection] { get } - - /// A block that presents the provided URL in a web view - var presentURL: AboutScreenURLPresenterBlock? { get } } -typealias AboutItemAction = ((AboutItemActionContext) -> Void) +typealias AboutItemAction = ((AboutItemActionContext) -> AboutItemDefaultAction) + +enum AboutItemDefaultAction { + case noDefaultAction + case showSubmenu(sections: [AboutScreenSection]) +} struct AboutItemActionContext { /// The About Screen view controller itself. @@ -22,17 +23,6 @@ struct AboutItemActionContext { let sourceView: UIView? } -/// An About Screen link contains a display title and url for a single link-based navigation item. -struct AboutScreenLink { - let title: String - let url: String - - init(_ title: String = "", url: String) { - self.title = title - self.url = url - } -} - /// Defines a single row in the unified about screen. /// struct AboutItem { @@ -56,20 +46,13 @@ struct AboutItem { /// and the source view that triggered the action. let action: AboutItemAction? - /// An optional list of titles and URLs to be used for navigation. - /// If a single link is provided, the title is ignored in favour of the item's title, and tapping the item's table row will display the URL in a webview. - /// If multiple links are provided, an intermediary screen will be displayed containing a list of titles of each link. - /// If a title on this intermediary screen is tapped, the associated URL will be displayed in a webview. - let links: [AboutScreenLink]? - - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil, links: [AboutScreenLink]? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle self.accessoryType = accessoryType self.hidesSeparator = hidesSeparator self.action = action - self.links = links } enum AboutItemCellStyle: String { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index e74f9de80724..f3c7de489658 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -188,27 +188,20 @@ extension UnifiedAboutViewController: UITableViewDelegate { let item = section[indexPath.row] let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) - item.action?(context) - // If the item contains links, we'll present them or show a menu - showLinks(for: item, with: context) + if let customAction = item.action { + let defaultAction = customAction(context) - tableView.deselectSelectedRowWithAnimation(true) - } - - private func showLinks(for item: AboutItem, with context: AboutItemActionContext) { - guard let links = item.links else { - return + switch defaultAction { + case .showSubmenu(let sections): + // show the submenut for the specified sections + break + default: + break + } } - if links.count == 1, - let link = links.first?.url, - let url = URL(string: link) { - // If there's one link we'll display it directly - configuration.presentURL?(url, context) - } else { - // If there are multiple, we'll show an interstitial screen - } + tableView.deselectSelectedRowWithAnimation(true) } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index a6d173b2b4ec..c90172545e5d 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -10,8 +10,13 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { AboutItem(title: TextContent.rateUs, accessoryType: .none), AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) + return .noDefaultAction + }), + AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in + + self?.presentWebView(for: Links.twitter, context: context) + return .noDefaultAction }), - AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, links: Links.twitter), ], [ AboutItem(title: TextContent.legalAndMore), @@ -21,12 +26,16 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], [ - AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, links: Links.workWithUs) + AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, action: { [weak self] context in + + self?.presentWebView(for: Links.workWithUs, context: context) + return .noDefaultAction + }), ] ] }() - let presentURL: AboutScreenURLPresenterBlock? = { url, context in + func presentWebView(for url: URL, context: AboutItemActionContext) { let webViewController = WebViewControllerFactory.controller(url: url) let navigationController = UINavigationController(rootViewController: webViewController) context.viewController.present(navigationController, animated: true, completion: nil) @@ -47,7 +56,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { } private enum Links { - static let twitter = [AboutScreenLink(url: "https://twitter.com/WordPressiOS")] - static let workWithUs = [AboutScreenLink(url: "https://automattic.com/work-with-us")] + static let twitter = URL(string: "https://twitter.com/WordPressiOS")! + static let workWithUs = URL(string: "https://automattic.com/work-with-us")! } } From ccf2e6151b6d25e0686aabdeda53f972156da19a Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Thu, 18 Nov 2021 18:10:59 +0700 Subject: [PATCH 057/371] Use addBottomBorder method --- .../Reader/ReaderCommentsViewController.swift | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift index 33766c6eb522..cf92b1f6c01e 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift @@ -47,17 +47,7 @@ import UIKit cell.configure(for: .thread, subtitle: post.titleForDisplay(), showsDisclosureIndicator: false) // the table view does not render separators for the section header views, so we need to create one. - let separatorView = UIView() - separatorView.translatesAutoresizingMaskIntoConstraints = false - separatorView.backgroundColor = .separator - - cell.contentView.addSubview(separatorView) - NSLayoutConstraint.activate([ - separatorView.heightAnchor.constraint(equalToConstant: .hairlineBorderWidth), - separatorView.bottomAnchor.constraint(equalTo: cell.contentView.bottomAnchor), - separatorView.trailingAnchor.constraint(equalTo: cell.contentView.trailingAnchor), - separatorView.leadingAnchor.constraint(equalTo: cell.contentView.leadingAnchor, constant: tableView.separatorInset.left) - ]) + cell.contentView.addBottomBorder(withColor: .separator, leadingMargin: tableView.separatorInset.left) return cell } From 29c4cb34afc98e0af011f9216437fbd4d81a3f3a Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 15:21:19 +0100 Subject: [PATCH 058/371] rake lint:autocorrect --- .../Me/App Settings/About/AboutScreenConfiguration.swift | 4 ++-- .../App Settings/About/UnifiedAboutViewController.swift | 6 +++--- .../About/WordPressAboutScreenConfiguration.swift | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index dc7e17f5424e..4702a52dabf3 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -14,9 +14,9 @@ protocol AboutScreenConfiguration { protocol AboutSubmenuConfiguration { /// A list of AboutItems, grouped into sections, which will be displayed in the submenu screen's table view. var sections: [AboutScreenSection] { get } - + func willPresent(viewController: SubmenuViewController) - + /// A block that dismisses the about screen var dismissBlock: ((AboutItemActionContext) -> Void) { get } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 7f42c2b557b7..636ecf24c569 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -212,7 +212,7 @@ extension UnifiedAboutViewController: UITableViewDelegate { case .showSubmenu(let configuration): let viewController = SubmenuViewController(configuration: configuration) viewController.title = item.title - + navigationController?.pushViewController(viewController, animated: true) default: break @@ -262,7 +262,7 @@ private extension AboutItem { /// class SubmenuViewController: UITableViewController { let configuration: AboutSubmenuConfiguration - + var sections: [AboutScreenSection] { configuration.sections } @@ -322,7 +322,7 @@ class SubmenuViewController: UITableViewController { case .showSubmenu(let configuration): let viewController = SubmenuViewController(configuration: configuration) viewController.title = item.title - + navigationController?.pushViewController(viewController, animated: true) default: break diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index df0878560022..34ece291a1b6 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -13,7 +13,7 @@ class WebViewPresenter { class WordPressAboutScreenConfiguration: AboutScreenConfiguration { let sharePresenter: ShareAppContentPresenter let webViewPresenter = WebViewPresenter() - + lazy var sections: [[AboutItem]] = { [ [ @@ -72,7 +72,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { class LegalAndMoreSubmenuConfiguration: AboutSubmenuConfiguration { let webViewPresenter = WebViewPresenter() - + lazy var sections: [[AboutItem]] = { [ [ @@ -95,7 +95,7 @@ class LegalAndMoreSubmenuConfiguration: AboutSubmenuConfiguration { ] ] }() - + func willPresent(viewController: SubmenuViewController) { // no-op, but we can configure the submenu VC here } @@ -110,7 +110,7 @@ class LegalAndMoreSubmenuConfiguration: AboutSubmenuConfiguration { static let sourceCode = NSLocalizedString("Source Code", comment: "Title of button that displays the App's source code information") static let acknowledgements = NSLocalizedString("Acknowledgements", comment: "Title of button that displays the App's acknoledgements") } - + private enum Links { static let termsOfService = URL(string: WPAutomatticTermsOfServiceURL)! static let privacyPolicy = URL(string: WPAutomatticPrivacyURL)! From 0611c9b3cda4afe9414ea9585026b37ef534485c Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 15:27:13 +0100 Subject: [PATCH 059/371] Removes an old line of code. --- .../Me/App Settings/About/UnifiedAboutViewController.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 636ecf24c569..31cb67777388 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -281,8 +281,6 @@ class SubmenuViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() - title = "" //item.title - navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) tableView.register(UITableViewCell.self, forCellReuseIdentifier: Self.cellIdentifier) From 1ab9acf1518be959e089fb74c3277c11da0a002e Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 16:21:49 +0100 Subject: [PATCH 060/371] Addresses some PR feedback. --- .../About/AboutScreenConfiguration.swift | 12 +------- .../About/UnifiedAboutViewController.swift | 4 +-- .../WordPressAboutScreenConfiguration.swift | 29 +++++++------------ 3 files changed, 13 insertions(+), 32 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 4702a52dabf3..fee7a514c863 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -11,21 +11,11 @@ protocol AboutScreenConfiguration { var dismissBlock: ((AboutItemActionContext) -> Void) { get } } -protocol AboutSubmenuConfiguration { - /// A list of AboutItems, grouped into sections, which will be displayed in the submenu screen's table view. - var sections: [AboutScreenSection] { get } - - func willPresent(viewController: SubmenuViewController) - - /// A block that dismisses the about screen - var dismissBlock: ((AboutItemActionContext) -> Void) { get } -} - typealias AboutItemAction = ((AboutItemActionContext) -> AboutItemDefaultAction) enum AboutItemDefaultAction { case noDefaultAction - case showSubmenu(configuration: AboutSubmenuConfiguration) + case showSubmenu(configuration: AboutScreenConfiguration) } struct AboutItemActionContext { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 31cb67777388..dd61777e8a48 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -261,13 +261,13 @@ private extension AboutItem { /// Generic VC for custom submenus. /// class SubmenuViewController: UITableViewController { - let configuration: AboutSubmenuConfiguration + let configuration: AboutScreenConfiguration var sections: [AboutScreenSection] { configuration.sections } - init(configuration: AboutSubmenuConfiguration) { + init(configuration: AboutScreenConfiguration) { self.configuration = configuration super.init(style: .insetGrouped) } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 34ece291a1b6..1a5c1e386f38 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -70,34 +70,25 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { } } -class LegalAndMoreSubmenuConfiguration: AboutSubmenuConfiguration { +class LegalAndMoreSubmenuConfiguration: AboutScreenConfiguration { let webViewPresenter = WebViewPresenter() lazy var sections: [[AboutItem]] = { [ [ - AboutItem(title: Titles.termsOfService, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.termsOfService, context: context) - return .noDefaultAction - }), - AboutItem(title: Titles.privacyPolicy, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.privacyPolicy, context: context) - return .noDefaultAction - }), - AboutItem(title: Titles.sourceCode, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.sourceCode, context: context) - return .noDefaultAction - }), - AboutItem(title: Titles.acknowledgements, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.acknowledgements, context: context) - return .noDefaultAction - }), + linkItem(title: Titles.termsOfService, link: Links.termsOfService), + linkItem(title: Titles.privacyPolicy, link: Links.privacyPolicy), + linkItem(title: Titles.sourceCode, link: Links.sourceCode), + linkItem(title: Titles.acknowledgements, link: Links.acknowledgements), ] ] }() - func willPresent(viewController: SubmenuViewController) { - // no-op, but we can configure the submenu VC here + func linkItem(title: String, link: URL) -> AboutItem { + AboutItem(title: title, accessoryType: .none, action: { [weak self] context in + self?.webViewPresenter.present(for: link, context: context) + return .noDefaultAction + }) } let dismissBlock: ((AboutItemActionContext) -> Void) = { context in From 41090191df7320f3b670d8fe04b7e4ecd1295366 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 17:57:37 +0100 Subject: [PATCH 061/371] Addresses some feedback. --- .../About/UnifiedAboutViewController.swift | 241 +++++++----------- 1 file changed, 97 insertions(+), 144 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index dd61777e8a48..b47d1fb35c56 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,12 +1,89 @@ import UIKit import WordPressShared +@objc +class UnifiedAboutTableViewManager: NSObject, UITableViewDelegate, UITableViewDataSource { + weak var hostViewController: UIViewController? + let sections: [AboutScreenSection] + + init(sections: [AboutScreenSection]) { + self.sections = sections + } + + // MARK: - UITableViewDataSource + + func numberOfSections(in tableView: UITableView) -> Int { + sections.count + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + sections[section].count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + let cell = item.makeCell() + + cell.textLabel?.text = item.title + cell.detailTextLabel?.text = item.subtitle + cell.detailTextLabel?.textColor = .secondaryLabel + cell.accessoryType = item.accessoryType + cell.selectionStyle = item.cellSelectionStyle + + return cell + } + + func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + } + + // MARK: - UITableViewDelegate + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + return item.cellHeight + } + + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + guard let hostViewController = hostViewController else { + return + } + + let section = sections[indexPath.section] + let item = section[indexPath.row] + + if let customAction = item.action { + let context = AboutItemActionContext(viewController: hostViewController, sourceView: tableView.cellForRow(at: indexPath)) + let defaultAction = customAction(context) + + switch defaultAction { + case .showSubmenu(let configuration): + let viewController = SubmenuViewController(configuration: configuration) + viewController.title = item.title + + hostViewController.navigationController?.pushViewController(viewController, animated: true) + default: + break + } + } + + tableView.deselectSelectedRowWithAnimation(true) + } +} class UnifiedAboutViewController: UIViewController, OrientationLimited { - let configuration: AboutScreenConfiguration + private let tableViewManager: UnifiedAboutTableViewManager + private let dismissBlock: ((AboutItemActionContext) -> Void) private var sections: [AboutScreenSection] { - configuration.sections + tableViewManager.sections } private var appLogosIndexPath: IndexPath? { @@ -35,8 +112,8 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { tableView.tableHeaderView = headerView tableView.tableFooterView = footerView - tableView.dataSource = self - tableView.delegate = self + tableView.dataSource = tableViewManager + tableView.delegate = tableViewManager return tableView }() @@ -101,8 +178,12 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } init(configuration: AboutScreenConfiguration) { - self.configuration = configuration + tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) + dismissBlock = configuration.dismissBlock + super.init(nibName: nil, bundle: nil) + + tableViewManager.hostViewController = self } required init?(coder: NSCoder) { @@ -155,74 +236,6 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } } -// MARK: - Table view data source - -extension UnifiedAboutViewController: UITableViewDataSource { - func numberOfSections(in tableView: UITableView) -> Int { - return sections.count - } - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return sections[section].count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let cell = item.makeCell() - - cell.textLabel?.text = item.title - cell.detailTextLabel?.text = item.subtitle - cell.detailTextLabel?.textColor = .secondaryLabel - cell.accessoryType = item.accessoryType - cell.selectionStyle = item.cellSelectionStyle - - return cell - } - - func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset - } - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - return item.cellHeight - } -} - -// MARK: - Table view delegate - -extension UnifiedAboutViewController: UITableViewDelegate { - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) - - if let customAction = item.action { - let defaultAction = customAction(context) - - switch defaultAction { - case .showSubmenu(let configuration): - let viewController = SubmenuViewController(configuration: configuration) - viewController.title = item.title - - navigationController?.pushViewController(viewController, animated: true) - default: - break - } - } - - tableView.deselectSelectedRowWithAnimation(true) - } -} - // MARK: AboutItem Extensions private extension AboutItem { @@ -261,15 +274,16 @@ private extension AboutItem { /// Generic VC for custom submenus. /// class SubmenuViewController: UITableViewController { - let configuration: AboutScreenConfiguration - - var sections: [AboutScreenSection] { - configuration.sections - } + let tableViewManager: UnifiedAboutTableViewManager + private let dismissBlock: ((AboutItemActionContext) -> Void) init(configuration: AboutScreenConfiguration) { - self.configuration = configuration + tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) + dismissBlock = configuration.dismissBlock + super.init(style: .insetGrouped) + + tableViewManager.hostViewController = self } required init?(coder: NSCoder) { @@ -281,9 +295,10 @@ class SubmenuViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() - navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) + tableView.delegate = tableViewManager + tableView.dataSource = tableViewManager - tableView.register(UITableViewCell.self, forCellReuseIdentifier: Self.cellIdentifier) + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) } override func viewWillAppear(_ animated: Bool) { @@ -302,68 +317,6 @@ class SubmenuViewController: UITableViewController { @objc private func doneTapped() { let context = AboutItemActionContext(viewController: self) - configuration.dismissBlock(context) - } - - private static let cellIdentifier = "AboutLinkListViewController.Cell" - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) - - if let customAction = item.action { - let defaultAction = customAction(context) - - switch defaultAction { - case .showSubmenu(let configuration): - let viewController = SubmenuViewController(configuration: configuration) - viewController.title = item.title - - navigationController?.pushViewController(viewController, animated: true) - default: - break - } - } - - tableView.deselectSelectedRowWithAnimation(true) - } - - override func numberOfSections(in tableView: UITableView) -> Int { - sections.count - } - - override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - sections[section].count - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let cell = item.makeCell() - - cell.textLabel?.text = item.title - cell.detailTextLabel?.text = item.subtitle - cell.detailTextLabel?.textColor = .secondaryLabel - cell.accessoryType = item.accessoryType - cell.selectionStyle = item.cellSelectionStyle - - return cell - } - - override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset - } - - override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - return item.cellHeight + dismissBlock(context) } } From 95dfa3b3bdf2b990b55fefac61f6193c75b09623 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Thu, 18 Nov 2021 18:08:32 +0100 Subject: [PATCH 062/371] Fixes a retain issue. --- .../About/UnifiedAboutViewController.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index b47d1fb35c56..7fcf7f94606d 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -80,7 +80,7 @@ class UnifiedAboutTableViewManager: NSObject, UITableViewDelegate, UITableViewDa class UnifiedAboutViewController: UIViewController, OrientationLimited { private let tableViewManager: UnifiedAboutTableViewManager - private let dismissBlock: ((AboutItemActionContext) -> Void) + private let configuration: AboutScreenConfiguration private var sections: [AboutScreenSection] { tableViewManager.sections @@ -179,7 +179,7 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { init(configuration: AboutScreenConfiguration) { tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - dismissBlock = configuration.dismissBlock + self.configuration = configuration super.init(nibName: nil, bundle: nil) @@ -275,11 +275,11 @@ private extension AboutItem { /// class SubmenuViewController: UITableViewController { let tableViewManager: UnifiedAboutTableViewManager - private let dismissBlock: ((AboutItemActionContext) -> Void) + private let configuration: AboutScreenConfiguration init(configuration: AboutScreenConfiguration) { tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - dismissBlock = configuration.dismissBlock + self.configuration = configuration super.init(style: .insetGrouped) @@ -317,6 +317,6 @@ class SubmenuViewController: UITableViewController { @objc private func doneTapped() { let context = AboutItemActionContext(viewController: self) - dismissBlock(context) + configuration.dismissBlock(context) } } From 6c9a9e321c97f5e56ae7f3fa018ddae7c39f15ce Mon Sep 17 00:00:00 2001 From: Tiago Marques Date: Thu, 18 Nov 2021 18:32:09 -0300 Subject: [PATCH 063/371] Make BlockEditorScreen more aligned with ScreenObject and make test fail faster for non expected states --- .../UITestsFoundation/Screens/Editor/BlockEditorScreen.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift index 1e52d47475aa..a9a5dd331c9b 100644 --- a/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Editor/BlockEditorScreen.swift @@ -130,9 +130,9 @@ public class BlockEditorScreen: ScreenObject { } private func addBlock(_ blockLabel: String) { - let blockButton = XCUIApplication().buttons[blockLabel] + let blockButton = app.buttons[blockLabel] addBlockButton.tap() - guard blockButton.waitForIsHittable(timeout: 3) else { return } + XCTAssertTrue(blockButton.waitForIsHittable(timeout: 3)) blockButton.tap() } From e81651c594c481204078e19f8bb0641600ab095e Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Thu, 18 Nov 2021 17:12:31 -0700 Subject: [PATCH 064/371] Add generic UITableViewCell that displays a full width button with a border. --- .../Cells/BorderedButtonTableViewCell.swift | 88 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++ 2 files changed, 94 insertions(+) create mode 100644 WordPress/Classes/ViewRelated/Cells/BorderedButtonTableViewCell.swift diff --git a/WordPress/Classes/ViewRelated/Cells/BorderedButtonTableViewCell.swift b/WordPress/Classes/ViewRelated/Cells/BorderedButtonTableViewCell.swift new file mode 100644 index 000000000000..cfee4011de7e --- /dev/null +++ b/WordPress/Classes/ViewRelated/Cells/BorderedButtonTableViewCell.swift @@ -0,0 +1,88 @@ +import UIKit + +// UITableViewCell that displays a full width button with a border. +// Properties: +// - normalColor: used for the button label and border. +// - highlightedColor: used for the button label when the button is pressed. +// - buttonInsets: used to provide margins around the button within the cell. +// The delegate is notified when the button is tapped. + +protocol BorderedButtonTableViewCellDelegate: AnyObject { + func buttonTapped() +} + +class BorderedButtonTableViewCell: UITableViewCell { + + // MARK: - Properties + + weak var delegate: BorderedButtonTableViewCellDelegate? + + private var buttonTitle = String() + private var buttonInsets = Defaults.buttonInsets + private var titleFont = Defaults.titleFont + private var normalColor = Defaults.normalColor + private var highlightedColor = Defaults.highlightedColor + + // MARK: - Configure + + func configure(buttonTitle: String, + titleFont: UIFont = Defaults.titleFont, + normalColor: UIColor = Defaults.normalColor, + highlightedColor: UIColor = Defaults.highlightedColor, + buttonInsets: UIEdgeInsets = Defaults.buttonInsets) { + self.buttonTitle = buttonTitle + self.titleFont = titleFont + self.normalColor = normalColor + self.highlightedColor = highlightedColor + configureView() + } + +} + +// MARK: - Private Extension + +private extension BorderedButtonTableViewCell { + + func configureView() { + selectionStyle = .none + accessibilityTraits = .button + + let button = configuredButton() + contentView.addSubview(button) + contentView.pinSubviewToAllEdges(button, insets: buttonInsets) + } + + func configuredButton() -> UIButton { + let button = UIButton() + let buttonColor = normalColor + button.translatesAutoresizingMaskIntoConstraints = false + button.setTitle(buttonTitle, for: .normal) + button.setTitleColor(buttonColor, for: .normal) + button.setTitleColor(highlightedColor, for: .highlighted) + button.setBackgroundImage(UIImage.renderBackgroundImage(fill: .clear, border: buttonColor), for: .normal) + button.setBackgroundImage(.renderBackgroundImage(fill: buttonColor, border: buttonColor), for: .highlighted) + + button.titleLabel?.font = titleFont + button.titleLabel?.textAlignment = .center + button.titleLabel?.numberOfLines = 0 + + // Add constraints to the title label, so the button can contain it properly in multi-line cases. + if let label = button.titleLabel { + button.pinSubviewToAllEdgeMargins(label) + } + + button.on(.touchUpInside) { [weak self] _ in + self?.delegate?.buttonTapped() + } + + return button + } + + struct Defaults { + static let buttonInsets = UIEdgeInsets(top: 4, left: 20, bottom: 4, right: 20) + static let titleFont = WPStyleGuide.fontForTextStyle(.body, fontWeight: .semibold) + static let normalColor: UIColor = .text + static let highlightedColor: UIColor = .white + } + +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 6514d70e21ee..5609f627f720 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1670,6 +1670,8 @@ 98812967219CE42A0075FF33 /* StatsTotalRow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98812965219CE42A0075FF33 /* StatsTotalRow.xib */; }; 9881296E219CF1310075FF33 /* StatsCellHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9881296C219CF1300075FF33 /* StatsCellHeader.swift */; }; 9881296F219CF1310075FF33 /* StatsCellHeader.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9881296D219CF1310075FF33 /* StatsCellHeader.xib */; }; + 98830A922747043B0061A87C /* BorderedButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98830A912747043B0061A87C /* BorderedButtonTableViewCell.swift */; }; + 98830A932747043B0061A87C /* BorderedButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98830A912747043B0061A87C /* BorderedButtonTableViewCell.swift */; }; 98880A4A22B2E5E400464538 /* TwoColumnCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98880A4822B2E5E400464538 /* TwoColumnCell.swift */; }; 98880A4B22B2E5E400464538 /* TwoColumnCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98880A4922B2E5E400464538 /* TwoColumnCell.xib */; }; 988AC37522F10DD900BC1433 /* FileDownloadsStatsRecordValue+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = 988AC37422F10DD900BC1433 /* FileDownloadsStatsRecordValue+CoreDataProperties.swift */; }; @@ -6307,6 +6309,7 @@ 98812965219CE42A0075FF33 /* StatsTotalRow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StatsTotalRow.xib; sourceTree = ""; }; 9881296C219CF1300075FF33 /* StatsCellHeader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatsCellHeader.swift; sourceTree = ""; }; 9881296D219CF1310075FF33 /* StatsCellHeader.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = StatsCellHeader.xib; sourceTree = ""; }; + 98830A912747043B0061A87C /* BorderedButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BorderedButtonTableViewCell.swift; sourceTree = ""; }; 9884B143236224F80021D8E9 /* WordPressUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 9884B145236225230021D8E9 /* WordPressUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = WordPressUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 98880A4822B2E5E400464538 /* TwoColumnCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwoColumnCell.swift; sourceTree = ""; }; @@ -10994,6 +10997,7 @@ 8320B5CF11FCA3EA00607422 /* Cells */ = { isa = PBXGroup; children = ( + 98830A912747043B0061A87C /* BorderedButtonTableViewCell.swift */, 9F74696A209EFD0C0074D52B /* CheckmarkTableViewCell.swift */, 4034FDE92007C42400153B87 /* ExpandableCell.swift */, 4034FDED2007D4F700153B87 /* ExpandableCell.xib */, @@ -18399,6 +18403,7 @@ 1714F8D020E6DA8900226DCB /* RouteMatcher.swift in Sources */, 591A428F1A6DC6F2003807A6 /* WPGUIConstants.m in Sources */, 3FD272E024CF8F270021F0C8 /* UIColor+Notice.swift in Sources */, + 98830A922747043B0061A87C /* BorderedButtonTableViewCell.swift in Sources */, FAD9457E25B5647B00F011B5 /* JetpackBackupOptionsCoordinator.swift in Sources */, E1CA0A6C1FA73053004C4BBE /* PluginStore.swift in Sources */, FAB8F7AA25AD792500D5D54A /* JetpackBackupStatusViewController.swift in Sources */, @@ -20568,6 +20573,7 @@ FABB25AD2602FC2C00C8785C /* SharingAuthorizationWebViewController.swift in Sources */, 3FB1929326C6C57A000F5AA3 /* TimeSelectionView.swift in Sources */, FABB25AE2602FC2C00C8785C /* SearchWrapperView.swift in Sources */, + 98830A932747043B0061A87C /* BorderedButtonTableViewCell.swift in Sources */, FABB25AF2602FC2C00C8785C /* UserSettings.swift in Sources */, FABB25B02602FC2C00C8785C /* MediaImportService.swift in Sources */, FABB25B12602FC2C00C8785C /* NSAttributedStringKey+Conversion.swift in Sources */, From 7faed06696049dee30395a06b21f73c8f33de21d Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Thu, 18 Nov 2021 17:12:51 -0700 Subject: [PATCH 065/371] Use the new BorderedButtonTableViewCell for the Delete Permanently button. --- .../CommentDetailViewController.swift | 49 ++++++------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift index cf2bf99a1b79..a28c1863e80c 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift @@ -102,40 +102,11 @@ class CommentDetailViewController: UIViewController { return cell }() - private lazy var deleteButton: UIButton = { - let button = UIButton() - let buttonColor = UIColor(light: .error, dark: .muriel(name: .red, .shade40)) - button.translatesAutoresizingMaskIntoConstraints = false - button.setTitle(.deleteButtonText, for: .normal) - button.setTitleColor(buttonColor, for: .normal) - button.setTitleColor(.white, for: .highlighted) - button.setBackgroundImage(UIImage.renderBackgroundImage(fill: .clear, border: buttonColor), for: .normal) - button.setBackgroundImage(.renderBackgroundImage(fill: buttonColor, border: buttonColor), for: .highlighted) - - button.titleLabel?.font = WPStyleGuide.fontForTextStyle(.body, fontWeight: .semibold) - button.titleLabel?.textAlignment = .center - button.titleLabel?.numberOfLines = 0 - - // add constraints to the title label, so the button can contain it properly in multi-line cases. - if let label = button.titleLabel { - button.pinSubviewToAllEdgeMargins(label) - } - - button.on(.touchUpInside) { [weak self] _ in - self?.deleteButtonTapped() - } - - return button - }() - - private lazy var deleteButtonCell: UITableViewCell = { - let cell = UITableViewCell() - cell.selectionStyle = .none - cell.accessibilityTraits = .button - - cell.contentView.addSubview(deleteButton) - cell.contentView.pinSubviewToAllEdges(deleteButton, insets: Constants.deleteButtonInsets) - + private lazy var deleteButtonCell: BorderedButtonTableViewCell = { + let cell = BorderedButtonTableViewCell() + cell.configure(buttonTitle: .deleteButtonText, + normalColor: UIColor(light: .error, dark: .muriel(name: .red, .shade40))) + cell.delegate = self return cell }() @@ -986,3 +957,13 @@ extension CommentDetailViewController: SuggestionsTableViewDelegate { } } + +// MARK: - BorderedButtonTableViewCellDelegate + +extension CommentDetailViewController: BorderedButtonTableViewCellDelegate { + + func buttonTapped() { + deleteButtonTapped() + } + +} From 0ec4b4ebddc40e374f0a429c7446b2e7b8d7a0be Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 10:21:30 +0000 Subject: [PATCH 066/371] Revert "Fixes a retain issue." This reverts commit 95dfa3b3bdf2b990b55fefac61f6193c75b09623. --- .../About/UnifiedAboutViewController.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 7fcf7f94606d..b47d1fb35c56 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -80,7 +80,7 @@ class UnifiedAboutTableViewManager: NSObject, UITableViewDelegate, UITableViewDa class UnifiedAboutViewController: UIViewController, OrientationLimited { private let tableViewManager: UnifiedAboutTableViewManager - private let configuration: AboutScreenConfiguration + private let dismissBlock: ((AboutItemActionContext) -> Void) private var sections: [AboutScreenSection] { tableViewManager.sections @@ -179,7 +179,7 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { init(configuration: AboutScreenConfiguration) { tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - self.configuration = configuration + dismissBlock = configuration.dismissBlock super.init(nibName: nil, bundle: nil) @@ -275,11 +275,11 @@ private extension AboutItem { /// class SubmenuViewController: UITableViewController { let tableViewManager: UnifiedAboutTableViewManager - private let configuration: AboutScreenConfiguration + private let dismissBlock: ((AboutItemActionContext) -> Void) init(configuration: AboutScreenConfiguration) { tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - self.configuration = configuration + dismissBlock = configuration.dismissBlock super.init(style: .insetGrouped) @@ -317,6 +317,6 @@ class SubmenuViewController: UITableViewController { @objc private func doneTapped() { let context = AboutItemActionContext(viewController: self) - configuration.dismissBlock(context) + dismissBlock(context) } } From ff7d22e2d06c77c12ab53a273ee22228b0620a6c Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 10:21:39 +0000 Subject: [PATCH 067/371] Revert "Addresses some feedback." This reverts commit 41090191df7320f3b670d8fe04b7e4ecd1295366. --- .../About/UnifiedAboutViewController.swift | 241 +++++++++++------- 1 file changed, 144 insertions(+), 97 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index b47d1fb35c56..dd61777e8a48 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,89 +1,12 @@ import UIKit import WordPressShared -@objc -class UnifiedAboutTableViewManager: NSObject, UITableViewDelegate, UITableViewDataSource { - weak var hostViewController: UIViewController? - let sections: [AboutScreenSection] - - init(sections: [AboutScreenSection]) { - self.sections = sections - } - - // MARK: - UITableViewDataSource - - func numberOfSections(in tableView: UITableView) -> Int { - sections.count - } - - func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - sections[section].count - } - - func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let cell = item.makeCell() - - cell.textLabel?.text = item.title - cell.detailTextLabel?.text = item.subtitle - cell.detailTextLabel?.textColor = .secondaryLabel - cell.accessoryType = item.accessoryType - cell.selectionStyle = item.cellSelectionStyle - - return cell - } - - func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset - } - - // MARK: - UITableViewDelegate - - func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - return item.cellHeight - } - - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - guard let hostViewController = hostViewController else { - return - } - - let section = sections[indexPath.section] - let item = section[indexPath.row] - - if let customAction = item.action { - let context = AboutItemActionContext(viewController: hostViewController, sourceView: tableView.cellForRow(at: indexPath)) - let defaultAction = customAction(context) - - switch defaultAction { - case .showSubmenu(let configuration): - let viewController = SubmenuViewController(configuration: configuration) - viewController.title = item.title - - hostViewController.navigationController?.pushViewController(viewController, animated: true) - default: - break - } - } - - tableView.deselectSelectedRowWithAnimation(true) - } -} class UnifiedAboutViewController: UIViewController, OrientationLimited { - private let tableViewManager: UnifiedAboutTableViewManager - private let dismissBlock: ((AboutItemActionContext) -> Void) + let configuration: AboutScreenConfiguration private var sections: [AboutScreenSection] { - tableViewManager.sections + configuration.sections } private var appLogosIndexPath: IndexPath? { @@ -112,8 +35,8 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { tableView.tableHeaderView = headerView tableView.tableFooterView = footerView - tableView.dataSource = tableViewManager - tableView.delegate = tableViewManager + tableView.dataSource = self + tableView.delegate = self return tableView }() @@ -178,12 +101,8 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } init(configuration: AboutScreenConfiguration) { - tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - dismissBlock = configuration.dismissBlock - + self.configuration = configuration super.init(nibName: nil, bundle: nil) - - tableViewManager.hostViewController = self } required init?(coder: NSCoder) { @@ -236,6 +155,74 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } } +// MARK: - Table view data source + +extension UnifiedAboutViewController: UITableViewDataSource { + func numberOfSections(in tableView: UITableView) -> Int { + return sections.count + } + + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return sections[section].count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + let cell = item.makeCell() + + cell.textLabel?.text = item.title + cell.detailTextLabel?.text = item.subtitle + cell.detailTextLabel?.textColor = .secondaryLabel + cell.accessoryType = item.accessoryType + cell.selectionStyle = item.cellSelectionStyle + + return cell + } + + func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + } + + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + return item.cellHeight + } +} + +// MARK: - Table view delegate + +extension UnifiedAboutViewController: UITableViewDelegate { + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) + + if let customAction = item.action { + let defaultAction = customAction(context) + + switch defaultAction { + case .showSubmenu(let configuration): + let viewController = SubmenuViewController(configuration: configuration) + viewController.title = item.title + + navigationController?.pushViewController(viewController, animated: true) + default: + break + } + } + + tableView.deselectSelectedRowWithAnimation(true) + } +} + // MARK: AboutItem Extensions private extension AboutItem { @@ -274,16 +261,15 @@ private extension AboutItem { /// Generic VC for custom submenus. /// class SubmenuViewController: UITableViewController { - let tableViewManager: UnifiedAboutTableViewManager - private let dismissBlock: ((AboutItemActionContext) -> Void) + let configuration: AboutScreenConfiguration - init(configuration: AboutScreenConfiguration) { - tableViewManager = UnifiedAboutTableViewManager(sections: configuration.sections) - dismissBlock = configuration.dismissBlock + var sections: [AboutScreenSection] { + configuration.sections + } + init(configuration: AboutScreenConfiguration) { + self.configuration = configuration super.init(style: .insetGrouped) - - tableViewManager.hostViewController = self } required init?(coder: NSCoder) { @@ -295,10 +281,9 @@ class SubmenuViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() - tableView.delegate = tableViewManager - tableView.dataSource = tableViewManager - navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) + + tableView.register(UITableViewCell.self, forCellReuseIdentifier: Self.cellIdentifier) } override func viewWillAppear(_ animated: Bool) { @@ -317,6 +302,68 @@ class SubmenuViewController: UITableViewController { @objc private func doneTapped() { let context = AboutItemActionContext(viewController: self) - dismissBlock(context) + configuration.dismissBlock(context) + } + + private static let cellIdentifier = "AboutLinkListViewController.Cell" + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) + + if let customAction = item.action { + let defaultAction = customAction(context) + + switch defaultAction { + case .showSubmenu(let configuration): + let viewController = SubmenuViewController(configuration: configuration) + viewController.title = item.title + + navigationController?.pushViewController(viewController, animated: true) + default: + break + } + } + + tableView.deselectSelectedRowWithAnimation(true) + } + + override func numberOfSections(in tableView: UITableView) -> Int { + sections.count + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + sections[section].count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + let cell = item.makeCell() + + cell.textLabel?.text = item.title + cell.detailTextLabel?.text = item.subtitle + cell.detailTextLabel?.textColor = .secondaryLabel + cell.accessoryType = item.accessoryType + cell.selectionStyle = item.cellSelectionStyle + + return cell + } + + override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset + } + + override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + let section = sections[indexPath.section] + let item = section[indexPath.row] + + return item.cellHeight } } From fc9e1caba52aaa60f7a4a2a109ee7d1ab55756c1 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 09:13:37 +0000 Subject: [PATCH 068/371] Unified About: Remove submenu VC --- .../About/UnifiedAboutViewController.swift | 137 +++--------------- 1 file changed, 19 insertions(+), 118 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index dd61777e8a48..3a6d550606e9 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -4,6 +4,7 @@ import WordPressShared class UnifiedAboutViewController: UIViewController, OrientationLimited { let configuration: AboutScreenConfiguration + let isSubmenu: Bool private var sections: [AboutScreenSection] { configuration.sections @@ -19,9 +20,6 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return nil } - // MARK: - Views - - // MARK: - Views private lazy var tableView: UITableView = { @@ -32,8 +30,10 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // scrollbar to appear on rotation tableView.showsHorizontalScrollIndicator = false - tableView.tableHeaderView = headerView - tableView.tableFooterView = footerView + if isSubmenu == false { + tableView.tableHeaderView = headerView + tableView.tableFooterView = footerView + } tableView.dataSource = self tableView.delegate = self @@ -93,6 +93,10 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return .portrait } + private var shouldShowNavigationBar: Bool { + isSubmenu + } + // MARK: - View lifecycle static func controller(configuration: AboutScreenConfiguration) -> UIViewController { @@ -100,8 +104,9 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return UINavigationController(rootViewController: controller) } - init(configuration: AboutScreenConfiguration) { + init(configuration: AboutScreenConfiguration, isSubmenu: Bool = false) { self.configuration = configuration + self.isSubmenu = isSubmenu super.init(nibName: nil, bundle: nil) } @@ -112,7 +117,7 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { override func viewDidLoad() { super.viewDidLoad() - navigationController?.setNavigationBarHidden(true, animated: false) + navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: false) view.backgroundColor = .systemGroupedBackground @@ -139,6 +144,12 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } } + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: true) + } + // MARK: - Constants enum Metrics { @@ -210,7 +221,7 @@ extension UnifiedAboutViewController: UITableViewDelegate { switch defaultAction { case .showSubmenu(let configuration): - let viewController = SubmenuViewController(configuration: configuration) + let viewController = UnifiedAboutViewController(configuration: configuration, isSubmenu: true) viewController.title = item.title navigationController?.pushViewController(viewController, animated: true) @@ -257,113 +268,3 @@ private extension AboutItem { } } } - -/// Generic VC for custom submenus. -/// -class SubmenuViewController: UITableViewController { - let configuration: AboutScreenConfiguration - - var sections: [AboutScreenSection] { - configuration.sections - } - - init(configuration: AboutScreenConfiguration) { - self.configuration = configuration - super.init(style: .insetGrouped) - } - - required init?(coder: NSCoder) { - fatalError("init(coder:) has not been implemented") - } - - // MARK: - View Lifecycle - - override func viewDidLoad() { - super.viewDidLoad() - - navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) - - tableView.register(UITableViewCell.self, forCellReuseIdentifier: Self.cellIdentifier) - } - - override func viewWillAppear(_ animated: Bool) { - super.viewWillAppear(animated) - - navigationController?.setNavigationBarHidden(false, animated: true) - } - - override func viewWillDisappear(_ animated: Bool) { - super.viewWillDisappear(animated) - - navigationController?.setNavigationBarHidden(true, animated: true) - } - - // MARK: - Actions - - @objc private func doneTapped() { - let context = AboutItemActionContext(viewController: self) - configuration.dismissBlock(context) - } - - private static let cellIdentifier = "AboutLinkListViewController.Cell" - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) - - if let customAction = item.action { - let defaultAction = customAction(context) - - switch defaultAction { - case .showSubmenu(let configuration): - let viewController = SubmenuViewController(configuration: configuration) - viewController.title = item.title - - navigationController?.pushViewController(viewController, animated: true) - default: - break - } - } - - tableView.deselectSelectedRowWithAnimation(true) - } - - override func numberOfSections(in tableView: UITableView) -> Int { - sections.count - } - - override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - sections[section].count - } - - override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - let cell = item.makeCell() - - cell.textLabel?.text = item.title - cell.detailTextLabel?.text = item.subtitle - cell.detailTextLabel?.textColor = .secondaryLabel - cell.accessoryType = item.accessoryType - cell.selectionStyle = item.cellSelectionStyle - - return cell - } - - override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - cell.separatorInset = item.hidesSeparator ? UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) : tableView.separatorInset - } - - override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - let section = sections[indexPath.section] - let item = section[indexPath.row] - - return item.cellHeight - } -} From 7dd89dae6770c24a2c73750bf439d93fe587cb35 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 10:04:49 +0000 Subject: [PATCH 069/371] About Screen: Change how submenus are created --- .../About/AboutScreenConfiguration.swift | 13 ++++++++----- .../About/UnifiedAboutViewController.swift | 14 +------------- .../About/WordPressAboutScreenConfiguration.swift | 10 ++-------- 3 files changed, 11 insertions(+), 26 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index fee7a514c863..5bfad0fa075d 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -11,12 +11,8 @@ protocol AboutScreenConfiguration { var dismissBlock: ((AboutItemActionContext) -> Void) { get } } -typealias AboutItemAction = ((AboutItemActionContext) -> AboutItemDefaultAction) +typealias AboutItemAction = ((AboutItemActionContext) -> Void) -enum AboutItemDefaultAction { - case noDefaultAction - case showSubmenu(configuration: AboutScreenConfiguration) -} struct AboutItemActionContext { /// The About Screen view controller itself. @@ -29,6 +25,13 @@ struct AboutItemActionContext { self.viewController = viewController self.sourceView = sourceView } + + func showSubmenu(title: String = "", configuration: AboutScreenConfiguration) { + let submenu = UnifiedAboutViewController(configuration: configuration, isSubmenu: true) + submenu.title = title + + viewController.navigationController?.pushViewController(submenu, animated: true) + } } /// Defines a single row in the unified about screen. diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 3a6d550606e9..a154b1198548 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -216,19 +216,7 @@ extension UnifiedAboutViewController: UITableViewDelegate { let context = AboutItemActionContext(viewController: self, sourceView: tableView.cellForRow(at: indexPath)) - if let customAction = item.action { - let defaultAction = customAction(context) - - switch defaultAction { - case .showSubmenu(let configuration): - let viewController = UnifiedAboutViewController(configuration: configuration, isSubmenu: true) - viewController.title = item.title - - navigationController?.pushViewController(viewController, animated: true) - default: - break - } - } + item.action?(context) tableView.deselectSelectedRowWithAnimation(true) } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 1a5c1e386f38..3799f49b6892 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -2,7 +2,7 @@ import Foundation import UIKit -class WebViewPresenter { +struct WebViewPresenter { func present(for url: URL, context: AboutItemActionContext) { let webViewController = WebViewControllerFactory.controller(url: url) let navigationController = UINavigationController(rootViewController: webViewController) @@ -19,17 +19,14 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { [ AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) - return .noDefaultAction }), AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.twitter, context: context) - return .noDefaultAction }), ], [ AboutItem(title: TextContent.legalAndMore, action: { [weak self] context in - .showSubmenu(configuration: LegalAndMoreSubmenuConfiguration()) + context.showSubmenu(with: TextContent.legalAndMore, configuration: LegalAndMoreSubmenuConfiguration()) }), ], [ @@ -38,9 +35,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { ], [ AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, action: { [weak self] context in - self?.webViewPresenter.present(for: Links.workWithUs, context: context) - return .noDefaultAction }), ] ] @@ -87,7 +82,6 @@ class LegalAndMoreSubmenuConfiguration: AboutScreenConfiguration { func linkItem(title: String, link: URL) -> AboutItem { AboutItem(title: title, accessoryType: .none, action: { [weak self] context in self?.webViewPresenter.present(for: link, context: context) - return .noDefaultAction }) } From fa77507c9c99030900d25bee40e8a8e3964e88d1 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 10:29:19 +0000 Subject: [PATCH 070/371] Unified About: Add Done button to submenus --- .../About/UnifiedAboutViewController.swift | 14 ++++++++++++-- .../About/WordPressAboutScreenConfiguration.swift | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index a154b1198548..753984480810 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -3,8 +3,8 @@ import WordPressShared class UnifiedAboutViewController: UIViewController, OrientationLimited { - let configuration: AboutScreenConfiguration - let isSubmenu: Bool + private let configuration: AboutScreenConfiguration + private let isSubmenu: Bool private var sections: [AboutScreenSection] { configuration.sections @@ -118,6 +118,9 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { super.viewDidLoad() navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: false) + if isSubmenu { + navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneTapped)) + } view.backgroundColor = .systemGroupedBackground @@ -150,6 +153,13 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: true) } + // MARK: - Actions + + @objc private func doneTapped() { + let context = AboutItemActionContext(viewController: self) + configuration.dismissBlock(context) + } + // MARK: - Constants enum Metrics { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 3799f49b6892..5994702703b7 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -26,7 +26,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { ], [ AboutItem(title: TextContent.legalAndMore, action: { [weak self] context in - context.showSubmenu(with: TextContent.legalAndMore, configuration: LegalAndMoreSubmenuConfiguration()) + context.showSubmenu(title: TextContent.legalAndMore, configuration: LegalAndMoreSubmenuConfiguration()) }), ], [ From dbad28c532f28ca3f13a8e500b41dfc3a2bcbf83 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 13:54:22 +0000 Subject: [PATCH 071/371] Unified About: Pass App Info into the about screen --- .../About/UnifiedAboutHeaderView.swift | 21 ++++++++++++------- .../About/UnifiedAboutViewController.swift | 21 ++++++++++--------- .../WordPressAboutScreenConfiguration.swift | 4 ++++ .../Me/Me Main/MeViewController.swift | 2 +- 4 files changed, 29 insertions(+), 19 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift index 37515e44ce78..c28867839e15 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift @@ -1,16 +1,21 @@ import Foundation import SwiftUI + +/// Defines the content of the header that appears on the top level about screen. +struct AboutScreenAppInfo { + /// The app's name + let name: String + /// The current build version of the app + let version: String + /// The app's icon + let icon: UIImage +} + final class UnifiedAboutHeaderView: UIView { // MARK: - Customization Support - struct AppInfo { - let icon: UIImage - let name: String - let version: String - } - struct Spacing { let betweenAppIconAndAppNameLabel: CGFloat let betweenAppNameLabelAndAppVersionLabel: CGFloat @@ -40,14 +45,14 @@ final class UnifiedAboutHeaderView: UIView { // MARK: - View Customization - private let appInfo: AppInfo + private let appInfo: AboutScreenAppInfo private let spacing: Spacing private let sizing: Sizing private let fonts: Fonts // MARK: - Initializers - init(appInfo: AppInfo, + init(appInfo: AboutScreenAppInfo, sizing: Sizing = defaultSizing, spacing: Spacing = defaultSpacing, fonts: Fonts) { diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 753984480810..f0e117e82aae 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,8 +1,8 @@ import UIKit -import WordPressShared class UnifiedAboutViewController: UIViewController, OrientationLimited { + private let appInfo: AboutScreenAppInfo? private let configuration: AboutScreenConfiguration private let isSubmenu: Bool @@ -41,14 +41,13 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return tableView }() - let headerView: UIView = { + lazy var headerView: UIView? = { + guard let appInfo = appInfo else { + return nil + } + // These customizations are temporarily here, but if this VC is moved into a framework we'll need to move them // into the main App. - let appInfo = UnifiedAboutHeaderView.AppInfo( - icon: UIImage(named: AppIcon.currentOrDefault.imageName) ?? UIImage(), - name: (Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String) ?? "", - version: Bundle.main.detailedVersionNumber() ?? "") - let fonts = UnifiedAboutHeaderView.Fonts( appName: WPStyleGuide.serifFontForTextStyle(.largeTitle, fontWeight: .semibold), appVersion: WPStyleGuide.tableviewTextFont()) @@ -99,12 +98,14 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle - static func controller(configuration: AboutScreenConfiguration) -> UIViewController { - let controller = UnifiedAboutViewController(configuration: configuration) + static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration) -> UIViewController { + let controller = UnifiedAboutViewController(appInfo: appInfo, + configuration: configuration) return UINavigationController(rootViewController: controller) } - init(configuration: AboutScreenConfiguration, isSubmenu: Bool = false) { + init(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, isSubmenu: Bool = false) { + self.appInfo = appInfo self.configuration = configuration self.isSubmenu = isSubmenu super.init(nibName: nil, bundle: nil) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 5994702703b7..3c7cc04ba7b9 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -11,6 +11,10 @@ struct WebViewPresenter { } class WordPressAboutScreenConfiguration: AboutScreenConfiguration { + static let appInfo: AboutScreenAppInfo = AboutScreenAppInfo(name: (Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String) ?? "", + version: Bundle.main.detailedVersionNumber() ?? "", + icon: UIImage(named: AppIcon.currentOrDefault.imageName) ?? UIImage()) + let sharePresenter: ShareAppContentPresenter let webViewPresenter = WebViewPresenter() diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index 525d78e16c17..f5af5712b102 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,7 +254,7 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController.controller(configuration: configuration) + let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, configuration: configuration) controller.modalPresentationStyle = .formSheet self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) From 3c73385b4c4510acfbd9c70fd8865d37b165fb26 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 15:00:50 +0000 Subject: [PATCH 072/371] Unified About: Allow apps to override fonts --- .../About/UnifiedAboutHeaderView.swift | 25 +++++++++++++------ .../About/UnifiedAboutViewController.swift | 18 ++++++------- .../WordPressAboutScreenConfiguration.swift | 9 ++++--- .../Me/Me Main/MeViewController.swift | 4 ++- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift index c28867839e15..bfed9551ec9f 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift @@ -12,6 +12,22 @@ struct AboutScreenAppInfo { let icon: UIImage } +struct AboutScreenFonts { + let appName: UIFont + let appVersion: UIFont + + static let defaultFonts: AboutScreenFonts = { + let fontDescriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .largeTitle) + let fontDescriptorWithDesign = fontDescriptor.withDesign(.serif) ?? fontDescriptor + let traits = [UIFontDescriptor.TraitKey.weight: UIFont.Weight.semibold] + let finalDescriptor = fontDescriptorWithDesign.addingAttributes([.traits: traits]) + + let font = UIFont(descriptor: finalDescriptor, size: finalDescriptor.pointSize) + return AboutScreenFonts(appName: font, + appVersion: .preferredFont(forTextStyle: .callout)) + }() +} + final class UnifiedAboutHeaderView: UIView { // MARK: - Customization Support @@ -27,11 +43,6 @@ final class UnifiedAboutHeaderView: UIView { let appIconCornerRadius: CGFloat } - struct Fonts { - let appName: UIFont - let appVersion: UIFont - } - // MARK: - Defaults public static let defaultSizing = Sizing( @@ -48,14 +59,14 @@ final class UnifiedAboutHeaderView: UIView { private let appInfo: AboutScreenAppInfo private let spacing: Spacing private let sizing: Sizing - private let fonts: Fonts + private let fonts: AboutScreenFonts // MARK: - Initializers init(appInfo: AboutScreenAppInfo, sizing: Sizing = defaultSizing, spacing: Spacing = defaultSpacing, - fonts: Fonts) { + fonts: AboutScreenFonts) { self.appInfo = appInfo self.sizing = sizing diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index f0e117e82aae..51e0477ef361 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -3,6 +3,8 @@ import UIKit class UnifiedAboutViewController: UIViewController, OrientationLimited { private let appInfo: AboutScreenAppInfo? + private let fonts: AboutScreenFonts? + private let configuration: AboutScreenConfiguration private let isSubmenu: Bool @@ -46,13 +48,9 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return nil } - // These customizations are temporarily here, but if this VC is moved into a framework we'll need to move them - // into the main App. - let fonts = UnifiedAboutHeaderView.Fonts( - appName: WPStyleGuide.serifFontForTextStyle(.largeTitle, fontWeight: .semibold), - appVersion: WPStyleGuide.tableviewTextFont()) + let headerFonts = fonts ?? AboutScreenFonts.defaultFonts - let headerView = UnifiedAboutHeaderView(appInfo: appInfo, fonts: fonts) + let headerView = UnifiedAboutHeaderView(appInfo: appInfo, fonts: headerFonts) // Setting the frame once is needed so that the table view header will show. // This seems to be a table view bug although I'm not entirely sure. @@ -98,14 +96,16 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle - static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration) -> UIViewController { + static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil) -> UIViewController { let controller = UnifiedAboutViewController(appInfo: appInfo, - configuration: configuration) + configuration: configuration, + fonts: fonts) return UINavigationController(rootViewController: controller) } - init(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, isSubmenu: Bool = false) { + init(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil, isSubmenu: Bool = false) { self.appInfo = appInfo + self.fonts = fonts self.configuration = configuration self.isSubmenu = isSubmenu super.init(nibName: nil, bundle: nil) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 3c7cc04ba7b9..afd78b09762b 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -11,9 +11,12 @@ struct WebViewPresenter { } class WordPressAboutScreenConfiguration: AboutScreenConfiguration { - static let appInfo: AboutScreenAppInfo = AboutScreenAppInfo(name: (Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String) ?? "", - version: Bundle.main.detailedVersionNumber() ?? "", - icon: UIImage(named: AppIcon.currentOrDefault.imageName) ?? UIImage()) + static let appInfo = AboutScreenAppInfo(name: (Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String) ?? "", + version: Bundle.main.detailedVersionNumber() ?? "", + icon: UIImage(named: AppIcon.currentOrDefault.imageName) ?? UIImage()) + + static let fonts = AboutScreenFonts(appName: WPStyleGuide.serifFontForTextStyle(.largeTitle, fontWeight: .semibold), + appVersion: WPStyleGuide.tableviewTextFont()) let sharePresenter: ShareAppContentPresenter let webViewPresenter = WebViewPresenter() diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index f5af5712b102..73b621cebf73 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,7 +254,9 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, configuration: configuration) + let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, + configuration: configuration, + fonts: WordPressAboutScreenConfiguration.fonts) controller.modalPresentationStyle = .formSheet self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) From 7044311f4ae4ca09d50c21a98024509ad1cfcde5 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 19 Nov 2021 15:07:03 +0000 Subject: [PATCH 073/371] Unified About: Adjust font creation --- .../Me/App Settings/About/UnifiedAboutHeaderView.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift index bfed9551ec9f..7b75af4bd869 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift @@ -1,5 +1,4 @@ import Foundation -import SwiftUI /// Defines the content of the header that appears on the top level about screen. @@ -17,12 +16,13 @@ struct AboutScreenFonts { let appVersion: UIFont static let defaultFonts: AboutScreenFonts = { + // Title is serif semibold large title let fontDescriptor = UIFontDescriptor.preferredFontDescriptor(withTextStyle: .largeTitle) - let fontDescriptorWithDesign = fontDescriptor.withDesign(.serif) ?? fontDescriptor + let serifFontDescriptor = fontDescriptor.withDesign(.serif) ?? fontDescriptor let traits = [UIFontDescriptor.TraitKey.weight: UIFont.Weight.semibold] - let finalDescriptor = fontDescriptorWithDesign.addingAttributes([.traits: traits]) + let descriptor = serifFontDescriptor.addingAttributes([.traits: traits]) - let font = UIFont(descriptor: finalDescriptor, size: finalDescriptor.pointSize) + let font = UIFont(descriptor: descriptor, size: descriptor.pointSize) return AboutScreenFonts(appName: font, appVersion: .preferredFont(forTextStyle: .callout)) }() From fcde9564b52b9eb597d542442cbee529afb241e9 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Fri, 19 Nov 2021 17:30:25 +0100 Subject: [PATCH 074/371] Improves the stats tracking for unified about. --- .../About/AboutScreenConfiguration.swift | 8 +++ .../About/AboutScreenTracker.swift | 58 +++++++++++++++++++ .../About/UnifiedAboutEvent.swift | 50 ---------------- .../About/UnifiedAboutViewController.swift | 12 +++- .../WordPressAboutScreenConfiguration.swift | 44 +++++++++++--- WordPress/WordPress.xcodeproj/project.pbxproj | 12 ++-- 6 files changed, 120 insertions(+), 64 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift delete mode 100644 WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 5bfad0fa075d..31aa6a5796d3 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -9,6 +9,14 @@ protocol AboutScreenConfiguration { /// A block that dismisses the about screen var dismissBlock: ((AboutItemActionContext) -> Void) { get } + + /// Called when the screen will be shown for customization purposes and event tracking. + /// + func willShow(viewController: UIViewController) + + /// Called when the screen will be hidden for customization purposes and event tracking. + /// + func willHide(viewController: UIViewController) } typealias AboutItemAction = ((AboutItemActionContext) -> Void) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift new file mode 100644 index 000000000000..f2e480c44795 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift @@ -0,0 +1,58 @@ +import Foundation + +class AboutScreenTracker { + enum Event: String { + case screenShown = "about_screen_shown" + case screenDismissed = "about_screen_dismissed" + case buttonPressed = "about_screen_button_tapped" + + enum Screen: String { + case main + case legalAndMore = "legal_and_more" + } + + enum Button: String, CaseIterable { + case dismiss + case rateUs = "rate_us" + case share + case twitter + case legal + case automatticFamily = "automattic_family" + case workWithUs = "work_with_us" + + case termsOfService = "terms_of_service" + case privacyPolicy = "privacy_policy" + case sourceCode = "source_code" + case acknowledgements + } + + enum PropertyName: String { + case screen + case button + } + } + + typealias TrackCallback = (String, _ properties: [String: Any]) -> Void + + private let track: TrackCallback + + init(track: @escaping TrackCallback = WPAnalytics.trackString) { + self.track = track + } + + private func track(_ event: Event, properties: [String: Any]) { + track(event.rawValue, properties) + } + + func buttonPressed(_ button: Event.Button) { + track(.buttonPressed, properties: [Event.PropertyName.button.rawValue: button.rawValue]) + } + + func screenShown(_ screen: Event.Screen) { + track(.screenShown, properties: [Event.PropertyName.screen.rawValue: screen.rawValue]) + } + + func screenDismissed(_ screen: Event.Screen) { + track(.screenDismissed, properties: [Event.PropertyName.screen.rawValue: screen.rawValue]) + } +} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift deleted file mode 100644 index 6b7d69cdf5ba..000000000000 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutEvent.swift +++ /dev/null @@ -1,50 +0,0 @@ -import Foundation - -public enum UnifiedAboutEvent { - case screenShown - case screenDismissed - case buttonPressed(button: Button) - - public enum Button: String, CaseIterable { - case dismiss - case rateUs = "rate_us" - case share - case twitter - case legal - case automatticFamily = "automattic_family" - case workWithUs = "work_with_us" - - // App buttons - case appDayone = "app_dayone" - case appJetpack = "app_jetpack" - case appPocketcasts = "app_pocketcasts" - case appSimplenote = "app_simplenote" - case appTumblr = "app_tumblr" - case appWoo = "app_woo" - case appWordpress = "app_wordpress" - } - - public static let buttonPropertyKey = "button" - - public var name: String { - switch self { - case .screenShown: - return "about_screen_shown" - case .screenDismissed: - return "about_screen_dismissed" - case .buttonPressed: - return "about_screen_button_tapped" - } - } - - public var properties: [String: String] { - switch self { - case .screenShown: - return [:] - case .screenDismissed: - return [:] - case .buttonPressed(let button): - return [UnifiedAboutEvent.buttonPropertyKey: button.rawValue] - } - } -} diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 753984480810..35f115cc4e9f 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -147,10 +147,20 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { } } + override func viewWillDisappear(_ animated: Bool) { + super.viewWillDisappear(animated) + + if isMovingFromParent || isBeingDismissedDirectlyOrByAncestor() { + configuration.willHide(viewController: self) + } + } + override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: true) + if isMovingToParent { + configuration.willShow(viewController: self) + } } // MARK: - Actions diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 5994702703b7..d2cf0f8104ed 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -1,5 +1,6 @@ import Foundation import UIKit +import WordPressShared struct WebViewPresenter { @@ -13,28 +14,35 @@ struct WebViewPresenter { class WordPressAboutScreenConfiguration: AboutScreenConfiguration { let sharePresenter: ShareAppContentPresenter let webViewPresenter = WebViewPresenter() + let tracker = AboutScreenTracker() lazy var sections: [[AboutItem]] = { [ [ AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in + self?.tracker.buttonPressed(.share) self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) }), AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in + self?.tracker.buttonPressed(.twitter) self?.webViewPresenter.present(for: Links.twitter, context: context) }), ], [ AboutItem(title: TextContent.legalAndMore, action: { [weak self] context in + self?.tracker.buttonPressed(.legal) context.showSubmenu(title: TextContent.legalAndMore, configuration: LegalAndMoreSubmenuConfiguration()) }), ], [ - AboutItem(title: TextContent.automatticFamily, hidesSeparator: true), + AboutItem(title: TextContent.automatticFamily, hidesSeparator: true, action: { [weak self] context in + self?.tracker.buttonPressed(.automatticFamily) + }), AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], [ AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, action: { [weak self] context in + self?.tracker.buttonPressed(.workWithUs) self?.webViewPresenter.present(for: Links.workWithUs, context: context) }), ] @@ -45,6 +53,14 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { context.viewController.presentingViewController?.dismiss(animated: true) } + func willShow(viewController: UIViewController) { + tracker.screenShown(.main) + } + + func willHide(viewController: UIViewController) { + tracker.screenDismissed(.main) + } + init(sharePresenter: ShareAppContentPresenter) { self.sharePresenter = sharePresenter } @@ -67,28 +83,42 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { class LegalAndMoreSubmenuConfiguration: AboutScreenConfiguration { let webViewPresenter = WebViewPresenter() + let tracker = AboutScreenTracker() lazy var sections: [[AboutItem]] = { [ [ - linkItem(title: Titles.termsOfService, link: Links.termsOfService), - linkItem(title: Titles.privacyPolicy, link: Links.privacyPolicy), - linkItem(title: Titles.sourceCode, link: Links.sourceCode), - linkItem(title: Titles.acknowledgements, link: Links.acknowledgements), + linkItem(title: Titles.termsOfService, link: Links.termsOfService, button: .termsOfService), + linkItem(title: Titles.privacyPolicy, link: Links.privacyPolicy, button: .privacyPolicy), + linkItem(title: Titles.sourceCode, link: Links.sourceCode, button: .sourceCode), + linkItem(title: Titles.acknowledgements, link: Links.acknowledgements, button: .acknowledgements), ] ] }() - func linkItem(title: String, link: URL) -> AboutItem { + private func linkItem(title: String, link: URL, button: AboutScreenTracker.Event.Button) -> AboutItem { AboutItem(title: title, accessoryType: .none, action: { [weak self] context in - self?.webViewPresenter.present(for: link, context: context) + self?.buttonPressed(link: link, context: context, button: button) }) } + private func buttonPressed(link: URL, context: AboutItemActionContext, button: AboutScreenTracker.Event.Button) { + tracker.buttonPressed(button) + webViewPresenter.present(for: link, context: context) + } + let dismissBlock: ((AboutItemActionContext) -> Void) = { context in context.viewController.presentingViewController?.dismiss(animated: true) } + func willShow(viewController: UIViewController) { + tracker.screenShown(.legalAndMore) + } + + func willHide(viewController: UIViewController) { + tracker.screenDismissed(.legalAndMore) + } + private enum Titles { static let termsOfService = NSLocalizedString("Terms of Service", comment: "Title of button that displays the App's terms of service") static let privacyPolicy = NSLocalizedString("Privacy Policy", comment: "Title of button that displays the App's privacy policy") diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 59ac72db15f2..fda592f52f2b 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2557,8 +2557,8 @@ F198FF5D256D4877001266EB /* HomeWidgetCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FA53E9B256571D800F4D9A2 /* HomeWidgetCache.swift */; }; F1A38F212678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; F1A38F222678C4DA00849843 /* BloggingRemindersFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */; }; - F1A75B9B2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */; }; - F1A75B9C2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */; }; + F1A75B9B2732EF3700784A70 /* AboutScreenTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* AboutScreenTracker.swift */; }; + F1A75B9C2732EF3700784A70 /* AboutScreenTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1A75B9A2732EF3700784A70 /* AboutScreenTracker.swift */; }; F1ACDF6B256D6C120005AE9B /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; F1ACDF7C256D6C290005AE9B /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; F1ADCAF7241FEF0C00F150D2 /* AtomicAuthenticationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */; }; @@ -7403,7 +7403,7 @@ F198FF7F256D498A001266EB /* WordPressIntentsRelease-Internal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Internal.entitlements"; sourceTree = ""; }; F198FFB1256D4AB2001266EB /* WordPressIntentsRelease-Alpha.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "WordPressIntentsRelease-Alpha.entitlements"; sourceTree = ""; }; F1A38F202678C4DA00849843 /* BloggingRemindersFlow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersFlow.swift; sourceTree = ""; }; - F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnifiedAboutEvent.swift; sourceTree = ""; }; + F1A75B9A2732EF3700784A70 /* AboutScreenTracker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AboutScreenTracker.swift; sourceTree = ""; }; F1ACDF4A256D6B2B0005AE9B /* WordPressIntents-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressIntents-Bridging-Header.h"; sourceTree = ""; }; F1ADCAF6241FEF0C00F150D2 /* AtomicAuthenticationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AtomicAuthenticationService.swift; sourceTree = ""; }; F1B1E7A224098FA100549E2A /* BlogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlogTests.swift; sourceTree = ""; }; @@ -9047,7 +9047,7 @@ FFC6ADD21B56F295002F3C84 /* AboutViewController.swift */, FFC6ADD31B56F295002F3C84 /* AboutViewController.xib */, 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */, - F1A75B9A2732EF3700784A70 /* UnifiedAboutEvent.swift */, + F1A75B9A2732EF3700784A70 /* AboutScreenTracker.swift */, 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */, F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */, 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */, @@ -18136,7 +18136,7 @@ E1F47D4D1FE0290C00C1D44E /* PluginListCell.swift in Sources */, 3F5C865D25C9EBEF00BABE64 /* HomeWidgetAllTimeData.swift in Sources */, D829C33B21B12EFE00B09F12 /* UIView+Borders.swift in Sources */, - F1A75B9B2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */, + F1A75B9B2732EF3700784A70 /* AboutScreenTracker.swift in Sources */, 5D42A3E0175E7452005CFF05 /* BasePost.m in Sources */, 17F7C24922770B68002E5C2E /* main.swift in Sources */, 9A4E939F2268D9B400E14823 /* UIViewController+NoResults.swift in Sources */, @@ -19473,7 +19473,7 @@ FABB21A92602FC2C00C8785C /* HomeWidgetData.swift in Sources */, FABB21AA2602FC2C00C8785C /* WPStyleGuide+Activity.swift in Sources */, FABB21AB2602FC2C00C8785C /* AllTimeWidgetStats.swift in Sources */, - F1A75B9C2732EF3700784A70 /* UnifiedAboutEvent.swift in Sources */, + F1A75B9C2732EF3700784A70 /* AboutScreenTracker.swift in Sources */, FABB21AC2602FC2C00C8785C /* GutenbergFilesAppMediaSource.swift in Sources */, FABB21AD2602FC2C00C8785C /* NoteBlockTextTableViewCell.swift in Sources */, FABB21AE2602FC2C00C8785C /* NotificationSettingStreamsViewController.swift in Sources */, From 8869054a3371f3bd68ee49ad461dcdd0c8828b9c Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Fri, 19 Nov 2021 11:00:29 -0700 Subject: [PATCH 075/371] Remove unused var. --- .../ViewRelated/Comments/CommentDetailViewController.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift index a28c1863e80c..0b8aa16c1c68 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentDetailViewController.swift @@ -235,8 +235,6 @@ private extension CommentDetailViewController { static let tableHorizontalInset: CGFloat = 20.0 static let tableBottomMargin: CGFloat = 40.0 static let replyIndicatorVerticalSpacing: CGFloat = 14.0 - - static let deleteButtonInsets = UIEdgeInsets(top: 4, left: 20, bottom: 4, right: 20) } /// Convenience computed variable for an inset setting that hides a cell's separator by pushing it off the edge of the screen. From f5c211140c5c581841011c583ba894d275719bfd Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:05:54 -0500 Subject: [PATCH 076/371] Add NSObject debounce helper method --- WordPress/Classes/Categories/NSObject+Helpers.h | 1 + WordPress/Classes/Categories/NSObject+Helpers.m | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/WordPress/Classes/Categories/NSObject+Helpers.h b/WordPress/Classes/Categories/NSObject+Helpers.h index 10df519e4a78..0fa81ebe6fc1 100644 --- a/WordPress/Classes/Categories/NSObject+Helpers.h +++ b/WordPress/Classes/Categories/NSObject+Helpers.h @@ -6,4 +6,5 @@ + (nonnull NSString *)classNameWithoutNamespaces; +- (void)debounce:(SEL)selector afterDelay:(NSTimeInterval)timeInterval; @end diff --git a/WordPress/Classes/Categories/NSObject+Helpers.m b/WordPress/Classes/Categories/NSObject+Helpers.m index bbb02b7e40f0..ca49efa20aea 100644 --- a/WordPress/Classes/Categories/NSObject+Helpers.m +++ b/WordPress/Classes/Categories/NSObject+Helpers.m @@ -11,4 +11,14 @@ + (NSString *)classNameWithoutNamespaces return [[NSStringFromClass(self) componentsSeparatedByString:@"."] lastObject]; } +- (void)debounce:(SEL)selector afterDelay:(NSTimeInterval)timeInterval +{ + __weak __typeof(self) weakSelf = self; + [NSObject cancelPreviousPerformRequestsWithTarget:weakSelf + selector:selector + object:nil]; + [weakSelf performSelector:selector + withObject:nil + afterDelay:timeInterval]; +} @end From 534d1fa33d4874394811888d41ca641baa968b0d Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:06:10 -0500 Subject: [PATCH 077/371] Add site switching events --- .../Utility/Analytics/WPAnalyticsEvent.swift | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index 25a27ee7f52b..8372549d3969 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -215,6 +215,15 @@ import Foundation case mySiteNoSitesViewActionTapped case mySiteNoSitesViewHidden + // Site Switcher + case mySiteSiteSwitcherTapped + case siteSwitcherDisplayed + case siteSwitcherDismissed + case siteSwitcherToggleEditTapped + case siteSwitcherAddSiteTapped + case siteSwitcherSearchPerformed + case siteSwitcherToggleBlogVisible + /// A String that represents the event var value: String { switch self { @@ -587,7 +596,24 @@ import Foundation return "my_site_no_sites_view_action_tapped" case .mySiteNoSitesViewHidden: return "my_site_no_sites_view_hidden" - } + + // Site Switcher + case .mySiteSiteSwitcherTapped: + return "my_site_site_switcher_tapped" + case .siteSwitcherDisplayed: + return "site_switcher_displayed" + case .siteSwitcherDismissed: + return "site_switcher_dismissed" + case .siteSwitcherToggleEditTapped: + return "site_switcher_toggled_edit_tapped" + case .siteSwitcherAddSiteTapped: + return "site_switcher_add_site_tapped" + case .siteSwitcherSearchPerformed: + return "site_switcher_search_performed" + case .siteSwitcherToggleBlogVisible: + return "site_switcher_toggle_blog_visible" + + } // END OF SWITCH } /** From 04200239fca64b1e2a22cede043415df41d4a946 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:06:29 -0500 Subject: [PATCH 078/371] Track when the site switcher button is tapped from my site --- .../ViewRelated/Blog/Blog Details/BlogDetailsViewController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index b308af4a11d5..20fa75d774ef 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -1155,6 +1155,8 @@ - (void)siteSwitcherTapped UINavigationController* navigationController = [[UINavigationController alloc] initWithRootViewController:blogListViewController]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentViewController:navigationController animated:true completion:nil]; + + [WPAnalytics trackEvent:WPAnalyticsEventMySiteSiteSwitcherTapped]; } - (void)visitSiteTapped From c4ab6425011abf44ebc053b4ec8de5e07ac3a85a Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:06:52 -0500 Subject: [PATCH 079/371] Track when the site switcher is displayed --- .../Classes/ViewRelated/Blog/Blog List/BlogListViewController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index b4d07681d8a6..3057ee810d55 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -154,6 +154,8 @@ - (void)viewDidLoad [self registerForAccountChangeNotification]; [self registerForPostSignUpNotifications]; + + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherDisplayed]; } - (void)viewWillAppear:(BOOL)animated From d5f636ee2288f29b685f2375ce988b4765d638b4 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:06:58 -0500 Subject: [PATCH 080/371] Track when the site switcher is dismissed --- .../Classes/ViewRelated/Blog/Blog List/BlogListViewController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index 3057ee810d55..9dd6413b4511 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -188,6 +188,8 @@ - (void)viewWillDisappear:(BOOL)animated [self.searchBar resignFirstResponder]; } self.visible = NO; + + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherDismissed]; } - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator From 215860552d10fb6ec08217e1a44e358a21f43bbd Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:07:21 -0500 Subject: [PATCH 081/371] Track when a search is performed on the site switcher --- .../ViewRelated/Blog/Blog List/BlogListViewController.m | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index 9dd6413b4511..546d3e38554f 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -800,6 +800,8 @@ - (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:( - (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { self.dataSource.searchQuery = searchText; + + [self debounce:@selector(trackSearchPerformed) afterDelay:0.5f]; } - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar @@ -808,6 +810,11 @@ - (void)searchBarTextDidBeginEditing:(UISearchBar *)searchBar [searchBar setShowsCancelButton:YES animated:YES]; } +- (void)trackSearchPerformed +{ + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherSearchPerformed]; +} + - (void)searchBarTextDidEndEditing:(UISearchBar *)searchBar { self.dataSource.searching = NO; From 678f18f3eaaf74e1b15e3e734d2f0d0dd5a30b32 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:07:44 -0500 Subject: [PATCH 082/371] Track when the site switcher edit / done button is tapped --- .../Classes/ViewRelated/Blog/Blog List/BlogListViewController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index 546d3e38554f..db33f55402a3 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -863,6 +863,8 @@ - (void)setEditing:(BOOL)editing animated:(BOOL)animated [self updateViewsForCurrentSiteCount]; [self updateSearchVisibility]; } + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherToggleEditTapped properties: @{ @"state": editing ? @"edit" : @"done"}]; + } - (BOOL)shouldShowAddSiteButton From 51e88f57276f3fd9d2a3477ba3a5936ab2927105 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:08:09 -0500 Subject: [PATCH 083/371] Track when a blog is toggled visible / hidden on the site switcher --- .../ViewRelated/Blog/Blog List/BlogListViewController.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index db33f55402a3..9d0ba0a1c9c2 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -963,6 +963,9 @@ - (void)setVisible:(BOOL)visible forBlog:(Blog *)blog } AccountService *accountService = [[AccountService alloc] initWithManagedObjectContext:[[ContextManager sharedInstance] mainContext]]; [accountService setVisibility:visible forBlogs:@[blog]]; + + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherToggleBlogVisible properties:@{ @"visible": @(visible)} blog:blog]; + } #pragma mark - Data Listener From e9bb5fe0aed03c791eaa8fc74c3d56e241c0f415 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:08:19 -0500 Subject: [PATCH 084/371] Track when the site switcher add site button is tapped --- .../ViewRelated/Blog/Blog List/BlogListViewController.m | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m index 9d0ba0a1c9c2..7ed90e295545 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog List/BlogListViewController.m @@ -1013,6 +1013,9 @@ - (void)showAddSiteAlertFrom:(id)source [self presentViewController:alertController animated:YES completion:nil]; self.addSiteAlertController = alertController; + + [WPAnalytics trackEvent:WPAnalyticsEventSiteSwitcherAddSiteTapped]; + } } From 756058cb2c76836c5ad8c177632a4012b285dacd Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 15:10:50 -0500 Subject: [PATCH 085/371] Change toggled to toggle in the site switcher event --- WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index 8372549d3969..6986dd7dd47e 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -605,7 +605,7 @@ import Foundation case .siteSwitcherDismissed: return "site_switcher_dismissed" case .siteSwitcherToggleEditTapped: - return "site_switcher_toggled_edit_tapped" + return "site_switcher_toggle_edit_tapped" case .siteSwitcherAddSiteTapped: return "site_switcher_add_site_tapped" case .siteSwitcherSearchPerformed: From 8ebd0eb4f0bc264557a5482e683f90ff9cea87be Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 16:15:08 -0500 Subject: [PATCH 086/371] Remove a duplicate People opened event --- .../Blog/Blog Details/BlogDetailsViewController.m | 1 - .../Classes/ViewRelated/People/PeopleViewController.swift | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m index b308af4a11d5..8bb47f1419a1 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController.m @@ -1715,7 +1715,6 @@ - (void)showMediaLibraryFromSource:(BlogDetailsNavigationSource)source - (void)showPeople { - [WPAppAnalytics track:WPAnalyticsStatOpenedPeople withBlog:self.blog]; PeopleViewController *controller = [PeopleViewController controllerWithBlog:self.blog]; controller.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever; [self showDetailViewController:controller sender:self]; diff --git a/WordPress/Classes/ViewRelated/People/PeopleViewController.swift b/WordPress/Classes/ViewRelated/People/PeopleViewController.swift index a23a70665765..e052ef98ea50 100644 --- a/WordPress/Classes/ViewRelated/People/PeopleViewController.swift +++ b/WordPress/Classes/ViewRelated/People/PeopleViewController.swift @@ -169,7 +169,12 @@ class PeopleViewController: UITableViewController, UIViewControllerRestoration { super.viewWillAppear(animated) tableView.deselectSelectedRowWithAnimation(true) refreshNoResultsView() - WPAnalytics.track(.openedPeople) + + guard let blog = blog else { + return + } + + WPAppAnalytics.track(.openedPeople, with: blog) } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { From 9316132119c12094e3d0c14e21169d9e0a1451c4 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Fri, 19 Nov 2021 16:38:01 -0500 Subject: [PATCH 087/371] Only track the saved list accessed once --- .../Classes/ViewRelated/Reader/ReaderStreamViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderStreamViewController.swift b/WordPress/Classes/ViewRelated/Reader/ReaderStreamViewController.swift index 3c7c3aadc75a..ade843f6240a 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderStreamViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderStreamViewController.swift @@ -170,7 +170,7 @@ import WordPressFlux var contentType: ReaderContentType = .topic { didSet { - if contentType == .saved { + if oldValue != .saved, contentType == .saved { updateContent(synchronize: false) trackSavedListAccessed() } From 18a68acac870205db3bc758c089022b2a7d5c390 Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Fri, 19 Nov 2021 17:14:50 -0700 Subject: [PATCH 088/371] Surface totalComments from WPKit. Add syncHierarchicalCommentsForPost method variant to specify the number of comments to fetch. --- Podfile | 4 +- Podfile.lock | 15 ++++--- WordPress/Classes/Services/CommentService.h | 10 ++++- WordPress/Classes/Services/CommentService.m | 39 ++++++++++++++++--- .../Reader/ReaderCommentsViewController.m | 4 +- 5 files changed, 56 insertions(+), 16 deletions(-) diff --git a/Podfile b/Podfile index 18d09a99e976..12219acc0339 100644 --- a/Podfile +++ b/Podfile @@ -47,9 +47,9 @@ def wordpress_ui end def wordpress_kit - pod 'WordPressKit', '~> 4.43.0' + # pod 'WordPressKit', '~> 4.43.0' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' - # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' + pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => 'feature/17511-return_comments_count' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' # pod 'WordPressKit', :path => '../WordPressKit-iOS' end diff --git a/Podfile.lock b/Podfile.lock index 12eab5f0ff27..9adaa958cc2b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -452,7 +452,7 @@ PODS: - WordPressKit (~> 4.18-beta) - WordPressShared (~> 1.12-beta) - WordPressUI (~> 1.7-beta) - - WordPressKit (4.43.0): + - WordPressKit (4.44.0-beta.1): - Alamofire (~> 4.8.0) - CocoaLumberjack (~> 3.4) - NSObject-SafeExpectations (= 0.0.4) @@ -553,7 +553,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.5) - WordPressAuthenticator (~> 1.42.1) - - WordPressKit (~> 4.43.0) + - WordPressKit (from `https://github.com/wordpress-mobile/WordPressKit-iOS.git`, branch `feature/17511-return_comments_count`) - WordPressMocks (~> 0.0.15) - WordPressShared (~> 1.16.2) - WordPressUI (~> 1.12.2) @@ -565,7 +565,6 @@ DEPENDENCIES: SPEC REPOS: https://github.com/wordpress-mobile/cocoapods-specs.git: - WordPressAuthenticator - - WordPressKit - WordPressUI trunk: - 1PasswordExtension @@ -711,6 +710,9 @@ EXTERNAL SOURCES: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.66.0 + WordPressKit: + :branch: feature/17511-return_comments_count + :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git Yoga: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.66.0/third-party-podspecs/Yoga.podspec.json @@ -726,6 +728,9 @@ CHECKOUT OPTIONS: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.66.0 + WordPressKit: + :commit: 2dc43ee25c91886ae7a1959d56c2779493006e03 + :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -810,7 +815,7 @@ SPEC CHECKSUMS: WordPress-Aztec-iOS: af36d9cb86a0109b568f516874870e2801ba1bd9 WordPress-Editor-iOS: 446be349b94707c1a82a83d525b86dbcf18cf2c7 WordPressAuthenticator: 111793c08fa8e9d9a72aed5b33a094c91ff4fd82 - WordPressKit: ea1b285bae9156e387ddcbe2a7f919c0783a9b91 + WordPressKit: 74fcc8ab2f338997d015cb9e0fac95cbf8484f19 WordPressMocks: 6b52b0764d9939408151367dd9c6e8a910877f4d WordPressShared: 6f4d949aa3ec8c3b9c24f5aa601473f087badd24 WordPressUI: c573f4b5c2e5d0ffcebe69ecf86ae75ab7b6ff4d @@ -826,6 +831,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 05f1d233304eca44dd7b86f86e966d786c29c86f +PODFILE CHECKSUM: cfe0ee270060185f1f0c15ee8cfb65d86be841cd COCOAPODS: 1.10.1 diff --git a/WordPress/Classes/Services/CommentService.h b/WordPress/Classes/Services/CommentService.h index 1fbda41a1c76..9ce6da001af3 100644 --- a/WordPress/Classes/Services/CommentService.h +++ b/WordPress/Classes/Services/CommentService.h @@ -95,10 +95,16 @@ extern NSUInteger const WPTopLevelHierarchicalCommentsPerPage; success:(void (^)(void))success failure:(void (^)(NSError *error))failure; -// Sync a list of comments sorted by hierarchy +// Sync a list of comments sorted by hierarchy, fetched by page number. - (void)syncHierarchicalCommentsForPost:(ReaderPost *)post page:(NSUInteger)page - success:(void (^)(NSInteger count, BOOL hasMore))success + success:(void (^)(BOOL hasMore, NSNumber *totalComments))success + failure:(void (^)(NSError *error))failure; + +// Sync a list of comments sorted by hierarchy, restricted by the specified number of _top level_ comments. +- (void)syncHierarchicalCommentsForPost:(ReaderPost *)post + numberTopLevelComments:(NSUInteger)number + success:(void (^)(BOOL hasMore, NSNumber *totalComments))success failure:(void (^)(NSError *error))failure; // Counts and returns the number of full pages of hierarchcial comments synced for a post. diff --git a/WordPress/Classes/Services/CommentService.m b/WordPress/Classes/Services/CommentService.m index 8c36f925aa39..4e02359d9b60 100644 --- a/WordPress/Classes/Services/CommentService.m +++ b/WordPress/Classes/Services/CommentService.m @@ -512,18 +512,47 @@ - (void)deleteComment:(Comment *)comment - (void)syncHierarchicalCommentsForPost:(ReaderPost *)post page:(NSUInteger)page - success:(void (^)(NSInteger count, BOOL hasMore))success + success:(void (^)(BOOL hasMore, NSNumber *totalComments))success + failure:(void (^)(NSError *error))failure +{ + [self syncHierarchicalCommentsForPost:post + page:page + numberTopLevelComments:WPTopLevelHierarchicalCommentsPerPage + success:success + failure:failure]; +} + +- (void)syncHierarchicalCommentsForPost:(ReaderPost *)post + number:(NSUInteger)number + success:(void (^)(BOOL hasMore, NSNumber *totalComments))success + failure:(void (^)(NSError *error))failure +{ + [self syncHierarchicalCommentsForPost:post + page:1 + numberTopLevelComments:number + success:success + failure:failure]; +} + +- (void)syncHierarchicalCommentsForPost:(ReaderPost *)post + page:(NSUInteger)page + numberTopLevelComments:(NSUInteger)number + success:(void (^)(BOOL hasMore, NSNumber *totalComments))success failure:(void (^)(NSError *error))failure { NSManagedObjectID *postObjectID = post.objectID; NSNumber *siteID = post.siteID; NSNumber *postID = post.postID; + + NSUInteger commentsPerPage = number ?: WPTopLevelHierarchicalCommentsPerPage; + NSUInteger pageNumber = page ?: 1; + [self.managedObjectContext performBlock:^{ CommentServiceRemoteREST *service = [self restRemoteForSite:siteID]; [service syncHierarchicalCommentsForPost:postID - page:page - number:WPTopLevelHierarchicalCommentsPerPage - success:^(NSArray *comments) { + page:pageNumber + number:commentsPerPage + success:^(NSArray *comments, NSNumber *totalComments) { [self.managedObjectContext performBlock:^{ NSError *error; ReaderPost *aPost = (ReaderPost *)[self.managedObjectContext existingObjectWithID:postObjectID error:&error]; @@ -554,7 +583,7 @@ - (void)syncHierarchicalCommentsForPost:(ReaderPost *)post } dispatch_async(dispatch_get_main_queue(), ^{ - success([comments count], hasMore); + success(hasMore, totalComments); }); }]; }]; diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index ba5c4efc8c65..e546e2672563 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -978,7 +978,7 @@ - (void)syncHelper:(WPContentSyncHelper *)syncHelper syncContentWithUserInteract { self.failedToFetchComments = NO; CommentService *service = [[CommentService alloc] initWithManagedObjectContext:[[ContextManager sharedInstance] newDerivedContext]]; - [service syncHierarchicalCommentsForPost:self.post page:1 success:^(NSInteger count, BOOL hasMore) { + [service syncHierarchicalCommentsForPost:self.post page:1 success:^(BOOL hasMore, NSNumber *totalComments) { if (success) { success(hasMore); } @@ -993,7 +993,7 @@ - (void)syncHelper:(WPContentSyncHelper *)syncHelper syncMoreWithSuccess:(void ( CommentService *service = [[CommentService alloc] initWithManagedObjectContext:[[ContextManager sharedInstance] newDerivedContext]]; NSInteger page = [service numberOfHierarchicalPagesSyncedforPost:self.post] + 1; - [service syncHierarchicalCommentsForPost:self.post page:page success:^(NSInteger count, BOOL hasMore) { + [service syncHierarchicalCommentsForPost:self.post page:page success:^(BOOL hasMore, NSNumber *totalComments) { if (success) { success(hasMore); } From 3de8d1b1a3c281fe0cc5c1c7342e778bd31ddf95 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Mon, 22 Nov 2021 20:15:18 +0700 Subject: [PATCH 089/371] Show disclosure when reader comments allow pushing detail --- .../Reader/ReaderCommentsViewController.m | 12 ------------ .../Reader/ReaderCommentsViewController.swift | 14 +++++++++++++- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index ba5c4efc8c65..beae76b24b13 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -1483,18 +1483,6 @@ - (void)handleNotificationsButtonTappedWithUndo:(BOOL)canUndo completion:(void ( }]; } -- (void)handleHeaderTapped -{ - if (!self.allowsPushingPostDetails) { - return; - } - - // Note: Let's manually hide the comments button, in order to prevent recursion in the flow - ReaderDetailViewController *controller = [ReaderDetailViewController controllerWithPost:self.post]; - controller.shouldHideComments = YES; - [self.navigationController pushFullscreenViewController:controller animated:YES]; -} - #pragma mark - UITextViewDelegate methods diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift index cf92b1f6c01e..3aa2611b3e21 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift @@ -44,11 +44,23 @@ import UIKit let cell = CommentHeaderTableViewCell() cell.backgroundColor = .systemBackground - cell.configure(for: .thread, subtitle: post.titleForDisplay(), showsDisclosureIndicator: false) + cell.configure(for: .thread, subtitle: post.titleForDisplay(), showsDisclosureIndicator: allowsPushingPostDetails) + cell.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleHeaderTapped))) // the table view does not render separators for the section header views, so we need to create one. cell.contentView.addBottomBorder(withColor: .separator, leadingMargin: tableView.separatorInset.left) return cell } + + func handleHeaderTapped() { + guard let post = post, + allowsPushingPostDetails else { + return + } + + let controller = ReaderDetailViewController.controllerWithPost(post) + controller.shouldHideComments = true + navigationController?.pushFullscreenViewController(controller, animated: true) + } } From b74663c485492eda25ba5c0e2af4e2f546ff5b22 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Mon, 22 Nov 2021 20:24:44 +0700 Subject: [PATCH 090/371] Preserve previous code comment --- .../ViewRelated/Reader/ReaderCommentsViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift index 3aa2611b3e21..1a00029e9700 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift @@ -59,6 +59,7 @@ import UIKit return } + // Note: Let's manually hide the comments button, in order to prevent recursion in the flow let controller = ReaderDetailViewController.controllerWithPost(post) controller.shouldHideComments = true navigationController?.pushFullscreenViewController(controller, animated: true) From 736f4c8ff1df6d832c83bf4744b15dba06e7e60d Mon Sep 17 00:00:00 2001 From: James Frost Date: Mon, 22 Nov 2021 14:49:50 +0000 Subject: [PATCH 091/371] Unified About: Remove navigation controller convenience method --- .../About/UnifiedAboutViewController.swift | 7 ------- .../ViewRelated/Me/Me Main/MeViewController.swift | 11 ++++++----- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 51e0477ef361..582ec56f1cab 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -96,13 +96,6 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { // MARK: - View lifecycle - static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil) -> UIViewController { - let controller = UnifiedAboutViewController(appInfo: appInfo, - configuration: configuration, - fonts: fonts) - return UINavigationController(rootViewController: controller) - } - init(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil, isSubmenu: Bool = false) { self.appInfo = appInfo self.fonts = fonts diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index 73b621cebf73..0c88a2b96dba 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,11 +254,12 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, - configuration: configuration, - fonts: WordPressAboutScreenConfiguration.fonts) - controller.modalPresentationStyle = .formSheet - self.present(controller, animated: true) { + let controller = UnifiedAboutViewController(appInfo: WordPressAboutScreenConfiguration.appInfo, + configuration: configuration, + fonts: WordPressAboutScreenConfiguration.fonts) + let navigationController = UINavigationController(rootViewController: controller) + navigationController.modalPresentationStyle = .formSheet + self.present(navigationController, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) } } From bcfedc349a1d7723211b06bf8027e51bc00f9d4f Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:12:31 -0500 Subject: [PATCH 092/371] Add tracking items for reader manage and filter --- .../Utility/Analytics/WPAnalyticsEvent.swift | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index 6986dd7dd47e..f4bfa8da5211 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -224,6 +224,16 @@ import Foundation case siteSwitcherSearchPerformed case siteSwitcherToggleBlogVisible + // Reader: Filter Sheet + case readerFilterSheetDisplayed + case readerFilterSheetDismissed + case readerFilterSheetItemSelected + case readerFilterSheetCleared + + // Reader: Manage + case readerManageViewDisplayed + case readerManageViewDismissed + /// A String that represents the event var value: String { switch self { @@ -613,6 +623,18 @@ import Foundation case .siteSwitcherToggleBlogVisible: return "site_switcher_toggle_blog_visible" + case .readerFilterSheetDisplayed: + return "reader_filter_sheet_displayed" + case .readerFilterSheetDismissed: + return "reader_filter_sheet_dismissed" + case .readerFilterSheetItemSelected: + return "reader_filter_sheet_item_selected" + case .readerFilterSheetCleared: + return "reader_filter_sheet_cleared" + case .readerManageViewDisplayed: + return "reader_manage_view_displayed" + case .readerManageViewDismissed: + return "reader_manage_view_dismissed" } // END OF SWITCH } From 12312dd17e20a81a84f3482bd70b23376cd7557f Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:14:07 -0500 Subject: [PATCH 093/371] Add reader filter dismiss tracking --- .../ViewRelated/Reader/Filter/FilterSheetViewController.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Reader/Filter/FilterSheetViewController.swift b/WordPress/Classes/ViewRelated/Reader/Filter/FilterSheetViewController.swift index be60e427e575..4f4833dafcb9 100644 --- a/WordPress/Classes/ViewRelated/Reader/Filter/FilterSheetViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/Filter/FilterSheetViewController.swift @@ -26,6 +26,10 @@ class FilterSheetViewController: UIViewController { } extension FilterSheetViewController: DrawerPresentable { + func handleDismiss() { + WPAnalytics.track(.readerFilterSheetDismissed) + } + var scrollableView: UIScrollView? { return (view as? FilterSheetView)?.tableView } From 55b70652edc613c2905e98666fa6442f332af5d3 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:16:46 -0500 Subject: [PATCH 094/371] Add reader filter displayed/cleared/selected tracking --- .../Reader/Tab Navigation/ReaderTabViewModel.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewModel.swift b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewModel.swift index f7ce467c958a..3f9a826863b7 100644 --- a/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewModel.swift +++ b/WordPress/Classes/ViewRelated/Reader/Tab Navigation/ReaderTabViewModel.swift @@ -123,6 +123,8 @@ extension ReaderTabViewModel { let bottomSheet = BottomSheetViewController(childViewController: viewController) bottomSheet.additionalSafeAreaInsetsRegular = UIEdgeInsets(top: 20, left: 0, bottom: 0, right: 0) bottomSheet.show(from: from, sourceView: sourceView, arrowDirections: .up) + + WPAnalytics.track(.readerFilterSheetDisplayed) } func presentManage(from: UIViewController) { @@ -139,12 +141,16 @@ extension ReaderTabViewModel { } func resetFilter(selectedItem: FilterTabBarItem) { + WPAnalytics.track(.readerFilterSheetCleared) if let content = (selectedItem as? ReaderTabItem)?.content { setContent?(content) } } func setFilterContent(topic: ReaderAbstractTopic) { + let type = ((topic as? ReaderSiteTopic) != nil) ? "site" : "topic" + WPAnalytics.track(.readerFilterSheetItemSelected, properties: ["type": type]) + setContent?(ReaderContent(topic: topic)) } From 6d809c5a7fb3331eddab4845090a15fcb455c226 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:17:15 -0500 Subject: [PATCH 095/371] Add source to followTagNamed method --- WordPress/Classes/Services/ReaderTopicService.h | 5 ++++- WordPress/Classes/Services/ReaderTopicService.m | 7 +++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/Services/ReaderTopicService.h b/WordPress/Classes/Services/ReaderTopicService.h index d082d88c1e34..0208529fcad6 100644 --- a/WordPress/Classes/Services/ReaderTopicService.h +++ b/WordPress/Classes/Services/ReaderTopicService.h @@ -113,7 +113,10 @@ extern NSString * const ReaderTopicFreshlyPressedPathCommponent; @param success block called on a successful fetch. @param failure block called if there is any error. `error` can be any underlying network error. */ -- (void)followTagNamed:(NSString *)tagName withSuccess:(void (^)(void))success failure:(void (^)(NSError *error))failure; +- (void)followTagNamed:(NSString *)tagName + withSuccess:(void (^)(void))success + failure:(void (^)(NSError *error))failure + source:(NSString *)source; /** Follow the tag with the specified slug diff --git a/WordPress/Classes/Services/ReaderTopicService.m b/WordPress/Classes/Services/ReaderTopicService.m index e5eaba0bdff1..e5fae98498d2 100644 --- a/WordPress/Classes/Services/ReaderTopicService.m +++ b/WordPress/Classes/Services/ReaderTopicService.m @@ -354,14 +354,17 @@ - (void)unfollowTag:(ReaderTagTopic *)topic withSuccess:(void (^)(void))success }]; } -- (void)followTagNamed:(NSString *)topicName withSuccess:(void (^)(void))success failure:(void (^)(NSError *error))failure +- (void)followTagNamed:(NSString *)topicName + withSuccess:(void (^)(void))success + failure:(void (^)(NSError *error))failure + source:(NSString *)source { topicName = [[topicName lowercaseString] trim]; ReaderTopicServiceRemote *remoteService = [[ReaderTopicServiceRemote alloc] initWithWordPressComRestApi:[self apiForRequest]]; [remoteService followTopicNamed:topicName withSuccess:^(NSNumber *topicID) { [self fetchReaderMenuWithSuccess:^{ - NSDictionary *properties = @{@"tag":topicName}; + NSDictionary *properties = @{@"tag":topicName, @"source":source}; [WPAnalytics trackReaderStat:WPAnalyticsStatReaderTagFollowed properties:properties]; [self selectTopicWithID:topicID]; if (success) { From 405c6b1ea0d60cf0b2c822d236546242bfb68539 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:17:28 -0500 Subject: [PATCH 096/371] Pass source to the followTagNamed from the reader manage view --- .../ViewRelated/Reader/Manage/ReaderTagsTableViewModel.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Reader/Manage/ReaderTagsTableViewModel.swift b/WordPress/Classes/ViewRelated/Reader/Manage/ReaderTagsTableViewModel.swift index c196dbf8c653..5b77b721d4c0 100644 --- a/WordPress/Classes/ViewRelated/Reader/Manage/ReaderTagsTableViewModel.swift +++ b/WordPress/Classes/ViewRelated/Reader/Manage/ReaderTagsTableViewModel.swift @@ -179,7 +179,7 @@ extension ReaderTagsTableViewModel { let alert = UIAlertController(title: title, message: message, preferredStyle: .alert) alert.addCancelActionWithTitle(NSLocalizedString("OK", comment: "Button title. An acknowledgement of the message displayed in a prompt.")) alert.presentFromRootViewController() - }) + }, source: "manage") } /// Tells the ReaderTopicService to unfollow the specified topic. From e543b164ef0821b08d2110aaecead05bce87df12 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 12:17:38 -0500 Subject: [PATCH 097/371] Add reader manage display/dismissed trackign --- .../ViewRelated/Reader/Manage/ReaderManageScenePresenter.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Reader/Manage/ReaderManageScenePresenter.swift b/WordPress/Classes/ViewRelated/Reader/Manage/ReaderManageScenePresenter.swift index 1212b9129d3d..a4661a609dba 100644 --- a/WordPress/Classes/ViewRelated/Reader/Manage/ReaderManageScenePresenter.swift +++ b/WordPress/Classes/ViewRelated/Reader/Manage/ReaderManageScenePresenter.swift @@ -52,6 +52,8 @@ class ReaderManageScenePresenter: ScenePresenter { let navigationController = makeNavigationController() presentedViewController = navigationController viewController.present(navigationController, animated: true, completion: nil) + + WPAnalytics.track(.readerManageViewDisplayed) } } @@ -64,6 +66,7 @@ private extension ReaderManageScenePresenter { let tabbedViewController = TabbedViewController(items: tabbedItems, onDismiss: { self.delegate?.didDismiss(presenter: self) NotificationCenter.default.post(name: .readerManageControllerWasDismissed, object: self) + WPAnalytics.track(.readerManageViewDismissed) }) tabbedViewController.title = NSLocalizedString("Manage", comment: "Title for the Reader Manage screen.") if let section = selectedSection, let firstSelection = sections.firstIndex(of: section) { From 4229afe20df8e802ec0cc98174c95037ba2de8bc Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 19 Nov 2021 17:54:49 +0100 Subject: [PATCH 098/371] Run Scripts/localize.py to reduce diff from migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In order to ensure that the new action will result in the same output as the old one, I’m running the old script now and commit the changes, and will then run the new lane invoking the new action later and check that the diff on generated strings file is completely empty, or fix it if not. --- .../Resources/en.lproj/Localizable.strings | Bin 856116 -> 858636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 05c0a13ad3ceb99d1eaf3edb026f28a1d6881221..fbd7d2cd2142868d04cff6dff91be1919e2d1e17 100644 GIT binary patch delta 1229 zcmZ`(T}TvB6ux)ocV}kTU1zs-H_KTQ3sEzW3evzLi&Dxm0ujnwD{FPlwIrgShsu!X z$JzFX5$Hn@5&bF5OT-pYJqT`Te?-t?R1YD&^d{7q$=0%s;au*Vdw#xi?sx9UVEMU` z@;jsbFp(4kkVvvFU3(xx`+g?its))xEhbT-ktWhi4v=;d(Nq0iy?0z0e$!v@819tN z>{+kUNn192EMs!udQkGXBczM$BQ2!U^2bZQfH`|Kjiu2MskZCGm7R__%)ly9>%bH5oZ`SFPHP+{6e0GB8DpPM3!S~P^V@i)fDpJhaejy8pH?kJ6(syL7j~^;szIv|q@LIo4uv;jTZEe` z+#6=*P{p363Otmhps^+->@R~sFOv_spM^mDB+u&36wh@c(k@7S61{NqD({2@CnMa; zf>NT9BC?c7*qW`T4Fbh`!dsYa*&licCOH+ptq}5!WK3961*>c5JpDs2qDl#Dd{kh; z^#T{q81JE_dP=B-X@$Dt-#LYr0==TBAifrgjj5Ny@<;!|go^ie5wzzl3xSyUi_CED z6_wz4t|B^260{;fY%PgG9z(rZhf&dlh-*>lFdfr)D^W zrmu_&+83_OsP7jGBN=)fO!pcSMv+H{Fmkiiux9)VAt6&`%zSYEU`6AUV4t@wLy*5_ z+w68H@;?g4Vxq5SpuuhoG)PlL8T_EwNfk#u65kvq%MmW^R8;-e4Y8;1v}E+1mJ^TW xJPYPyV$GTVKl6y0gX`D@-ps?gY`vmp&7I((URnjo4k|*;YF;v88mkvDxB!|9K1&6*=2DiRc2euQJf@}vAm!N6~2A5!H2Mo6kX$M9y zmk?wJ1eXvy2OyJBu>`j|ng=97w^G~(EW(p8e-xKcga;hA;-3g6Z?}#Q2_RFJVhI+9 mJYxyBJYx#jDu;@W3b%@m3(CTm@C*hxm;5#h3b$-h44}tcYefnG From b687735ba8a92babb8a6d34d897c4fa69a297d55 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 19 Nov 2021 17:54:36 +0100 Subject: [PATCH 099/371] Point to branch in release-toolkit --- .bundle/config | 1 + Gemfile.lock | 38 ++++++++++++++++++++++---------------- fastlane/Pluginfile | 4 ++-- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/.bundle/config b/.bundle/config index da970cb8c12e..c6d8958ffd24 100644 --- a/.bundle/config +++ b/.bundle/config @@ -1,3 +1,4 @@ --- BUNDLE_PATH: "vendor/bundle" +BUNDLE_JOBS: "16" BUNDLE_WITHOUT: "screenshots" diff --git a/Gemfile.lock b/Gemfile.lock index ba109aab68e2..0a4d0bca94c9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,22 @@ +GIT + remote: git@github.com:wordpress-mobile/release-toolkit + revision: ed8af1fd0f3d576b901e957e8747625671c1b22b + branch: l10n/localize.py + specs: + fastlane-plugin-wpmreleasetoolkit (2.1.0) + activesupport (~> 5) + bigdecimal (~> 1.4) + chroma (= 0.2.0) + diffy (~> 3.3) + git (~> 1.3) + jsonlint (~> 0.3) + nokogiri (~> 1.11) + octokit (~> 4.18) + parallel (~> 1.14) + progress_bar (~> 1.3) + rake (>= 12.3, < 14.0) + rake-compiler (~> 1.0) + GEM remote: https://rubygems.org/ specs: @@ -165,19 +184,6 @@ GEM trainer xcodeproj xctest_list (>= 1.2.1) - fastlane-plugin-wpmreleasetoolkit (2.1.0) - activesupport (~> 5) - bigdecimal (~> 1.4) - chroma (= 0.2.0) - diffy (~> 3.3) - git (~> 1.3) - jsonlint (~> 0.3) - nokogiri (~> 1.11) - octokit (~> 4.18) - parallel (~> 1.14) - progress_bar (~> 1.3) - rake (>= 12.3, < 14.0) - rake-compiler (~> 1.0) ffi (1.15.0) fourflusher (2.3.1) fuzzy_match (2.0.4) @@ -226,7 +232,7 @@ GEM http-cookie (1.0.4) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.8.10) + i18n (1.8.11) concurrent-ruby (~> 1.0) jmespath (1.4.0) json (2.5.1) @@ -340,11 +346,11 @@ DEPENDENCIES fastlane-plugin-appcenter (~> 1.8) fastlane-plugin-sentry fastlane-plugin-test_center - fastlane-plugin-wpmreleasetoolkit (~> 2.1) + fastlane-plugin-wpmreleasetoolkit! octokit (~> 4.0) rake rmagick (~> 3.2.0) xcpretty-travis-formatter BUNDLED WITH - 2.2.27 + 2.2.31 diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index a37561dd0199..d6aea871e4e7 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -6,9 +6,9 @@ group :screenshots, optional: true do gem 'rmagick', '~> 3.2.0' end -gem 'fastlane-plugin-wpmreleasetoolkit', '~> 2.1' +# gem 'fastlane-plugin-wpmreleasetoolkit', '~> 2.1' # This comment avoids typing to switch to a development version for testing. -# gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: '' +gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'l10n/localize.py' gem 'fastlane-plugin-sentry' gem 'fastlane-plugin-appcenter', '~> 1.8' From 32b950d5cc75a0575f85fbb10b77c3584deb0596 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Sat, 20 Nov 2021 00:58:51 +0100 Subject: [PATCH 100/371] Use new action in complete_code_freeze MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The new action is called via a dedicated lane so that we can still invoke that part manually if needed. One use case for this is it a string is modified or added on the release branch during the first week of the code freeze and we want to update the .strings file imported by GlotPress to account for it while there’s still time --- fastlane/Fastfile | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 1e206cfd9657..026ce95ebdf6 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -138,9 +138,11 @@ platform :ios do desc 'Creates a new release branch from the current develop' lane :complete_code_freeze do |options| ios_completecodefreeze_prechecks(options) - ios_localize_project - version = ios_get_app_version - trigger_beta_build(branch_to_build: "release/#{version}") + generate_strings_file_for_glotpress + + UI.confirm('Ready to push changes to remote and trigger the beta build?') unless ENV['RELEASE_TOOLKIT_SKIP_PUSH_CONFIRM'] + push_to_git_remote + trigger_beta_build(branch_to_build: "release/#{ios_get_app_version}") end ##################################################################################### @@ -399,6 +401,30 @@ platform :ios do ) end + ##################################################################################### + # generate_strings_file_for_glotpress + # ----------------------------------------------------------------------------------- + # Generate the `.strings` file to be imported by GlotPress, + # by parsing source code for `NSLocalizedString` (using `genstrings` under the hood). + # + # Typically called by complete_code_freeze. + # ----------------------------------------------------------------------------------- + # Usage: + # bundle exec fastlane generate_strings_file_for_glotpress + ##################################################################################### + lane :generate_strings_file_for_glotpress do + cocoapods + + en_lproj = 'WordPress/Resources/en.lproj' + ios_generate_strings_file_from_code( + paths: ['WordPress/', 'Pods/WordPress*/', 'Pods/WPMediaPicker/', 'WordPressShared/WordPressShared/', 'Pods/Gutenberg/'], + exclude: ['*Vendor*', 'WordPress/WordPressTest/I18n.swift', 'WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift', '*/Secrets.swift'], + output_dir: en_lproj + ) + + git_commit(path: en_lproj, message: 'Update strings for localization', allow_nothing_to_commit: true) + end + ##################################################################################### # download_localized_strings_and_metadata # ----------------------------------------------------------------------------------- From 9e113a73c714cd081f43aa88111e3e359fbfff1d Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Mon, 22 Nov 2021 18:29:06 +0100 Subject: [PATCH 101/371] =?UTF-8?q?Update=20Fastfile=20to=20also=20generat?= =?UTF-8?q?e=20Base.lproj=20for=20Widgets=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit … until we convert the Widget's codebases and can get rid of this logic later --- fastlane/Fastfile | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 026ce95ebdf6..485f649085d8 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -421,8 +421,15 @@ platform :ios do exclude: ['*Vendor*', 'WordPress/WordPressTest/I18n.swift', 'WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift', '*/Secrets.swift'], output_dir: en_lproj ) - - git_commit(path: en_lproj, message: 'Update strings for localization', allow_nothing_to_commit: true) + + # @TODO: Remove once we migrated the codebase of the widgets to use the app bundle for .strings + today_widget_base = 'WordPress/WordPressTodayWidget/Base.lproj' + ios_generate_strings_file_from_code(paths: ['WordPress/WordPressTodayWidget'], output_dir: today_widget_base) + share_ext_base = 'WordPress/WordPressShareExtension/Base.lproj' + ios_generate_strings_file_from_code(paths: ['WordPress/WordPressShareExtension'], output_dir: share_ext_base) + # END TODO + + git_commit(path: [en_lproj, today_widget_base, share_ext_base], message: 'Update strings for localization', allow_nothing_to_commit: true) end ##################################################################################### From b4d2ad710773d63fe0de2dc1eddb3bdbe552bfd4 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Mon, 22 Nov 2021 18:42:14 +0100 Subject: [PATCH 102/371] Update strings for localization --- .../Resources/en.lproj/Localizable.strings | Bin 858636 -> 858562 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index fbd7d2cd2142868d04cff6dff91be1919e2d1e17..9a39be48a0c4c8a0554a28575ae19f6ad5eb29d5 100644 GIT binary patch delta 90 zcmeC#VsdD+Nka=`3sVbo3rh=Y3tJ2O7LEf)r*|CX(3}46A~Vl44koMVNyj+Krms21 sp)z^NRF&y<<*aPe6~3@4O*hEpU~A7h&H==nK+FZi+}pE`^DGJi09d;t`v3p{ delta 174 zcmX@K*`#NSNka=`3sVbo3rh=Y3tJ2O7LEf)r}JrXN=(z_6p##N$Ydx2Vg-g^h75*$ zAiIPinW2=SWV&D-tK>947QSg5OjgsyRJr)3S5 Date: Sat, 20 Nov 2021 00:59:04 +0100 Subject: [PATCH 103/371] =?UTF-8?q?Fix=20source=20code=20for=20key?= =?UTF-8?q?=E2=89=A0value=20case?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Me/App Settings/AppSettingsViewController.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift index 9c06246cceb1..89e13cefdf68 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift @@ -286,7 +286,7 @@ class AppSettingsViewController: UITableViewController { NSUserActivity.deleteAllSavedUserActivities {} } - let notice = Notice(title: NSLocalizedString("Siri Reset Confirmation", comment: "Notice displayed to the user after clearing the Siri activity donations."), feedbackType: .success) + let notice = Notice(title: NSLocalizedString("Siri Reset Confirmation", value: "Successfully cleared Siri Shortcut Suggestions", comment: "Notice displayed to the user after clearing the Siri activity donations."), feedbackType: .success) ActionDispatcher.dispatch(NoticeAction.post(notice)) } } @@ -428,7 +428,7 @@ private extension AppSettingsViewController { if #available(iOS 12.0, *) { let siriClearCacheRow = DestructiveButtonRow( - title: NSLocalizedString("Siri Reset Prompt", comment: "Label for button that clears user activities donated to Siri."), + title: NSLocalizedString("Siri Reset Prompt", value: "Clear Siri Shortcut Suggestions", comment: "Label for button that clears user activities donated to Siri."), action: clearSiriActivityDonations(), accessibilityIdentifier: "spotlightClearCacheButton") From 39582cf16490d6440c8b4adbef2175b66ffbe1b5 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Mon, 22 Nov 2021 18:43:18 +0100 Subject: [PATCH 104/371] Update strings for localization --- .../Resources/en.lproj/Localizable.strings | Bin 858562 -> 858636 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 9a39be48a0c4c8a0554a28575ae19f6ad5eb29d5..fbd7d2cd2142868d04cff6dff91be1919e2d1e17 100644 GIT binary patch delta 174 zcmX@K*`#NSNka=`3sVbo3rh=Y3tJ2O7LEf)r}JrXN=(z_6p##N$Ydx2Vg-g^h75*$ zAiIPinW2=SWV&D-tK>947QSg5OjgsyRJr)3S5 Date: Mon, 22 Nov 2021 19:14:45 +0100 Subject: [PATCH 105/371] Revert running `Scripts/localize.py` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 4229afe20df8e802ec0cc98174c95037ba2de8bc. We are not on a code-freeze branch, but targeting develop, so we shouldn’t have the .strings file updated in a PR targeting develop otherwise it will affect the strings in GlotPress currently translated for the version in code-freeze (as opposed to the version in develop) --- .../Resources/en.lproj/Localizable.strings | Bin 858636 -> 856116 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index fbd7d2cd2142868d04cff6dff91be1919e2d1e17..05c0a13ad3ceb99d1eaf3edb026f28a1d6881221 100644 GIT binary patch delta 184 zcmV;p07w6fv^2D!G_cH=vqG6L#D|Dp0f&fQ0*8oR1Gk7?1UTE15QYSo?nwtUw|qMV z$QPGT!2uALE}aM>mkvDxB!|9K1&6*=2DiRc2euQJf@}vAm!N6~2A5!H2Mo6kX$M9y zmk?wJ1eXvy2OyJBu>`j|ng=97w^G~(EW(p8e-xKcga;hA;-3g6Z?}#Q2_RFJVhI+9 mJYxyBJYx#jDu;@W3b%@m3(CTm@C*hxm;5#h3b$-h44}tcYefnG delta 1229 zcmZ`(T}TvB6ux)ocV}kTU1zs-H_KTQ3sEzW3evzLi&Dxm0ujnwD{FPlwIrgShsu!X z$JzFX5$Hn@5&bF5OT-pYJqT`Te?-t?R1YD&^d{7q$=0%s;au*Vdw#xi?sx9UVEMU` z@;jsbFp(4kkVvvFU3(xx`+g?its))xEhbT-ktWhi4v=;d(Nq0iy?0z0e$!v@819tN z>{+kUNn192EMs!udQkGXBczM$BQ2!U^2bZQfH`|Kjiu2MskZCGm7R__%)ly9>%bH5oZ`SFPHP+{6e0GB8DpPM3!S~P^V@i)fDpJhaejy8pH?kJ6(syL7j~^;szIv|q@LIo4uv;jTZEe` z+#6=*P{p363Otmhps^+->@R~sFOv_spM^mDB+u&36wh@c(k@7S61{NqD({2@CnMa; zf>NT9BC?c7*qW`T4Fbh`!dsYa*&licCOH+ptq}5!WK3961*>c5JpDs2qDl#Dd{kh; z^#T{q81JE_dP=B-X@$Dt-#LYr0==TBAifrgjj5Ny@<;!|go^ie5wzzl3xSyUi_CED z6_wz4t|B^260{;fY%PgG9z(rZhf&dlh-*>lFdfr)D^W zrmu_&+83_OsP7jGBN=)fO!pcSMv+H{Fmkiiux9)VAt6&`%zSYEU`6AUV4t@wLy*5_ z+w68H@;?g4Vxq5SpuuhoG)PlL8T_EwNfk#u65kvq%MmW^R8;-e4Y8;1v}E+1mJ^TW xJPYPyV$GTVKl6y0gX`D@-ps?gY`vmp&7I((URnjo4k|*;YF;v88 Date: Mon, 22 Nov 2021 11:22:16 -0700 Subject: [PATCH 106/371] Update WPKit pod version. --- Podfile | 4 ++-- Podfile.lock | 13 ++++--------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Podfile b/Podfile index 12219acc0339..39c8caae468b 100644 --- a/Podfile +++ b/Podfile @@ -47,9 +47,9 @@ def wordpress_ui end def wordpress_kit - # pod 'WordPressKit', '~> 4.43.0' + pod 'WordPressKit', '~> 4.44.0-beta' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' - pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => 'feature/17511-return_comments_count' + # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' # pod 'WordPressKit', :path => '../WordPressKit-iOS' end diff --git a/Podfile.lock b/Podfile.lock index 9adaa958cc2b..c06f5a7f2247 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -553,7 +553,7 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.5) - WordPressAuthenticator (~> 1.42.1) - - WordPressKit (from `https://github.com/wordpress-mobile/WordPressKit-iOS.git`, branch `feature/17511-return_comments_count`) + - WordPressKit (~> 4.44.0-beta) - WordPressMocks (~> 0.0.15) - WordPressShared (~> 1.16.2) - WordPressUI (~> 1.12.2) @@ -565,6 +565,7 @@ DEPENDENCIES: SPEC REPOS: https://github.com/wordpress-mobile/cocoapods-specs.git: - WordPressAuthenticator + - WordPressKit - WordPressUI trunk: - 1PasswordExtension @@ -710,9 +711,6 @@ EXTERNAL SOURCES: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.66.0 - WordPressKit: - :branch: feature/17511-return_comments_count - :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git Yoga: :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.66.0/third-party-podspecs/Yoga.podspec.json @@ -728,9 +726,6 @@ CHECKOUT OPTIONS: :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true :tag: v1.66.0 - WordPressKit: - :commit: 2dc43ee25c91886ae7a1959d56c2779493006e03 - :git: https://github.com/wordpress-mobile/WordPressKit-iOS.git SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -815,7 +810,7 @@ SPEC CHECKSUMS: WordPress-Aztec-iOS: af36d9cb86a0109b568f516874870e2801ba1bd9 WordPress-Editor-iOS: 446be349b94707c1a82a83d525b86dbcf18cf2c7 WordPressAuthenticator: 111793c08fa8e9d9a72aed5b33a094c91ff4fd82 - WordPressKit: 74fcc8ab2f338997d015cb9e0fac95cbf8484f19 + WordPressKit: 7fe46752fe65808f80163ae135bb5c3f081d108b WordPressMocks: 6b52b0764d9939408151367dd9c6e8a910877f4d WordPressShared: 6f4d949aa3ec8c3b9c24f5aa601473f087badd24 WordPressUI: c573f4b5c2e5d0ffcebe69ecf86ae75ab7b6ff4d @@ -831,6 +826,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: cfe0ee270060185f1f0c15ee8cfb65d86be841cd +PODFILE CHECKSUM: 70e2c1b2bb057852c4af271041294e98678f6963 COCOAPODS: 1.10.1 From 6036dc53abeb46a090c3d1f5d77a791d6c00824b Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 13:39:46 -0500 Subject: [PATCH 107/371] Add post list action event for sharing --- WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index 6986dd7dd47e..e72413a21c18 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -224,6 +224,9 @@ import Foundation case siteSwitcherSearchPerformed case siteSwitcherToggleBlogVisible + // Post List + case postListShareAction + /// A String that represents the event var value: String { switch self { @@ -612,6 +615,8 @@ import Foundation return "site_switcher_search_performed" case .siteSwitcherToggleBlogVisible: return "site_switcher_toggle_blog_visible" + case .postListShareAction: + return "post_list_button_pressed" } // END OF SWITCH } @@ -631,6 +636,8 @@ import Foundation return ["via": "tenor"] case .editorAddedPhotoViaTenor: return ["via": "tenor"] + case .postListShareAction: + return ["button": "share"] default: return nil } From 0bc1a5084cf65f4a42bdcf9222cae342b405c367 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 13:40:01 -0500 Subject: [PATCH 108/371] Add tracking when you tap the share item on the post list view --- WordPress/Classes/ViewRelated/Post/PostListViewController.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Post/PostListViewController.swift b/WordPress/Classes/ViewRelated/Post/PostListViewController.swift index 03861628337d..9f2e526bef16 100644 --- a/WordPress/Classes/ViewRelated/Post/PostListViewController.swift +++ b/WordPress/Classes/ViewRelated/Post/PostListViewController.swift @@ -732,6 +732,8 @@ class PostListViewController: AbstractPostListViewController, UIViewControllerRe return } + WPAnalytics.track(.postListShareAction, properties: propertiesForAnalytics()) + let shareController = PostSharingController() shareController.sharePost(post, fromView: view, inViewController: self) } From 67cbc42e883744b850885bfab9eef5734cd4b198 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Mon, 22 Nov 2021 19:39:34 +0100 Subject: [PATCH 109/371] Update to latest toolkit post-PR-merge --- Gemfile.lock | 4 ++-- fastlane/Pluginfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0a4d0bca94c9..28c83efd4b3c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT remote: git@github.com:wordpress-mobile/release-toolkit - revision: ed8af1fd0f3d576b901e957e8747625671c1b22b - branch: l10n/localize.py + revision: 664f5f3e654abc0eb67b7b4650bb560731041e6f + branch: develop specs: fastlane-plugin-wpmreleasetoolkit (2.1.0) activesupport (~> 5) diff --git a/fastlane/Pluginfile b/fastlane/Pluginfile index d6aea871e4e7..872157c83264 100644 --- a/fastlane/Pluginfile +++ b/fastlane/Pluginfile @@ -8,7 +8,7 @@ end # gem 'fastlane-plugin-wpmreleasetoolkit', '~> 2.1' # This comment avoids typing to switch to a development version for testing. -gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'l10n/localize.py' +gem 'fastlane-plugin-wpmreleasetoolkit', git: 'git@github.com:wordpress-mobile/release-toolkit', branch: 'develop' gem 'fastlane-plugin-sentry' gem 'fastlane-plugin-appcenter', '~> 1.8' From 639a2a184789ed0975dfeb9e5c52187554c52537 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Mon, 22 Nov 2021 19:18:09 +0100 Subject: [PATCH 110/371] Delete legacy Scripts/localize.py Now that we've migrated to the new action, this one won't be necessary anymore, so better do some cleanup while we don't forget about it --- Scripts/localize.py | 158 -------------------------------------------- 1 file changed, 158 deletions(-) delete mode 100755 Scripts/localize.py diff --git a/Scripts/localize.py b/Scripts/localize.py deleted file mode 100755 index b6abcef6c371..000000000000 --- a/Scripts/localize.py +++ /dev/null @@ -1,158 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -# This program is free software. It comes without any warranty, to -# the extent permitted by applicable law. You can redistribute it -# and/or modify it under the terms of the Do What The Fuck You Want -# To Public License, Version 2, as published by Sam Hocevar. See -# http://sam.zoy.org/wtfpl/COPYING for more details. -# -# Localize.py - Incremental localization on XCode projects -# João Moreno 2009 -# http://joaomoreno.com/ - -from sys import argv -from codecs import open -from re import compile -from copy import copy -import os - -re_translation = compile(r'^"(.+)" = "(.+)";$') -re_comment_single = compile(r'^/(/.*|\*.*\*/)$') -re_comment_start = compile(r'^/\*.*$') -re_comment_end = compile(r'^.*\*/$') - -def print_help(): - print u"""Usage: merge.py merged_file old_file new_file -Xcode localizable strings merger script. João Moreno 2009.""" - -class LocalizedString(): - def __init__(self, comments, translation): - self.comments, self.translation = comments, translation - self.key, self.value = re_translation.match(self.translation).groups() - - def __unicode__(self): - return u'%s%s\n' % (u''.join(self.comments), self.translation) - -class LocalizedFile(): - def __init__(self, fname=None, auto_read=False): - self.fname = fname - self.strings = [] - self.strings_d = {} - - if auto_read: - self.read_from_file(fname) - - def read_from_file(self, fname=None): - fname = self.fname if fname == None else fname - try: - f = open(fname, encoding='utf_16', mode='r') - except: - print 'File %s does not exist.' % fname - exit(-1) - - line = f.readline() - while line and line == u'\n': - line = f.readline() - - while line: - comments = [line] - - if not re_comment_single.match(line): - while line and not re_comment_end.match(line): - line = f.readline() - comments.append(line) - - line = f.readline() - if line and re_translation.match(line): - translation = line - else: - raise Exception('invalid file: %s' % line) - - line = f.readline() - while line and line == u'\n': - line = f.readline() - - string = LocalizedString(comments, translation) - self.strings.append(string) - self.strings_d[string.key] = string - - f.close() - - def save_to_file(self, fname=None): - fname = self.fname if fname == None else fname - try: - f = open(fname, encoding='utf_16', mode='w') - except: - print 'Couldn\'t open file %s.' % fname - exit(-1) - - for string in self.strings: - f.write(string.__unicode__()) - - f.close() - - def merge_with(self, new): - merged = LocalizedFile() - - for string in new.strings: - if self.strings_d.has_key(string.key): - new_string = copy(self.strings_d[string.key]) - new_string.comments = string.comments - string = new_string - - merged.strings.append(string) - merged.strings_d[string.key] = string - - return merged - -def merge(merged_fname, old_fname, new_fname): - try: - old = LocalizedFile(old_fname, auto_read=True) - new = LocalizedFile(new_fname, auto_read=True) - except Exception as e: - print 'Error: input files have invalid format. old: %s, new: %s' % (old_fname, new_fname) - print e - - merged = old.merge_with(new) - - merged.save_to_file(merged_fname) - -STRINGS_FILE = 'Localizable.strings' - -def localize(path, language, include_pods_and_frameworks): - if "Scripts" in path: - print "Must run script from the root folder" - quit() - - os.chdir(path) - language = os.path.join(path, language) - - original = merged = language + os.path.sep + STRINGS_FILE - old = original + '.old' - new = original + '.new' - - # TODO: This is super ugly, we have to come up with a better way of doing it - if include_pods_and_frameworks: - find_cmd = 'find . ../Pods/WordPress* ../Pods/WPMediaPicker ../WordPressShared/WordPressShared ../Pods/Gutenberg -name "*.m" -o -name "*.swift" | grep -v Vendor | grep -v ./WordPressTest/I18n.swift | grep -v ./WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift | grep -v Secrets.swift' - else: - find_cmd = 'find . -name "*.m" -o -name "*.swift" | grep -v Vendor | grep -v ./WordPressTest/I18n.swift | grep -v ./WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift | grep -v Secrets.swift' - filelist = os.popen(find_cmd).read().strip().split('\n') - filelist = '"{0}"'.format('" "'.join(filelist)) - - if os.path.isfile(original): - os.rename(original, old) - os.system('genstrings -q -o "%s" %s' % (language, filelist)) - os.rename(original, new) - merge(merged, old, new) - os.remove(new) - os.remove(old) - else: - os.system('genstrings -q -o "%s" %s' % (language, filelist)) - -if __name__ == '__main__': - basedir = os.getcwd() - localize(os.path.join(basedir, 'WordPress'), 'Resources/en.lproj', True) - localize(os.path.join(basedir, 'WordPress', 'WordPressTodayWidget'), 'Base.lproj', False) - localize(os.path.join(basedir, 'WordPress', 'WordPressShareExtension'), 'Base.lproj', False) - From 455f601620febac626ad05fdfc81155678b072a9 Mon Sep 17 00:00:00 2001 From: Ovi Trif Date: Mon, 22 Nov 2021 19:46:53 +0100 Subject: [PATCH 111/371] Update release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index c67fd0c09c2c..540fc773850f 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,6 @@ 18.8 ----- +* [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] * [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] 18.7 From d46b2e2bb2ea23e1f20f14c994f247d83ad587f9 Mon Sep 17 00:00:00 2001 From: emilylaguna Date: Mon, 22 Nov 2021 15:52:19 -0500 Subject: [PATCH 112/371] Debounce the image size tracking to prevent tracking continuously --- .../App Settings/AppSettingsViewController.swift | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift index 9c06246cceb1..4a5df4179fe2 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/AppSettingsViewController.swift @@ -148,13 +148,20 @@ class AppSettingsViewController: UITableViewController { MediaSettings().maxImageSizeSetting = value ShareExtensionService.configureShareExtensionMaximumMediaDimension(value) - var properties = [String: AnyObject]() - properties["enabled"] = (value != Int.max) as AnyObject - properties["value"] = value as Int as AnyObject - WPAnalytics.track(.appSettingsImageOptimizationChanged, withProperties: properties) + self.debounce(#selector(self.trackImageSizeChanged), afterDelay: 0.5) } } + @objc func trackImageSizeChanged() { + let value = MediaSettings().maxImageSizeSetting + + var properties = [String: AnyObject]() + properties["enabled"] = (value != Int.max) as AnyObject + properties["value"] = value as Int as AnyObject + + WPAnalytics.track(.appSettingsImageOptimizationChanged, withProperties: properties) + } + func pushVideoResolutionSettings() -> ImmuTableAction { return { [weak self] row in let values = [MediaSettings.VideoResolution.size640x480, From c5ca4b1febeb9246f8085f4eb4811d9f2f7dc26c Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Mon, 22 Nov 2021 16:45:31 -0700 Subject: [PATCH 113/371] Add postDetailsComments flag. --- WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift index e7731f71d0f9..01d4dfdf9957 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -20,6 +20,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case followConversationViaNotifications case aboutScreen case newCommentThread + case postDetailsComments /// Returns a boolean indicating if the feature is enabled var enabled: Bool { @@ -66,6 +67,8 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { return BuildConfiguration.current == .localDeveloper case .newCommentThread: return false + case .postDetailsComments: + return false } } @@ -128,6 +131,8 @@ extension FeatureFlag { return "New Unified About Screen" case .newCommentThread: return "New Comment Thread" + case .postDetailsComments: + return "Post Details Comments" } } From 4a327f75a46db9fe86b5041c7b4ac82db2c9aeac Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Mon, 22 Nov 2021 16:47:49 -0700 Subject: [PATCH 114/371] Rename related posts table, add comments table. --- .../ReaderDetailViewController.storyboard | 36 ++++++++++++------- .../Detail/ReaderDetailViewController.swift | 20 ++++++----- WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++++ 3 files changed, 41 insertions(+), 21 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.storyboard b/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.storyboard index 0ce1e5bc903e..758492488c82 100644 --- a/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.storyboard +++ b/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.storyboard @@ -1,9 +1,9 @@ - + - + @@ -43,6 +43,14 @@ + + + + + + + + @@ -97,14 +105,17 @@ + + - + + @@ -129,7 +140,7 @@ - + @@ -160,14 +171,14 @@ - + @@ -237,28 +248,28 @@ - + - + - + From 55f5788358a4fc9a903a4d0f1940fa7c6cb4fdfc Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Tue, 23 Nov 2021 19:14:33 -0700 Subject: [PATCH 166/371] Correct comment. --- .../ViewRelated/Reader/Detail/ReaderDetailViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.swift b/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.swift index 092199f94c92..2f95b7aa53f5 100644 --- a/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/Detail/ReaderDetailViewController.swift @@ -991,7 +991,7 @@ extension ReaderDetailViewController { extension ReaderDetailViewController: DefinesVariableStatusBarStyle {} // MARK: - BorderedButtonTableViewCellDelegate -// For the `Show All Comments` button. +// For the `View All Comments` button. extension ReaderDetailViewController: BorderedButtonTableViewCellDelegate { func buttonTapped() { guard let post = post else { From 11e89753c9279a6f23706d0e64e48c9131254caf Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 24 Nov 2021 17:22:15 +0700 Subject: [PATCH 167/371] show separator logic for last leaf comments --- .../Models/Comment+CoreDataClass.swift | 4 ++ .../Reader/ReaderCommentsViewController.m | 61 ++++++++++++++++++- .../Reader/ReaderCommentsViewController.swift | 4 +- 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/Models/Comment+CoreDataClass.swift b/WordPress/Classes/Models/Comment+CoreDataClass.swift index 056826000d31..a926f16c8078 100644 --- a/WordPress/Classes/Models/Comment+CoreDataClass.swift +++ b/WordPress/Classes/Models/Comment+CoreDataClass.swift @@ -98,6 +98,10 @@ public class Comment: NSManagedObject { return !isReadOnly() && blog.supports(.commentLikes) } + + @objc func isTopLevelComment() -> Bool { + return depth == 0 + } } private extension Comment { diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m index ddf9789efb94..0fbaa756e554 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.m @@ -71,6 +71,9 @@ @interface ReaderCommentsViewController () returns YES. +/// - comment 4 +/// - comment 5 +/// - comment 6 +/// - comment 7 +/// - comment 8 --> returns YES. +/// - comment 9 +/// +- (BOOL)shouldShowSeparatorForIndexPath:(NSIndexPath *)indexPath +{ + NSIndexPath *nextIndexPath = [NSIndexPath indexPathForRow:indexPath.row + 1 inSection:indexPath.section]; + NSArray> *sections = self.tableViewHandler.resultsController.sections; + + if (sections && sections[indexPath.section] && nextIndexPath.row < sections[indexPath.section].numberOfObjects) { + Comment *nextComment = [self.tableViewHandler.resultsController objectAtIndexPath:nextIndexPath]; + return [nextComment isTopLevelComment]; + } + + return NO; +} + #pragma mark - Accessor methods - (void)setPost:(ReaderPost *)post @@ -1073,6 +1124,10 @@ - (void)configureCell:(UITableViewCell *)aCell atIndexPath:(NSIndexPath *)indexP if ([self newCommentThreadEnabled]) { [self configureContentCell:aCell comment:comment tableView:self.tableView]; + + // show separator when the comment is the "last leaf" of its top-level comment. + aCell.separatorInset = [self shouldShowSeparatorForIndexPath:indexPath] ? UIEdgeInsetsZero : self.hiddenSeparatorInsets; + return; } @@ -1130,7 +1185,7 @@ - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *cellIdentifier = [self newCommentThreadEnabled] ? CommentContentCellIdentifier : CommentCellIdentifier; - ReaderCommentCell *cell = (ReaderCommentCell *)[self.tableView dequeueReusableCellWithIdentifier:cellIdentifier]; + UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath]; [self configureCell:cell atIndexPath:indexPath]; return cell; } diff --git a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift index 323f9536e9db..4248c5293a76 100644 --- a/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift +++ b/WordPress/Classes/ViewRelated/Reader/ReaderCommentsViewController.swift @@ -38,8 +38,8 @@ import UIKit func handleHeaderTapped() { guard let post = post, allowsPushingPostDetails else { - return - } + return + } // Note: Let's manually hide the comments button, in order to prevent recursion in the flow let controller = ReaderDetailViewController.controllerWithPost(post) From 786beceae806d604b7ba3bc43081b9dff0162863 Mon Sep 17 00:00:00 2001 From: Diego Rey Mendez Date: Wed, 24 Nov 2021 11:33:11 +0100 Subject: [PATCH 168/371] Commits an initial implementation of Rate Us. --- .../About/WordPressAboutScreenConfiguration.swift | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 5994702703b7..b11cf3e9a98a 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -17,6 +17,15 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { lazy var sections: [[AboutItem]] = { [ [ + AboutItem(title: TextContent.rateUs, accessoryType: .none, action: { [weak self] context in + // Note: + // Let's follow the same procedure executed as in NotificationsViewController, so that if the user + // manually decides to rate the app, we don't render the prompt! + // + WPAnalytics.track(.appReviewsRatedApp) + AppRatingUtility.shared.ratedCurrentVersion() + UIApplication.shared.open(AppRatingUtility.shared.appReviewUrl) + }), AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) }), From ec6cf71429eb86b26d935ece3865344a79845a43 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 24 Nov 2021 18:23:54 +0700 Subject: [PATCH 169/371] Indent cells according to comment depth --- .../CommentContentTableViewCell.swift | 19 +++++++++++++++++++ .../Comments/CommentContentTableViewCell.xib | 5 +++-- .../Reader/ReaderCommentsViewController.swift | 9 +++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.swift b/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.swift index 83ede3dea34c..1c6acacd24e3 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.swift @@ -35,6 +35,18 @@ class CommentContentTableViewCell: UITableViewCell, NibReusable { } } + override var indentationWidth: CGFloat { + didSet { + updateContainerLeadingConstraint() + } + } + + override var indentationLevel: Int { + didSet { + updateContainerLeadingConstraint() + } + } + // MARK: Constants private let customBottomSpacing: CGFloat = 10 @@ -44,6 +56,9 @@ class CommentContentTableViewCell: UITableViewCell, NibReusable { @IBOutlet private weak var containerStackView: UIStackView! @IBOutlet private weak var containerStackBottomConstraint: NSLayoutConstraint! + // used for indentation + @IBOutlet private weak var containerStackLeadingConstraint: NSLayoutConstraint! + @IBOutlet private weak var avatarImageView: CircularImageView! @IBOutlet private weak var nameLabel: UILabel! @IBOutlet private weak var dateLabel: UILabel! @@ -350,6 +365,10 @@ private extension CommentContentTableViewCell { moderationBar.isHidden = !isModerationEnabled || hidesModerationBar } + func updateContainerLeadingConstraint() { + containerStackLeadingConstraint?.constant = indentationWidth * CGFloat(indentationLevel) + } + /// Updates the style and text of the Like button. /// - Parameters: /// - liked: Represents the target state – true if the comment is liked, or should be false otherwise. diff --git a/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.xib b/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.xib index 61143be8c044..528dc44b8af3 100644 --- a/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.xib +++ b/WordPress/Classes/ViewRelated/Comments/CommentContentTableViewCell.xib @@ -92,7 +92,7 @@ @@ -94,7 +94,7 @@ - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift index 60a1f91b925e..44da3f629187 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift @@ -19,7 +19,7 @@ final class LoginEpilogueChooseSiteTableViewCell: UITableViewCell { // MARK: - Private Methods private extension LoginEpilogueChooseSiteTableViewCell { func setupViews() { - backgroundColor = .systemBackground + backgroundColor = .basicBackground selectionStyle = .none setupTitleLabel() setupSubtitleLabel() @@ -27,12 +27,12 @@ private extension LoginEpilogueChooseSiteTableViewCell { } func setupTitleLabel() { - titleLabel.text = "Choose a site to open." + titleLabel.text = NSLocalizedString("Choose a site to open.", comment: "A text for title label on Login epilogue screen") titleLabel.font = WPStyleGuide.fontForTextStyle(.callout, fontWeight: .medium) } func setupSubtitleLabel() { - subtitleLabel.text = "You can switch sites at any time." + subtitleLabel.text = NSLocalizedString("You can switch sites at any time.", comment: "A text for subtitle label on Login epilogue screen") subtitleLabel.font = WPStyleGuide.fontForTextStyle(.footnote, fontWeight: .regular) subtitleLabel.textColor = .secondaryLabel } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index b7dd891efc81..b8dc015262cb 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -17,9 +17,9 @@ class LoginEpilogueViewController: UIViewController { @IBOutlet var topLine: UIView! @IBOutlet var topLineHeightConstraint: NSLayoutConstraint! - /// Done Button. + /// Create a new site button. /// - @IBOutlet var doneButton: UIButton! + @IBOutlet var createANewSiteButton: UIButton! /// Constraints on the table view container. /// Used to adjust the width on iPad. @@ -119,7 +119,6 @@ class LoginEpilogueViewController: UIViewController { super.traitCollectionDidChange(previousTraitCollection) setTableViewMargins(forWidth: view.frame.width) } - } // MARK: - Private Extension @@ -129,14 +128,15 @@ private extension LoginEpilogueViewController { /// Refreshes the UI so that the specified WordPressSite is displayed. /// func refreshInterface(with credentials: AuthenticatorCredentials) { - configureDoneButton() + configureCreateANewSiteButton() } /// Setup: Buttons /// - func configureDoneButton() { - doneButton.setTitle(NSLocalizedString("Done", comment: "A button title"), for: .normal) - doneButton.accessibilityIdentifier = "Done" + func configureCreateANewSiteButton() { + createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "A button title"), for: .normal) + createANewSiteButton.accessibilityIdentifier = "Create a new site" + createANewSiteButton.backgroundColor = .clear } /// Setup: Button Panel @@ -155,12 +155,15 @@ private extension LoginEpilogueViewController { if contentSize.height >= (screenHeight - panelHeight) { topLine.isHidden = false blurEffectView.effect = UIBlurEffect(style: blurEffect) - blurEffectView.isHidden = false + blurEffectView.isHidden = true } else { buttonPanel.backgroundColor = .basicBackground topLine.isHidden = true blurEffectView.isHidden = true } + + buttonPanel.backgroundColor = WordPressAuthenticator.shared.style.buttonViewBackgroundColor + buttonPanel.backgroundColor = .quaternaryBackground } func setTableViewMargins(forWidth viewWidth: CGFloat) { @@ -188,7 +191,7 @@ private extension LoginEpilogueViewController { // MARK: - Actions - @IBAction func dismissEpilogue() { + @IBAction func createANewSite() { tracker.track(click: .continue) onDismiss?() navigationController?.dismiss(animated: true) From e3a321117590f2d0880e95d53da66cf4d58d40e1 Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Thu, 28 Oct 2021 16:50:50 +0200 Subject: [PATCH 218/371] Updating UI --- WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard | 6 +++--- .../ViewRelated/NUX/LoginEpilogueTableViewController.swift | 4 ---- .../ViewRelated/NUX/LoginEpilogueViewController.swift | 7 ++----- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index 79d248b3db13..40c0f4ce9d5d 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -17,7 +17,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -110,7 +110,7 @@ - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 95a3dbeadb96..3889d4729cea 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -60,10 +60,6 @@ class LoginEpilogueTableViewController: UITableViewController { // Remove separator line on last row tableView.tableFooterView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: 1))) - // To facilitate the button blur effect, the table is extended under the button view. - // So the last cells can be seen when scrolled, move the content up above the button view. - tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: 100, right: 0) - view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index b8dc015262cb..843941e5ec61 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -136,7 +136,6 @@ private extension LoginEpilogueViewController { func configureCreateANewSiteButton() { createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "A button title"), for: .normal) createANewSiteButton.accessibilityIdentifier = "Create a new site" - createANewSiteButton.backgroundColor = .clear } /// Setup: Button Panel @@ -153,17 +152,15 @@ private extension LoginEpilogueViewController { let panelHeight = buttonPanel.frame.height if contentSize.height >= (screenHeight - panelHeight) { + buttonPanel.backgroundColor = .quaternaryBackground topLine.isHidden = false blurEffectView.effect = UIBlurEffect(style: blurEffect) - blurEffectView.isHidden = true + blurEffectView.isHidden = false } else { buttonPanel.backgroundColor = .basicBackground topLine.isHidden = true blurEffectView.isHidden = true } - - buttonPanel.backgroundColor = WordPressAuthenticator.shared.style.buttonViewBackgroundColor - buttonPanel.backgroundColor = .quaternaryBackground } func setTableViewMargins(forWidth viewWidth: CGFloat) { From 0447f9a53f821f62087fec10af240b58de10a5ff Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 08:58:27 +0200 Subject: [PATCH 219/371] Add LoginEpilogueDividerView --- .../NUX/LoginEpilogueDividerView.swift | 70 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++ 2 files changed, 76 insertions(+) create mode 100644 WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift new file mode 100644 index 000000000000..1c16ad3b6a39 --- /dev/null +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift @@ -0,0 +1,70 @@ +import UIKit +import WordPressAuthenticator + +final class LoginEpilogueDividerView: UIView { + private let leadingDividerLine = UIView() + private let trailingDividerLine = UIView() + private let dividerLabel = UILabel() + + override init(frame: CGRect) { + super.init(frame: frame) + setupViews() + } + + @available(*, unavailable) + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +// MARK: - Private Methods +private extension LoginEpilogueDividerView { + func setupViews() { + setupTitleLabel() + setupLeadingDividerLine() + setupTrailingDividerLine() + } + + func setupTitleLabel() { + dividerLabel.textColor = color + dividerLabel.font = .preferredFont(forTextStyle: .footnote) + dividerLabel.text = NSLocalizedString("Or", comment: "Divider on initial auth view separating auth options.").localizedUppercase + dividerLabel.translatesAutoresizingMaskIntoConstraints = false + addSubview(dividerLabel) + NSLayoutConstraint.activate([ + dividerLabel.centerXAnchor.constraint(equalTo: centerXAnchor), + dividerLabel.centerYAnchor.constraint(equalTo: centerYAnchor) + ]) + } + + func setupLeadingDividerLine() { + leadingDividerLine.backgroundColor = color + leadingDividerLine.translatesAutoresizingMaskIntoConstraints = false + addSubview(leadingDividerLine) + NSLayoutConstraint.activate([ + leadingDividerLine.centerYAnchor.constraint(equalTo: dividerLabel.centerYAnchor), + leadingDividerLine.leadingAnchor.constraint(equalTo: leadingAnchor), + leadingDividerLine.trailingAnchor.constraint(equalTo: dividerLabel.leadingAnchor, constant: -4), + leadingDividerLine.heightAnchor.constraint(equalToConstant: .hairlineBorderWidth) + ]) + } + + func setupTrailingDividerLine() { + trailingDividerLine.backgroundColor = color + trailingDividerLine.translatesAutoresizingMaskIntoConstraints = false + addSubview(trailingDividerLine) + NSLayoutConstraint.activate([ + trailingDividerLine.centerYAnchor.constraint(equalTo: dividerLabel.centerYAnchor), + trailingDividerLine.leadingAnchor.constraint(equalTo: dividerLabel.trailingAnchor, constant: 4), + trailingDividerLine.trailingAnchor.constraint(equalTo: trailingAnchor), + trailingDividerLine.heightAnchor.constraint(equalToConstant: .hairlineBorderWidth) + ]) + } +} + +// MARK: - Private Computed Properties +private extension LoginEpilogueDividerView { + var color: UIColor? { + WordPressAuthenticator.shared.unifiedStyle?.borderColor ?? WordPressAuthenticator.shared.style.primaryNormalBorderColor + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 016d1d7a20fa..e74ee97649a0 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1536,6 +1536,8 @@ 93E5285619A77BAC003A1A9C /* NotificationCenter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 93E5283B19A7741A003A1A9C /* NotificationCenter.framework */; }; 93E63369272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */; }; 93E6336A272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */; }; + 93E6336C272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */; }; + 93E6336D272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */; }; 93E9050719E6F3D8005513C9 /* ContextManagerMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 93E9050619E6F3D8005513C9 /* ContextManagerMock.m */; }; 93EF094C19ED533500C89770 /* ContextManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E9050319E6F242005513C9 /* ContextManagerTests.swift */; }; 93F2E53E1E9E5A010050D489 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E131CB5116CACA6B004B0314 /* CoreText.framework */; }; @@ -6205,6 +6207,7 @@ 93E5284F19A77824003A1A9C /* WordPressTodayWidget-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressTodayWidget-Bridging-Header.h"; sourceTree = ""; }; 93E5285719A7AA5C003A1A9C /* WordPressTodayWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = WordPressTodayWidget.entitlements; sourceTree = ""; }; 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueChooseSiteTableViewCell.swift; sourceTree = ""; }; + 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueDividerView.swift; sourceTree = ""; }; 93E9050219E6F240005513C9 /* WordPressTest-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressTest-Bridging-Header.h"; sourceTree = ""; }; 93E9050319E6F242005513C9 /* ContextManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContextManagerTests.swift; sourceTree = ""; }; 93E9050519E6F3D8005513C9 /* ContextManagerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextManagerMock.h; sourceTree = ""; }; @@ -14070,6 +14073,7 @@ children = ( 433432511E9ED18900915988 /* LoginEpilogueViewController.swift */, 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */, + 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */, 43FB3F461EC10F1E00FC8A62 /* LoginEpilogueTableViewController.swift */, ); name = Epilogue; @@ -18271,6 +18275,7 @@ 7E3E7A5920E44D2F0075D159 /* FooterContentStyles.swift in Sources */, C81CCD7E243BF7A600A83E27 /* TenorMedia.swift in Sources */, E19B17B21E5C8F36007517C6 /* AbstractPost.swift in Sources */, + 93E6336C272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */, 3F73BE5D24EB38E200BE99FF /* WhatIsNewScenePresenter.swift in Sources */, 8B69F19F255D67E7006B1CEF /* CalendarViewController.swift in Sources */, 912347762216E27200BD9F97 /* GutenbergViewController+Localization.swift in Sources */, @@ -20086,6 +20091,7 @@ FABB23DE2602FC2C00C8785C /* SharingConnectionsViewController.m in Sources */, FABB23DF2602FC2C00C8785C /* BlogSelectorViewController.m in Sources */, FABB23E02602FC2C00C8785C /* HomepageSettingsViewController.swift in Sources */, + 93E6336D272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */, FABB23E12602FC2C00C8785C /* TenorMediaGroup.swift in Sources */, FABB23E22602FC2C00C8785C /* SiteSuggestionService.swift in Sources */, FABB23E32602FC2C00C8785C /* NotificationsViewController+PushPrimer.swift in Sources */, From fea658f497f2536d5d07ff712965773a724702b1 Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 08:58:49 +0200 Subject: [PATCH 220/371] Add LoginEpilogueDividerView to bottomPanel --- .../ViewRelated/NUX/LoginEpilogue.storyboard | 14 +++++++------- .../NUX/LoginEpilogueViewController.swift | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index 40c0f4ce9d5d..707b3bb19168 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -17,18 +17,18 @@ - + - + - + - + @@ -78,13 +78,13 @@ - + - + @@ -110,7 +110,7 @@ - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 843941e5ec61..628152c89faf 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -33,6 +33,8 @@ class LoginEpilogueViewController: UIViewController { return .systemChromeMaterial } + private var dividerView: LoginEpilogueDividerView? + /// Links to the Epilogue TableViewController /// private var tableViewController: LoginEpilogueTableViewController? @@ -161,6 +163,18 @@ private extension LoginEpilogueViewController { topLine.isHidden = true blurEffectView.isHidden = true } + + guard dividerView == nil else { return } + dividerView = LoginEpilogueDividerView() + guard let dividerView = dividerView else { return } + dividerView.translatesAutoresizingMaskIntoConstraints = false + buttonPanel.addSubview(dividerView) + NSLayoutConstraint.activate([ + dividerView.leadingAnchor.constraint(equalTo: buttonPanel.leadingAnchor), + dividerView.trailingAnchor.constraint(equalTo: buttonPanel.trailingAnchor), + dividerView.topAnchor.constraint(equalTo: buttonPanel.topAnchor), + dividerView.heightAnchor.constraint(equalToConstant: 40) + ]) } func setTableViewMargins(forWidth viewWidth: CGFloat) { From 4aef6029ff4710ee2d7d6b046de97919ea9b610b Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 12:38:41 +0200 Subject: [PATCH 221/371] Remove LoginEpilogueConnectSiteCell --- .../NUX/LoginEpilogueConnectSiteCell.swift | 26 --------- .../NUX/LoginEpilogueConnectSiteCell.xib | 48 ---------------- .../LoginEpilogueTableViewController.swift | 57 ++----------------- .../NUX/LoginEpilogueViewController.swift | 13 +---- WordPress/WordPress.xcodeproj/project.pbxproj | 12 ---- 5 files changed, 5 insertions(+), 151 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.swift delete mode 100644 WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.xib diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.swift deleted file mode 100644 index d98060c0baf2..000000000000 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.swift +++ /dev/null @@ -1,26 +0,0 @@ -import UIKit - -class LoginEpilogueConnectSiteCell: UITableViewCell, NibReusable { - - // Properties - - @IBOutlet var connectLabel: UILabel! - - // Init - - func configure(numberOfSites: Int) { - connectLabel.text = numberOfSites == 0 ? LocalizedText.connectSite : LocalizedText.connectAnother - connectLabel.font = UIFont.systemFont(ofSize: UIFont.preferredFont(forTextStyle: .subheadline).pointSize, weight: .regular) - connectLabel.textColor = .primary - accessibilityIdentifier = "connectSite" - accessibilityTraits = .button - } - -} - -private extension LoginEpilogueConnectSiteCell { - enum LocalizedText { - static let connectSite = NSLocalizedString("Connect a site", comment: "Link to connect a site, shown after logging in.") - static let connectAnother = NSLocalizedString("Connect another site", comment: "Link to connect another site, shown after logging in.") - } -} diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.xib b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.xib deleted file mode 100644 index 4821e52f6a7d..000000000000 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueConnectSiteCell.xib +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 3889d4729cea..99c6fcd237d5 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -23,29 +23,10 @@ class LoginEpilogueTableViewController: UITableViewController { /// private var credentials: AuthenticatorCredentials? - /// Closure to be executed when Connect Site is selected. - /// - private var onConnectSite: (() -> Void)? - - /// Flag indicating if the Connect Site option should be displayed. - /// - private var showConnectSite: Bool { - guard AppConfiguration.allowsConnectSite else { - return false - } - - guard let wpcom = credentials?.wpcom else { - return true - } - - return !wpcom.isJetpackLogin - } - private var tracker: AuthenticatorAnalyticsTracker { AuthenticatorAnalyticsTracker.shared } - // MARK: - Lifecycle override func viewDidLoad() { @@ -54,8 +35,6 @@ class LoginEpilogueTableViewController: UITableViewController { let userInfoNib = UINib(nibName: "EpilogueUserInfoCell", bundle: nil) tableView.register(userInfoNib, forCellReuseIdentifier: Settings.userCellReuseIdentifier) tableView.register(LoginEpilogueChooseSiteTableViewCell.self, forCellReuseIdentifier: Settings.chooseSiteReuseIdentifier) - tableView.register(LoginEpilogueConnectSiteCell.defaultNib, - forCellReuseIdentifier: LoginEpilogueConnectSiteCell.defaultReuseID) // Remove separator line on last row tableView.tableFooterView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: 1))) @@ -66,9 +45,8 @@ class LoginEpilogueTableViewController: UITableViewController { /// Initializes the EpilogueTableView so that data associated with the specified Endpoint is displayed. /// - func setup(with credentials: AuthenticatorCredentials, onConnectSite: (() -> Void)? = nil) { + func setup(with credentials: AuthenticatorCredentials) { self.credentials = credentials - self.onConnectSite = onConnectSite refreshInterface(for: credentials) } } @@ -90,11 +68,6 @@ extension LoginEpilogueTableViewController { } } - // Add one for Connect Site if there are no sites from blogDataSource. - if adjustedNumberOfSections == 0 && showConnectSite { - adjustedNumberOfSections += 1 - } - // Add one for User Info return adjustedNumberOfSections + 1 } @@ -106,9 +79,7 @@ extension LoginEpilogueTableViewController { let correctedSection = section - 1 let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) - - // Add one for the Connect Site row if shown. - return showConnectSite ? siteRows + 1 : siteRows + return siteRows } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { @@ -135,16 +106,6 @@ extension LoginEpilogueTableViewController { } } - // Connect Site Row - if indexPath.row == lastRowInSection(indexPath.section) && showConnectSite { - guard let cell = tableView.dequeueReusableCell(withIdentifier: LoginEpilogueConnectSiteCell.defaultReuseID) as? LoginEpilogueConnectSiteCell else { - return UITableViewCell() - } - - cell.configure(numberOfSites: numberOfWordPressComBlogs) - return cell - } - // Site Rows let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) let cell = blogDataSource.tableView(tableView, cellForRowAt: wrappedPath) @@ -182,18 +143,6 @@ extension LoginEpilogueTableViewController { override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { return false } - - override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - guard showConnectSite, - indexPath.section != Sections.userInfoSection, - indexPath.row == lastRowInSection(indexPath.section) else { - return - } - - tracker.track(click: .connectSite) - tracker.set(flow: .loginWithSiteAddress) - onConnectSite?() - } } // MARK: - Private Extension @@ -207,12 +156,14 @@ private extension LoginEpilogueTableViewController { /// Returns the number of WordPress.com sites. /// + /* var numberOfWordPressComBlogs: Int { let context = ContextManager.sharedInstance().mainContext let service = AccountService(managedObjectContext: context) return service.defaultWordPressComAccount()?.blogs.count ?? 0 } + */ func rowCount(forSection section: Int) -> Int { return blogDataSource.tableView(tableView, numberOfRowsInSection: section - 1) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 628152c89faf..e1faccf9bd94 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -96,10 +96,7 @@ class LoginEpilogueViewController: UIViewController { fatalError() } - epilogueTableViewController.setup(with: credentials, onConnectSite: { [weak self] in - self?.handleConnectAnotherButton() - }) - + epilogueTableViewController.setup(with: credentials) tableViewController = epilogueTableViewController } @@ -207,12 +204,4 @@ private extension LoginEpilogueViewController { onDismiss?() navigationController?.dismiss(animated: true) } - - func handleConnectAnotherButton() { - guard let controller = WordPressAuthenticator.signinForWPOrg() else { - return - } - - navigationController?.setViewControllers([controller], animated: true) - } } diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index e74ee97649a0..df94ab1a2622 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1773,8 +1773,6 @@ 98EB126A20D2DC2500D2D5B5 /* NoResultsViewController+Model.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98EB126920D2DC2500D2D5B5 /* NoResultsViewController+Model.swift */; }; 98ED5963265EBD0000A0B33E /* ReaderDetailLikesListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5962265EBD0000A0B33E /* ReaderDetailLikesListController.swift */; }; 98ED5964265EBD0000A0B33E /* ReaderDetailLikesListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98ED5962265EBD0000A0B33E /* ReaderDetailLikesListController.swift */; }; - 98F0297C2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F0297A2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift */; }; - 98F0297D2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F0297B2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib */; }; 98F1B12A2111017A00139493 /* NoResultsStockPhotosConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F1B1292111017900139493 /* NoResultsStockPhotosConfiguration.swift */; }; 98F537A722496CF300B334F9 /* SiteStatsTableHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F537A622496CF300B334F9 /* SiteStatsTableHeaderView.swift */; }; 98F537A922496D0D00B334F9 /* SiteStatsTableHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F537A822496D0D00B334F9 /* SiteStatsTableHeaderView.xib */; }; @@ -2912,7 +2910,6 @@ FABB20B22602FC2C00C8785C /* ExpandableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4034FDED2007D4F700153B87 /* ExpandableCell.xib */; }; FABB20B42602FC2C00C8785C /* WidgetUrlCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 988F073423D0CE8800AC67A6 /* WidgetUrlCell.xib */; }; FABB20B52602FC2C00C8785C /* richEmbedScript.js in Resources */ = {isa = PBXBuildFile; fileRef = E61507E32220A13B00213D33 /* richEmbedScript.js */; }; - FABB20B62602FC2C00C8785C /* LoginEpilogueConnectSiteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 98F0297B2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib */; }; FABB20B72602FC2C00C8785C /* PluginListCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 401A3D012027DBD80099A127 /* PluginListCell.xib */; }; FABB20B82602FC2C00C8785C /* SiteStatsDashboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 981C348F2183871100FC2683 /* SiteStatsDashboard.storyboard */; }; FABB20B92602FC2C00C8785C /* PostStatsTableViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 986C908522319F2600FC31E1 /* PostStatsTableViewController.storyboard */; }; @@ -4127,7 +4124,6 @@ FABB25822602FC2C00C8785C /* MediaExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8CD291EBD22EF0049D0C0 /* MediaExporter.swift */; }; FABB25832602FC2C00C8785C /* ReaderRelatedPostsCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAC086D525EDFB1E00B94F2A /* ReaderRelatedPostsCell.swift */; }; FABB25842602FC2C00C8785C /* NoResultsViewController+FollowedSites.swift in Sources */ = {isa = PBXBuildFile; fileRef = 324780E0247F2E2A00987525 /* NoResultsViewController+FollowedSites.swift */; }; - FABB25852602FC2C00C8785C /* LoginEpilogueConnectSiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98F0297A2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift */; }; FABB25862602FC2C00C8785C /* WordPress-11-12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = E100C6BA1741472F00AE48D8 /* WordPress-11-12.xcmappingmodel */; }; FABB25872602FC2C00C8785C /* DiffAbstractValue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A38DC68218899FB006A409B /* DiffAbstractValue.swift */; }; FABB25882602FC2C00C8785C /* Routes+Notifications.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17B7C8C020EE2A870042E260 /* Routes+Notifications.swift */; }; @@ -6399,8 +6395,6 @@ 98E5D4912620C2B40074A56A /* UserProfileSectionHeader.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = UserProfileSectionHeader.xib; sourceTree = ""; }; 98EB126920D2DC2500D2D5B5 /* NoResultsViewController+Model.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NoResultsViewController+Model.swift"; sourceTree = ""; }; 98ED5962265EBD0000A0B33E /* ReaderDetailLikesListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderDetailLikesListController.swift; sourceTree = ""; }; - 98F0297A2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueConnectSiteCell.swift; sourceTree = ""; }; - 98F0297B2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LoginEpilogueConnectSiteCell.xib; sourceTree = ""; }; 98F1B1292111017900139493 /* NoResultsStockPhotosConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NoResultsStockPhotosConfiguration.swift; sourceTree = ""; }; 98F4044E26BB69A000BBD8B9 /* WordPress 131.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 131.xcdatamodel"; sourceTree = ""; }; 98F537A622496CF300B334F9 /* SiteStatsTableHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SiteStatsTableHeaderView.swift; sourceTree = ""; }; @@ -11779,8 +11773,6 @@ 98579BC6203DD86E004086E4 /* EpilogueSectionHeaderFooter.xib */, 9808655B203D079A00D58786 /* EpilogueUserInfoCell.swift */, 98086559203D075D00D58786 /* EpilogueUserInfoCell.xib */, - 98F0297A2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift */, - 98F0297B2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib */, 98A25BD0203CB25F006A5807 /* SignupEpilogueCell.swift */, 98A25BD2203CB278006A5807 /* SignupEpilogueCell.xib */, ); @@ -15594,7 +15586,6 @@ 17222D96261DDDF90047B163 /* pink-icon-app-60x60@3x.png in Resources */, 1761F18226209AEE000815EF /* jetpack-green-icon-app-60x60@3x.png in Resources */, FE3E83E626A58646008CE851 /* ListSimpleOverlayView.xib in Resources */, - 98F0297D2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.xib in Resources */, 401A3D022027DBD80099A127 /* PluginListCell.xib in Resources */, 17222D83261DDDF90047B163 /* celadon-classic-icon-app-60x60@2x.png in Resources */, 981C34912183871200FC2683 /* SiteStatsDashboard.storyboard in Resources */, @@ -16027,7 +16018,6 @@ FABB20B22602FC2C00C8785C /* ExpandableCell.xib in Resources */, FABB20B42602FC2C00C8785C /* WidgetUrlCell.xib in Resources */, FABB20B52602FC2C00C8785C /* richEmbedScript.js in Resources */, - FABB20B62602FC2C00C8785C /* LoginEpilogueConnectSiteCell.xib in Resources */, 98E5D4932620C2B40074A56A /* UserProfileSectionHeader.xib in Resources */, FABB20B72602FC2C00C8785C /* PluginListCell.xib in Resources */, FABB20B82602FC2C00C8785C /* SiteStatsDashboard.storyboard in Resources */, @@ -18317,7 +18307,6 @@ 08F8CD2A1EBD22EF0049D0C0 /* MediaExporter.swift in Sources */, FAC086D725EDFB1E00B94F2A /* ReaderRelatedPostsCell.swift in Sources */, 324780E1247F2E2A00987525 /* NoResultsViewController+FollowedSites.swift in Sources */, - 98F0297C2405C9E500FFD862 /* LoginEpilogueConnectSiteCell.swift in Sources */, E100C6BB1741473000AE48D8 /* WordPress-11-12.xcmappingmodel in Sources */, 9822A8412624CFB900FD8A03 /* UserProfileSiteCell.swift in Sources */, 9A38DC6D218899FB006A409B /* DiffAbstractValue.swift in Sources */, @@ -20556,7 +20545,6 @@ FABB25822602FC2C00C8785C /* MediaExporter.swift in Sources */, FABB25832602FC2C00C8785C /* ReaderRelatedPostsCell.swift in Sources */, FABB25842602FC2C00C8785C /* NoResultsViewController+FollowedSites.swift in Sources */, - FABB25852602FC2C00C8785C /* LoginEpilogueConnectSiteCell.swift in Sources */, FABB25862602FC2C00C8785C /* WordPress-11-12.xcmappingmodel in Sources */, FABB25872602FC2C00C8785C /* DiffAbstractValue.swift in Sources */, 9822A8422624CFB900FD8A03 /* UserProfileSiteCell.swift in Sources */, From 827e9dd5a8f6b0201b89e2bcf3df83326277caee Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 12:53:06 +0200 Subject: [PATCH 222/371] Hide bottom panel if number of sites is less then 4 --- .../ViewRelated/NUX/LoginEpilogue.storyboard | 1 + .../LoginEpilogueTableViewController.swift | 5 +++ .../NUX/LoginEpilogueViewController.swift | 38 ++++++++++++------- 3 files changed, 30 insertions(+), 14 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index 707b3bb19168..93c3f7cbf5bd 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -95,6 +95,7 @@ + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 99c6fcd237d5..9ba0e130ed59 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -79,6 +79,11 @@ extension LoginEpilogueTableViewController { let correctedSection = section - 1 let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) + + if siteRows < 4, let parent = parent as? LoginEpilogueViewController { + parent.hideButtonPanel() + } + return siteRows } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index e1faccf9bd94..b79492c0599d 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -25,6 +25,8 @@ class LoginEpilogueViewController: UIViewController { /// Used to adjust the width on iPad. @IBOutlet var tableViewLeadingConstraint: NSLayoutConstraint! @IBOutlet var tableViewTrailingConstraint: NSLayoutConstraint! + @IBOutlet weak var tableViewBottomContraint: NSLayoutConstraint! + private var defaultTableViewMargin: CGFloat = 0 /// Blur effect on button panel @@ -118,6 +120,12 @@ class LoginEpilogueViewController: UIViewController { super.traitCollectionDidChange(previousTraitCollection) setTableViewMargins(forWidth: view.frame.width) } + + func hideButtonPanel() { + buttonPanel.isHidden = true + createANewSiteButton.isHidden = true + tableViewBottomContraint.constant = 0 + } } // MARK: - Private Extension @@ -161,17 +169,7 @@ private extension LoginEpilogueViewController { blurEffectView.isHidden = true } - guard dividerView == nil else { return } - dividerView = LoginEpilogueDividerView() - guard let dividerView = dividerView else { return } - dividerView.translatesAutoresizingMaskIntoConstraints = false - buttonPanel.addSubview(dividerView) - NSLayoutConstraint.activate([ - dividerView.leadingAnchor.constraint(equalTo: buttonPanel.leadingAnchor), - dividerView.trailingAnchor.constraint(equalTo: buttonPanel.trailingAnchor), - dividerView.topAnchor.constraint(equalTo: buttonPanel.topAnchor), - dividerView.heightAnchor.constraint(equalToConstant: 40) - ]) + setupDividerLineIfNeeded() } func setTableViewMargins(forWidth viewWidth: CGFloat) { @@ -192,6 +190,20 @@ private extension LoginEpilogueViewController { tableViewTrailingConstraint.constant = margin } + func setupDividerLineIfNeeded() { + guard dividerView == nil else { return } + dividerView = LoginEpilogueDividerView() + guard let dividerView = dividerView else { return } + dividerView.translatesAutoresizingMaskIntoConstraints = false + buttonPanel.addSubview(dividerView) + NSLayoutConstraint.activate([ + dividerView.leadingAnchor.constraint(equalTo: buttonPanel.leadingAnchor), + dividerView.trailingAnchor.constraint(equalTo: buttonPanel.trailingAnchor), + dividerView.topAnchor.constraint(equalTo: buttonPanel.topAnchor), + dividerView.heightAnchor.constraint(equalToConstant: 40) + ]) + } + enum TableViewMarginMultipliers { static let ipadPortrait: CGFloat = 0.1667 static let ipadLandscape: CGFloat = 0.25 @@ -200,8 +212,6 @@ private extension LoginEpilogueViewController { // MARK: - Actions @IBAction func createANewSite() { - tracker.track(click: .continue) - onDismiss?() - navigationController?.dismiss(animated: true) + // TODO: implement } } From ab37fac0fb6a920032e21d296082a6bdac6f63da Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 13:18:27 +0200 Subject: [PATCH 223/371] Fix separators --- .../LoginEpilogueTableViewController.swift | 34 ++++++------------- 1 file changed, 11 insertions(+), 23 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 9ba0e130ed59..0bdf49ff71d4 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -35,10 +35,6 @@ class LoginEpilogueTableViewController: UITableViewController { let userInfoNib = UINib(nibName: "EpilogueUserInfoCell", bundle: nil) tableView.register(userInfoNib, forCellReuseIdentifier: Settings.userCellReuseIdentifier) tableView.register(LoginEpilogueChooseSiteTableViewCell.self, forCellReuseIdentifier: Settings.chooseSiteReuseIdentifier) - - // Remove separator line on last row - tableView.tableFooterView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: 0, height: 1))) - view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground } @@ -95,6 +91,7 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.userCellReuseIdentifier) as? EpilogueUserInfoCell else { return UITableViewCell() } + removeSeparatorFor(cell) if let info = epilogueUserInfo { cell.stopSpinner() cell.configure(userInfo: info) @@ -107,6 +104,7 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.chooseSiteReuseIdentifier, for: indexPath) as? LoginEpilogueChooseSiteTableViewCell else { return UITableViewCell() } + removeSeparatorFor(cell) return cell } } @@ -118,7 +116,9 @@ extension LoginEpilogueTableViewController { guard let loginCell = cell as? LoginEpilogueBlogCell else { return cell } - + if indexPath.row == lastRowInSection(indexPath.section) { + removeSeparatorFor(cell) + } loginCell.adjustSiteNameConstraint() return loginCell } @@ -127,24 +127,6 @@ extension LoginEpilogueTableViewController { return indexPath.section == Sections.userInfoSection ? Settings.profileRowHeight : Settings.blogRowHeight } - override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { - return UITableView.automaticDimension - } - - override func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { - - if section == Sections.userInfoSection { - return 0 - } - - if rowCount(forSection: section) == 0 { - tableView.separatorStyle = .none - return 0 - } - - return UITableView.automaticDimension - } - override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { return false } @@ -170,9 +152,15 @@ private extension LoginEpilogueTableViewController { } */ + func removeSeparatorFor(_ cell: UITableViewCell) { + cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) + } + + /* func rowCount(forSection section: Int) -> Int { return blogDataSource.tableView(tableView, numberOfRowsInSection: section - 1) } + */ enum Sections { static let userInfoSection = 0 From bcc2a99d2a571224f336b94c7d70ba392f07a602 Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 15:07:09 +0200 Subject: [PATCH 224/371] Add LoginEpilogueCreateNewSiteCell --- .../NUX/LoginEpilogueCreateNewSiteCell.swift | 62 +++++++++++++++++++ .../LoginEpilogueTableViewController.swift | 34 +++++++++- WordPress/WordPress.xcodeproj/project.pbxproj | 6 ++ 3 files changed, 99 insertions(+), 3 deletions(-) create mode 100644 WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift new file mode 100644 index 000000000000..57f68be54e2e --- /dev/null +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift @@ -0,0 +1,62 @@ +import UIKit +import WordPressUI + +protocol LoginEpilogueCreateNewSiteCellDelegate: AnyObject { + func didTapCreateNewSite() +} + +final class LoginEpilogueCreateNewSiteCell: UITableViewCell { + private let dividerView = LoginEpilogueDividerView() + private let createNewSiteButton = FancyButton() + weak var delegate: LoginEpilogueCreateNewSiteCellDelegate? + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + setupViews() + } + + @available(*, unavailable) + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } +} + +// MARK: - Private Methods +private extension LoginEpilogueCreateNewSiteCell { + func setupViews() { +// selectionStyle = .none + setupDividerView() + setupCreateNewSiteButton() + contentView.isUserInteractionEnabled = true + } + + func setupDividerView() { + dividerView.translatesAutoresizingMaskIntoConstraints = false + contentView.addSubview(dividerView) + NSLayoutConstraint.activate([ + dividerView.leadingAnchor.constraint(equalTo: leadingAnchor), + dividerView.trailingAnchor.constraint(equalTo: trailingAnchor), + dividerView.topAnchor.constraint(equalTo: topAnchor, constant: 20), + dividerView.heightAnchor.constraint(equalToConstant: 48) + ]) + } + + func setupCreateNewSiteButton() { + createNewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "A button title"), for: .normal) + createNewSiteButton.accessibilityIdentifier = "Create a new site" + createNewSiteButton.isPrimary = false + createNewSiteButton.addTarget(self, action: #selector(didTapCreateNewSiteButton), for: .touchUpInside) + createNewSiteButton.translatesAutoresizingMaskIntoConstraints = false + contentView.addSubview(createNewSiteButton) + NSLayoutConstraint.activate([ + createNewSiteButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20), + createNewSiteButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20), + createNewSiteButton.topAnchor.constraint(equalTo: dividerView.bottomAnchor), + createNewSiteButton.heightAnchor.constraint(equalToConstant: 42) + ]) + } + + @objc func didTapCreateNewSiteButton() { + delegate?.didTapCreateNewSite() + } +} diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 0bdf49ff71d4..b67f92fc9f92 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -35,6 +35,7 @@ class LoginEpilogueTableViewController: UITableViewController { let userInfoNib = UINib(nibName: "EpilogueUserInfoCell", bundle: nil) tableView.register(userInfoNib, forCellReuseIdentifier: Settings.userCellReuseIdentifier) tableView.register(LoginEpilogueChooseSiteTableViewCell.self, forCellReuseIdentifier: Settings.chooseSiteReuseIdentifier) + tableView.register(LoginEpilogueCreateNewSiteCell.self, forCellReuseIdentifier: Settings.createNewSiteReuseIdentifier) view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground } @@ -76,11 +77,13 @@ extension LoginEpilogueTableViewController { let correctedSection = section - 1 let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) - if siteRows < 4, let parent = parent as? LoginEpilogueViewController { + // Add one for Create new site cell + if siteRows <= 3, let parent = parent as? LoginEpilogueViewController { parent.hideButtonPanel() + return siteRows + 1 + } else { + return siteRows } - - return siteRows } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { @@ -109,6 +112,18 @@ extension LoginEpilogueTableViewController { } } + // Create new site row + let siteRows = tableView.numberOfRows(inSection: indexPath.section) + let threshold = 4 // 3 site rows + 1 create site row + if siteRows <= threshold && indexPath.row == lastRowInSection(indexPath.section) { + guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.createNewSiteReuseIdentifier, for: indexPath) as? LoginEpilogueCreateNewSiteCell else { + return UITableViewCell() + } + cell.delegate = self + removeSeparatorFor(cell) + return cell + } + // Site Rows let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) let cell = blogDataSource.tableView(tableView, cellForRowAt: wrappedPath) @@ -130,6 +145,18 @@ extension LoginEpilogueTableViewController { override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { return false } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + // TODO: implement + } +} + +// MARK: - LoginEpilogueCreateNewSiteCellDelegate +extension LoginEpilogueTableViewController: LoginEpilogueCreateNewSiteCellDelegate { + func didTapCreateNewSite() { + // TODO: implement + print("mika") + } } // MARK: - Private Extension @@ -170,6 +197,7 @@ private extension LoginEpilogueTableViewController { static let headerReuseIdentifier = "SectionHeader" static let userCellReuseIdentifier = "userInfo" static let chooseSiteReuseIdentifier = "chooseSite" + static let createNewSiteReuseIdentifier = "createNewSite" static let profileRowHeight = CGFloat(180) static let blogRowHeight = CGFloat(60) static let headerHeight = CGFloat(50) diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index df94ab1a2622..eda905340210 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -1538,6 +1538,8 @@ 93E6336A272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */; }; 93E6336C272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */; }; 93E6336D272AF504009DACF8 /* LoginEpilogueDividerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */; }; + 93E6336F272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336E272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift */; }; + 93E63370272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E6336E272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift */; }; 93E9050719E6F3D8005513C9 /* ContextManagerMock.m in Sources */ = {isa = PBXBuildFile; fileRef = 93E9050619E6F3D8005513C9 /* ContextManagerMock.m */; }; 93EF094C19ED533500C89770 /* ContextManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93E9050319E6F242005513C9 /* ContextManagerTests.swift */; }; 93F2E53E1E9E5A010050D489 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E131CB5116CACA6B004B0314 /* CoreText.framework */; }; @@ -6204,6 +6206,7 @@ 93E5285719A7AA5C003A1A9C /* WordPressTodayWidget.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = WordPressTodayWidget.entitlements; sourceTree = ""; }; 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueChooseSiteTableViewCell.swift; sourceTree = ""; }; 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueDividerView.swift; sourceTree = ""; }; + 93E6336E272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginEpilogueCreateNewSiteCell.swift; sourceTree = ""; }; 93E9050219E6F240005513C9 /* WordPressTest-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressTest-Bridging-Header.h"; sourceTree = ""; }; 93E9050319E6F242005513C9 /* ContextManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ContextManagerTests.swift; sourceTree = ""; }; 93E9050519E6F3D8005513C9 /* ContextManagerMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextManagerMock.h; sourceTree = ""; }; @@ -14065,6 +14068,7 @@ children = ( 433432511E9ED18900915988 /* LoginEpilogueViewController.swift */, 93E63368272AC532009DACF8 /* LoginEpilogueChooseSiteTableViewCell.swift */, + 93E6336E272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift */, 93E6336B272AF504009DACF8 /* LoginEpilogueDividerView.swift */, 43FB3F461EC10F1E00FC8A62 /* LoginEpilogueTableViewController.swift */, ); @@ -18081,6 +18085,7 @@ FA1A55EF25A6F0740033967D /* RestoreStatusView.swift in Sources */, 175CC1702720548700622FB4 /* DomainExpiryDateFormatter.swift in Sources */, 985793C822F23D7000643DBF /* CustomizeInsightsCell.swift in Sources */, + 93E6336F272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift in Sources */, 8261B4CC1EA8E13700668298 /* SVProgressHUD+Dismiss.m in Sources */, 329F8E5624DDAC61002A5311 /* DynamicHeightCollectionView.swift in Sources */, 436D56242117312700CEAA33 /* RegisterDomainDetailsViewModel+RowList.swift in Sources */, @@ -19359,6 +19364,7 @@ FABB214F2602FC2C00C8785C /* PostNoticeViewModel.swift in Sources */, FABB21502602FC2C00C8785C /* JetpackInstallStore.swift in Sources */, FABB21512602FC2C00C8785C /* WizardNavigation.swift in Sources */, + 93E63370272C1074009DACF8 /* LoginEpilogueCreateNewSiteCell.swift in Sources */, FABB21522602FC2C00C8785C /* BuildConfiguration.swift in Sources */, FABB21532602FC2C00C8785C /* PaddedLabel.swift in Sources */, FABB21542602FC2C00C8785C /* PostService.m in Sources */, From 1a30276818a60ce75ff8a78532fcbe28d0b351cf Mon Sep 17 00:00:00 2001 From: Nikola Milicevic Date: Fri, 29 Oct 2021 16:08:11 +0200 Subject: [PATCH 225/371] Cleanup. --- .../NUX/LoginEpilogueCreateNewSiteCell.swift | 5 ++--- .../NUX/LoginEpilogueTableViewController.swift | 18 ------------------ 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift index 57f68be54e2e..f85d072e5763 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift @@ -24,15 +24,14 @@ final class LoginEpilogueCreateNewSiteCell: UITableViewCell { // MARK: - Private Methods private extension LoginEpilogueCreateNewSiteCell { func setupViews() { -// selectionStyle = .none + selectionStyle = .none setupDividerView() setupCreateNewSiteButton() - contentView.isUserInteractionEnabled = true } func setupDividerView() { dividerView.translatesAutoresizingMaskIntoConstraints = false - contentView.addSubview(dividerView) + addSubview(dividerView) NSLayoutConstraint.activate([ dividerView.leadingAnchor.constraint(equalTo: leadingAnchor), dividerView.trailingAnchor.constraint(equalTo: trailingAnchor), diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index b67f92fc9f92..b790ad61dc1e 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -155,7 +155,6 @@ extension LoginEpilogueTableViewController { extension LoginEpilogueTableViewController: LoginEpilogueCreateNewSiteCellDelegate { func didTapCreateNewSite() { // TODO: implement - print("mika") } } @@ -168,27 +167,10 @@ private extension LoginEpilogueTableViewController { return (tableView.numberOfRows(inSection: section) - 1) } - /// Returns the number of WordPress.com sites. - /// - /* - var numberOfWordPressComBlogs: Int { - let context = ContextManager.sharedInstance().mainContext - let service = AccountService(managedObjectContext: context) - - return service.defaultWordPressComAccount()?.blogs.count ?? 0 - } - */ - func removeSeparatorFor(_ cell: UITableViewCell) { cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) } - /* - func rowCount(forSection section: Int) -> Int { - return blogDataSource.tableView(tableView, numberOfRowsInSection: section - 1) - } - */ - enum Sections { static let userInfoSection = 0 } From 98f02e7a6b47b75fff70007abd8b1af75d94e3bb Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 14:20:09 +0000 Subject: [PATCH 226/371] Fix: apply the correct constraints This fixes an issue where the cell content was being displayed outside of the calculated cell height. --- .../NUX/LoginEpilogueCreateNewSiteCell.swift | 15 ++++++++------- .../NUX/LoginEpilogueTableViewController.swift | 1 + 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift index f85d072e5763..5eed278a8aa7 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift @@ -31,11 +31,11 @@ private extension LoginEpilogueCreateNewSiteCell { func setupDividerView() { dividerView.translatesAutoresizingMaskIntoConstraints = false - addSubview(dividerView) + contentView.addSubview(dividerView) NSLayoutConstraint.activate([ - dividerView.leadingAnchor.constraint(equalTo: leadingAnchor), - dividerView.trailingAnchor.constraint(equalTo: trailingAnchor), - dividerView.topAnchor.constraint(equalTo: topAnchor, constant: 20), + dividerView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), + dividerView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), + dividerView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 20), dividerView.heightAnchor.constraint(equalToConstant: 48) ]) } @@ -48,10 +48,11 @@ private extension LoginEpilogueCreateNewSiteCell { createNewSiteButton.translatesAutoresizingMaskIntoConstraints = false contentView.addSubview(createNewSiteButton) NSLayoutConstraint.activate([ - createNewSiteButton.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20), - createNewSiteButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20), + createNewSiteButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 20), + createNewSiteButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -20), createNewSiteButton.topAnchor.constraint(equalTo: dividerView.bottomAnchor), - createNewSiteButton.heightAnchor.constraint(equalToConstant: 42) + createNewSiteButton.heightAnchor.constraint(equalToConstant: 42), + createNewSiteButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor) ]) } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index b790ad61dc1e..77e667b8d571 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -38,6 +38,7 @@ class LoginEpilogueTableViewController: UITableViewController { tableView.register(LoginEpilogueCreateNewSiteCell.self, forCellReuseIdentifier: Settings.createNewSiteReuseIdentifier) view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground + tableView.rowHeight = UITableView.automaticDimension } /// Initializes the EpilogueTableView so that data associated with the specified Endpoint is displayed. From bc0f96ec57bf5803b1f780554b0a95a2dc49ba62 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 16:47:39 +0000 Subject: [PATCH 227/371] Refactor: define constants for LoginEpilogueCreateNewSiteCell --- .../NUX/LoginEpilogueCreateNewSiteCell.swift | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift index 5eed278a8aa7..4d3e37abed83 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueCreateNewSiteCell.swift @@ -35,8 +35,8 @@ private extension LoginEpilogueCreateNewSiteCell { NSLayoutConstraint.activate([ dividerView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), dividerView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), - dividerView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 20), - dividerView.heightAnchor.constraint(equalToConstant: 48) + dividerView.topAnchor.constraint(equalTo: contentView.topAnchor, constant: Constants.dividerViewTopMargin), + dividerView.heightAnchor.constraint(equalToConstant: Constants.dividerViewHeight) ]) } @@ -48,10 +48,10 @@ private extension LoginEpilogueCreateNewSiteCell { createNewSiteButton.translatesAutoresizingMaskIntoConstraints = false contentView.addSubview(createNewSiteButton) NSLayoutConstraint.activate([ - createNewSiteButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: 20), - createNewSiteButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -20), + createNewSiteButton.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: Constants.createNewSiteButtonHorizontalMargin), + createNewSiteButton.trailingAnchor.constraint(equalTo: contentView.trailingAnchor, constant: -Constants.createNewSiteButtonHorizontalMargin), createNewSiteButton.topAnchor.constraint(equalTo: dividerView.bottomAnchor), - createNewSiteButton.heightAnchor.constraint(equalToConstant: 42), + createNewSiteButton.heightAnchor.constraint(equalToConstant: Constants.createNewSiteButtonHeight), createNewSiteButton.bottomAnchor.constraint(equalTo: contentView.bottomAnchor) ]) } @@ -59,4 +59,11 @@ private extension LoginEpilogueCreateNewSiteCell { @objc func didTapCreateNewSiteButton() { delegate?.didTapCreateNewSite() } + + private enum Constants { + static let dividerViewTopMargin: CGFloat = 20.0 + static let dividerViewHeight: CGFloat = 48.0 + static let createNewSiteButtonHorizontalMargin: CGFloat = 20.0 + static let createNewSiteButtonHeight: CGFloat = 44.0 + } } From 3f6e6204df56c5278e0ef7f5f47b6b7f517cad70 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 16:48:10 +0000 Subject: [PATCH 228/371] Refactor: define constants for divider view --- .../ViewRelated/NUX/LoginEpilogueViewController.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index b79492c0599d..2a83e771e70b 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -200,7 +200,7 @@ private extension LoginEpilogueViewController { dividerView.leadingAnchor.constraint(equalTo: buttonPanel.leadingAnchor), dividerView.trailingAnchor.constraint(equalTo: buttonPanel.trailingAnchor), dividerView.topAnchor.constraint(equalTo: buttonPanel.topAnchor), - dividerView.heightAnchor.constraint(equalToConstant: 40) + dividerView.heightAnchor.constraint(equalToConstant: Constants.dividerViewHeight) ]) } @@ -209,6 +209,10 @@ private extension LoginEpilogueViewController { static let ipadLandscape: CGFloat = 0.25 } + private enum Constants { + static let dividerViewHeight: CGFloat = 40.0 + } + // MARK: - Actions @IBAction func createANewSite() { From 561bcc2805fcbda53d357467c75e66f5a54148c8 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 16:56:04 +0000 Subject: [PATCH 229/371] Refactor: use divider muriel color --- .../ViewRelated/NUX/LoginEpilogueDividerView.swift | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift index 1c16ad3b6a39..2d9fb97f015e 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueDividerView.swift @@ -26,7 +26,7 @@ private extension LoginEpilogueDividerView { } func setupTitleLabel() { - dividerLabel.textColor = color + dividerLabel.textColor = .divider dividerLabel.font = .preferredFont(forTextStyle: .footnote) dividerLabel.text = NSLocalizedString("Or", comment: "Divider on initial auth view separating auth options.").localizedUppercase dividerLabel.translatesAutoresizingMaskIntoConstraints = false @@ -38,7 +38,7 @@ private extension LoginEpilogueDividerView { } func setupLeadingDividerLine() { - leadingDividerLine.backgroundColor = color + leadingDividerLine.backgroundColor = .divider leadingDividerLine.translatesAutoresizingMaskIntoConstraints = false addSubview(leadingDividerLine) NSLayoutConstraint.activate([ @@ -50,7 +50,7 @@ private extension LoginEpilogueDividerView { } func setupTrailingDividerLine() { - trailingDividerLine.backgroundColor = color + trailingDividerLine.backgroundColor = .divider trailingDividerLine.translatesAutoresizingMaskIntoConstraints = false addSubview(trailingDividerLine) NSLayoutConstraint.activate([ @@ -61,10 +61,3 @@ private extension LoginEpilogueDividerView { ]) } } - -// MARK: - Private Computed Properties -private extension LoginEpilogueDividerView { - var color: UIColor? { - WordPressAuthenticator.shared.unifiedStyle?.borderColor ?? WordPressAuthenticator.shared.style.primaryNormalBorderColor - } -} From ca6a73e20dc3be2c7414652a61a615693addbdac Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 17:02:48 +0000 Subject: [PATCH 230/371] Fix: remove seperator line on last row --- .../ViewRelated/NUX/LoginEpilogueTableViewController.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 77e667b8d571..0e740c4ca9b9 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -39,6 +39,9 @@ class LoginEpilogueTableViewController: UITableViewController { view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground tableView.rowHeight = UITableView.automaticDimension + + // Remove separator line on last row + tableView.tableFooterView = UIView() } /// Initializes the EpilogueTableView so that data associated with the specified Endpoint is displayed. From 1b0e9f4cafc3ed79789caec7f5909b661521671e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 1 Nov 2021 17:53:47 +0000 Subject: [PATCH 231/371] Fix: hide Create A New Site button for Jetpack --- .../LoginEpilogueTableViewController.swift | 33 +++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 0e740c4ca9b9..3c34a329afdd 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -23,6 +23,20 @@ class LoginEpilogueTableViewController: UITableViewController { /// private var credentials: AuthenticatorCredentials? + /// Flag indicating if the Create A New Site button should be displayed. + /// + private var showCreateNewSite: Bool { + guard AppConfiguration.allowsConnectSite else { + return false + } + + guard let wpcom = credentials?.wpcom else { + return true + } + + return !wpcom.isJetpackLogin + } + private var tracker: AuthenticatorAnalyticsTracker { AuthenticatorAnalyticsTracker.shared } @@ -69,6 +83,11 @@ extension LoginEpilogueTableViewController { } } + // Add one for Connect Site if there are no sites from blogDataSource. + if adjustedNumberOfSections == 0 && showCreateNewSite { + adjustedNumberOfSections += 1 + } + // Add one for User Info return adjustedNumberOfSections + 1 } @@ -82,10 +101,18 @@ extension LoginEpilogueTableViewController { let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) // Add one for Create new site cell - if siteRows <= 3, let parent = parent as? LoginEpilogueViewController { + + guard let parent = parent as? LoginEpilogueViewController else { + return siteRows + } + + if siteRows <= 3 { parent.hideButtonPanel() - return siteRows + 1 + return showCreateNewSite ? siteRows + 1 : siteRows } else { + if !showCreateNewSite { + parent.hideButtonPanel() + } return siteRows } } @@ -119,7 +146,7 @@ extension LoginEpilogueTableViewController { // Create new site row let siteRows = tableView.numberOfRows(inSection: indexPath.section) let threshold = 4 // 3 site rows + 1 create site row - if siteRows <= threshold && indexPath.row == lastRowInSection(indexPath.section) { + if siteRows <= threshold && indexPath.row == lastRowInSection(indexPath.section) && showCreateNewSite { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.createNewSiteReuseIdentifier, for: indexPath) as? LoginEpilogueCreateNewSiteCell else { return UITableViewCell() } From ae7f0debaf21fcd3a0c8bc6324a05380f905c6b0 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 2 Nov 2021 10:19:11 +0000 Subject: [PATCH 232/371] Refactor: define constants for choose site cell --- .../LoginEpilogueChooseSiteTableViewCell.swift | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift index 44da3f629187..6e4fe9bdb9e9 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift @@ -40,15 +40,22 @@ private extension LoginEpilogueChooseSiteTableViewCell { func setupStackView() { stackView.axis = .vertical stackView.alignment = .leading - stackView.spacing = 6 + stackView.spacing = Constants.stackViewSpacing stackView.translatesAutoresizingMaskIntoConstraints = false stackView.addArrangedSubviews([titleLabel, subtitleLabel]) addSubview(stackView) NSLayoutConstraint.activate([ - stackView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 20), - stackView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20), - stackView.topAnchor.constraint(equalTo: topAnchor, constant: 16), - stackView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -26) + stackView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: Constants.stackViewHorizontalMargin), + stackView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -Constants.stackViewHorizontalMargin), + stackView.topAnchor.constraint(equalTo: topAnchor, constant: Constants.stackViewTopMargin), + stackView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -Constants.stackViewBottomMargin) ]) } + + private enum Constants { + static let stackViewSpacing: CGFloat = 8.0 + static let stackViewHorizontalMargin: CGFloat = 20.0 + static let stackViewTopMargin: CGFloat = 16.0 + static let stackViewBottomMargin: CGFloat = 26.0 + } } From 0112ec7354f6cca8205362d7a1f466f2b13ae710 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 2 Nov 2021 10:20:44 +0000 Subject: [PATCH 233/371] Fix: update comment --- .../ViewRelated/NUX/LoginEpilogueTableViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 3c34a329afdd..725b7c486c26 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -83,7 +83,7 @@ extension LoginEpilogueTableViewController { } } - // Add one for Connect Site if there are no sites from blogDataSource. + // Add one for Create A New Site if there are no sites from blogDataSource. if adjustedNumberOfSections == 0 && showCreateNewSite { adjustedNumberOfSections += 1 } From 94ef920141ae4909cc0444b129e2431376fe6c4f Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 2 Nov 2021 10:24:04 +0000 Subject: [PATCH 234/371] Refactor: extract condition into a bool constant --- .../NUX/LoginEpilogueTableViewController.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 725b7c486c26..819c0ea40778 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -146,7 +146,13 @@ extension LoginEpilogueTableViewController { // Create new site row let siteRows = tableView.numberOfRows(inSection: indexPath.section) let threshold = 4 // 3 site rows + 1 create site row - if siteRows <= threshold && indexPath.row == lastRowInSection(indexPath.section) && showCreateNewSite { + + let isCreateNewSiteRow = + showCreateNewSite && + siteRows <= threshold && + indexPath.row == lastRowInSection(indexPath.section) + + if isCreateNewSiteRow { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.createNewSiteReuseIdentifier, for: indexPath) as? LoginEpilogueCreateNewSiteCell else { return UITableViewCell() } From d658c41ac4c3fb5b284bf34840eb2b950e5855d6 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 2 Nov 2021 11:35:35 +0000 Subject: [PATCH 235/371] Add: dismiss epilogue and navigate to My Site --- .../NUX/LoginEpilogueTableViewController.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 819c0ea40778..f9dca4b14096 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -184,7 +184,13 @@ extension LoginEpilogueTableViewController { } override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - // TODO: implement + guard let parent = parent as? LoginEpilogueViewController, + tableView.cellForRow(at: indexPath) is LoginEpilogueBlogCell else { + return + } + + parent.onDismiss?() + navigationController?.dismiss(animated: true) } } From f69c37c20c72ca69410fb7f14d89383a319b17d6 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Tue, 2 Nov 2021 15:52:39 +0000 Subject: [PATCH 236/371] Refactor: show selected blog --- WordPress/Classes/System/WindowManager.swift | 17 +++++++++++------ .../NUX/LoginEpilogueTableViewController.swift | 7 +++++-- .../NUX/LoginEpilogueViewController.swift | 2 +- .../NUX/WordPressAuthenticationManager.swift | 4 ++-- .../Classes/System/JetpackWindowManager.swift | 4 ++-- 5 files changed, 21 insertions(+), 13 deletions(-) diff --git a/WordPress/Classes/System/WindowManager.swift b/WordPress/Classes/System/WindowManager.swift index ba35331b7ece..0dacf5840fc6 100644 --- a/WordPress/Classes/System/WindowManager.swift +++ b/WordPress/Classes/System/WindowManager.swift @@ -26,9 +26,9 @@ class WindowManager: NSObject { /// Shows the initial UI for the App to be shown right after launch. This method will present the sign-in flow if the user is not /// authenticated, or the actuall App UI if the user is already authenticated. /// - public func showUI() { + public func showUI(for blog: Blog? = nil) { if AccountHelper.isLoggedIn { - showAppUI() + showAppUI(for: blog) } else { showSignInUI() } @@ -45,20 +45,25 @@ class WindowManager: NSObject { showSignInUI() } - func dismissFullscreenSignIn(completion: Completion? = nil) { + func dismissFullscreenSignIn(with blog: Blog? = nil, completion: Completion? = nil) { guard isShowingFullscreenSignIn == true && AccountHelper.isLoggedIn == true else { return } - showAppUI(completion: completion) + showAppUI(for: blog, completion: completion) } /// Shows the UI for authenticated users. /// - func showAppUI(completion: Completion? = nil) { + func showAppUI(for blog: Blog? = nil, completion: Completion? = nil) { isShowingFullscreenSignIn = false - show(WPTabBarController.sharedInstance(), completion: completion) + + guard let blog = blog else { + return + } + + WPTabBarController.sharedInstance()?.mySitesCoordinator.showBlogDetails(for: blog) } /// Shows the initial UI for unauthenticated users. diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index f9dca4b14096..b095e2b07d51 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -188,8 +188,11 @@ extension LoginEpilogueTableViewController { tableView.cellForRow(at: indexPath) is LoginEpilogueBlogCell else { return } - - parent.onDismiss?() + + let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) + let blog = blogDataSource.blog(at: wrappedPath) + + parent.onDismiss?(blog) navigationController?.dismiss(animated: true) } } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 2a83e771e70b..8644c91096e9 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -47,7 +47,7 @@ class LoginEpilogueViewController: UIViewController { /// Closure to be executed upon dismissal. /// - var onDismiss: (() -> Void)? + var onDismiss: ((Blog) -> Void)? /// Site that was just connected to our awesome app. /// diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index fe7653b35d20..f17afbec22ed 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -330,10 +330,10 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { } epilogueViewController.credentials = credentials - epilogueViewController.onDismiss = { [weak self] in + epilogueViewController.onDismiss = { [weak self] blog in onDismiss() - self?.windowManager.dismissFullscreenSignIn() + self?.windowManager.dismissFullscreenSignIn(with: blog) } navigationController.pushViewController(epilogueViewController, animated: true) diff --git a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift index 2e6d81b3699b..80d03e98aba7 100644 --- a/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift +++ b/WordPress/Jetpack/Classes/System/JetpackWindowManager.swift @@ -1,10 +1,10 @@ import Foundation class JetpackWindowManager: WindowManager { - override func showUI() { + 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() + showAppUI(for: blog) return } From b2be93f77a8b5344b40539bdc1df7cda0bd47979 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 3 Nov 2021 09:58:16 +0000 Subject: [PATCH 237/371] Refactor: rename parameter for clarity --- WordPress/Classes/System/WindowManager.swift | 4 ++-- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/System/WindowManager.swift b/WordPress/Classes/System/WindowManager.swift index 0dacf5840fc6..f510bd2a5e78 100644 --- a/WordPress/Classes/System/WindowManager.swift +++ b/WordPress/Classes/System/WindowManager.swift @@ -45,12 +45,12 @@ class WindowManager: NSObject { showSignInUI() } - func dismissFullscreenSignIn(with blog: Blog? = nil, completion: Completion? = nil) { + func dismissFullscreenSignIn(blogToShow: Blog? = nil, completion: Completion? = nil) { guard isShowingFullscreenSignIn == true && AccountHelper.isLoggedIn == true else { return } - showAppUI(for: blog, completion: completion) + showAppUI(for: blogToShow, completion: completion) } /// Shows the UI for authenticated users. diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index f17afbec22ed..d3b205ca8e2f 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -333,7 +333,7 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { epilogueViewController.onDismiss = { [weak self] blog in onDismiss() - self?.windowManager.dismissFullscreenSignIn(with: blog) + self?.windowManager.dismissFullscreenSignIn(blogToShow: blog) } navigationController.pushViewController(epilogueViewController, animated: true) From 1f6f02370d76cd422a698c0225c3d0a20e8953c8 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 3 Nov 2021 10:17:30 +0000 Subject: [PATCH 238/371] Refactor: extract showBlogDetails to extension --- WordPress/Classes/System/WindowManager.swift | 2 +- .../ViewRelated/System/WPTabBarController+ShowTab.swift | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/System/WindowManager.swift b/WordPress/Classes/System/WindowManager.swift index f510bd2a5e78..1ee0ac3f95e2 100644 --- a/WordPress/Classes/System/WindowManager.swift +++ b/WordPress/Classes/System/WindowManager.swift @@ -63,7 +63,7 @@ class WindowManager: NSObject { return } - WPTabBarController.sharedInstance()?.mySitesCoordinator.showBlogDetails(for: blog) + WPTabBarController.sharedInstance()?.showBlogDetails(for: blog) } /// Shows the initial UI for unauthenticated users. diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController+ShowTab.swift b/WordPress/Classes/ViewRelated/System/WPTabBarController+ShowTab.swift index 49aeb27c2e0a..9d91418312e2 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController+ShowTab.swift +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController+ShowTab.swift @@ -1,5 +1,9 @@ extension WPTabBarController { + func showBlogDetails(for blog: Blog) { + mySitesCoordinator.showBlogDetails(for: blog) + } + @objc func showPageEditor(forBlog: Blog? = nil) { showPageEditor(blog: forBlog) } From fdd26116e9da9876d486ad22b355fd8adc2bca09 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 3 Nov 2021 15:03:18 +0000 Subject: [PATCH 239/371] Add: new quick start prompt vc --- .../Blog/QuickStartPromptViewController.swift | 116 +++++++++++++++ .../Blog/QuickStartPromptViewController.xib | 134 ++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 12 ++ 3 files changed, 262 insertions(+) create mode 100644 WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift create mode 100644 WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift new file mode 100644 index 000000000000..eeade639b6f2 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -0,0 +1,116 @@ +import UIKit + +final class QuickStartPromptViewController: UIViewController { + + // MARK: - IBOutlets + + /// Site info + @IBOutlet private weak var siteIconView: UIImageView! + @IBOutlet private weak var siteTitleLabel: UILabel! + @IBOutlet private weak var siteDescriptionLabel: UILabel! + + /// Prompt info + @IBOutlet private weak var promptTitleLabel: UILabel! + @IBOutlet private weak var promptDescriptionLabel: UILabel! + + /// Buttons + @IBOutlet private weak var showMeAroundButton: FancyButton! + @IBOutlet private weak var noThanksButton: FancyButton! + + // MARK: - Properties + + private let blog: Blog + + // MARK: - Init + + init(blog: Blog) { + self.blog = blog + super.init(nibName: nil, bundle: nil) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + // MARK: - Lifecycle + + override func viewDidLoad() { + super.viewDidLoad() + applyStyles() + setup() + } + + // MARK: - Styling + + private func applyStyles() { + siteTitleLabel.numberOfLines = 0 + siteTitleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + siteTitleLabel.textColor = .text + + siteDescriptionLabel.numberOfLines = 0 + siteDescriptionLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + siteDescriptionLabel.textColor = .textSubtle + + promptTitleLabel.numberOfLines = 0 + promptTitleLabel.font = WPStyleGuide.fontForTextStyle(.callout, fontWeight: .medium) + promptTitleLabel.textColor = .text + + promptDescriptionLabel.numberOfLines = 0 + promptDescriptionLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + promptDescriptionLabel.textColor = .textSubtle + + showMeAroundButton.isPrimary = true + noThanksButton.isPrimary = false + } + + // MARK: - Setup + + private func setup() { + setupSiteInfoViews() + setupPromptInfoViews() + setupButtons() + } + + private func setupSiteInfoViews() { + siteIconView.downloadSiteIcon(for: blog) + + let displayURL = blog.displayURL as String? ?? "" + if let name = blog.settings?.name?.nonEmptyString() { + siteTitleLabel.text = name + siteDescriptionLabel.text = displayURL + } else { + siteTitleLabel.text = displayURL + siteDescriptionLabel.text = nil + } + } + + private func setupPromptInfoViews() { + promptTitleLabel.text = Strings.promptTitle + promptDescriptionLabel.text = Strings.promptDescription + } + + private func setupButtons() { + showMeAroundButton.setTitle(Strings.showMeAroundButtonTitle, for: .normal) + noThanksButton.setTitle(Strings.noThanksButtonTitle, for: .normal) + } + + // MARK: - IBAction + + @IBAction private func showMeAroundButtonTapped(_ sender: Any) { + dismiss(animated: true) + } + + @IBAction private func noThanksButtonTapped(_ sender: Any) { + dismiss(animated: true) + } +} + +extension QuickStartPromptViewController { + + private enum Strings { + static let promptTitle = NSLocalizedString("Want a little help managing this site with the app?", comment: "Title for a prompt asking if users want to try out the quick start checklist.") + static let promptDescription = NSLocalizedString("Learn the basics with a quick walk through.", comment: "Description for a prompt asking if users want to try out the quick start checklist.") + static let showMeAroundButtonTitle = NSLocalizedString("Show me around", comment: "Button title. When tapped, the quick start checklist will be shown.") + static let noThanksButtonTitle = NSLocalizedString("No thanks", comment: "Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed.") + } +} diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib new file mode 100644 index 000000000000..5f1198a82fe2 --- /dev/null +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index eda905340210..8315249df20b 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -4341,6 +4341,10 @@ FADFBD3C265F5B2E00039C41 /* WPStyleGuide+Jetpack.swift in Sources */ = {isa = PBXBuildFile; fileRef = FADFBD3A265F5B2E00039C41 /* WPStyleGuide+Jetpack.swift */; }; FAE4201A1C5AEFE100C1D036 /* StartOverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE420191C5AEFE100C1D036 /* StartOverViewController.swift */; }; FAE4327425874D140039EB8C /* ReaderSavedPostCellActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE4327325874D140039EB8C /* ReaderSavedPostCellActions.swift */; }; + FAE4CA682732C094003BFDFE /* QuickStartPromptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE4CA662732C094003BFDFE /* QuickStartPromptViewController.swift */; }; + FAE4CA692732C094003BFDFE /* QuickStartPromptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE4CA662732C094003BFDFE /* QuickStartPromptViewController.swift */; }; + FAE4CA6A2732C094003BFDFE /* QuickStartPromptViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FAE4CA672732C094003BFDFE /* QuickStartPromptViewController.xib */; }; + FAE4CA6B2732C094003BFDFE /* QuickStartPromptViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = FAE4CA672732C094003BFDFE /* QuickStartPromptViewController.xib */; }; FAF13C5325A57ABD003EE470 /* JetpackRestoreWarningViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAF13C5225A57ABD003EE470 /* JetpackRestoreWarningViewController.swift */; }; FAF13E3025A59240003EE470 /* JetpackRestoreStatusViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAF13E2F25A59240003EE470 /* JetpackRestoreStatusViewController.swift */; }; FAF64B6F2637DEEC00E8A1DF /* BaseScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE2B4E9E1FD664F5007AE3E4 /* BaseScreen.swift */; }; @@ -7593,6 +7597,8 @@ FADFBD3A265F5B2E00039C41 /* WPStyleGuide+Jetpack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "WPStyleGuide+Jetpack.swift"; sourceTree = ""; }; FAE420191C5AEFE100C1D036 /* StartOverViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StartOverViewController.swift; sourceTree = ""; }; FAE4327325874D140039EB8C /* ReaderSavedPostCellActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSavedPostCellActions.swift; sourceTree = ""; }; + FAE4CA662732C094003BFDFE /* QuickStartPromptViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickStartPromptViewController.swift; sourceTree = ""; }; + FAE4CA672732C094003BFDFE /* QuickStartPromptViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = QuickStartPromptViewController.xib; sourceTree = ""; }; FAF13C5225A57ABD003EE470 /* JetpackRestoreWarningViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackRestoreWarningViewController.swift; sourceTree = ""; }; FAF13E2F25A59240003EE470 /* JetpackRestoreStatusViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackRestoreStatusViewController.swift; sourceTree = ""; }; FAF64BA22637DEEC00E8A1DF /* JetpackScreenshotGeneration.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = JetpackScreenshotGeneration.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -9844,6 +9850,8 @@ 98FF6A3D23A30A240025FD72 /* QuickStartNavigationSettings.swift */, 4348C88221002FBD00735DC0 /* QuickStartTourGuide.swift */, 4395A1582106389800844E8E /* QuickStartTours.swift */, + FAE4CA662732C094003BFDFE /* QuickStartPromptViewController.swift */, + FAE4CA672732C094003BFDFE /* QuickStartPromptViewController.xib */, 9A4E215D21F87A8500EFF212 /* Cells */, 9A4E215E21F87AC300EFF212 /* Views */, ); @@ -15327,6 +15335,7 @@ 17222D88261DDDF90047B163 /* celadon-icon-app-60x60@2x.png in Resources */, C700F9D2257FD63A0090938E /* JetpackScanViewController.xib in Resources */, B5C66B741ACF071F00F68370 /* NoteBlockActionsTableViewCell.xib in Resources */, + FAE4CA6A2732C094003BFDFE /* QuickStartPromptViewController.xib in Resources */, F5A34D1125DF2F7F00C9654B /* Pacifico-Regular.ttf in Resources */, FA1CEAD425CA9C40005E7038 /* RestoreStatusFailedView.xib in Resources */, 1761F17B26209AEE000815EF /* open-source-icon-app-60x60@2x.png in Resources */, @@ -15894,6 +15903,7 @@ FABB20072602FC2C00C8785C /* SitePromptView.xib in Resources */, FABB20082602FC2C00C8785C /* DeleteSite.storyboard in Resources */, FABB200A2602FC2C00C8785C /* Noticons.ttf in Resources */, + FAE4CA6B2732C094003BFDFE /* QuickStartPromptViewController.xib in Resources */, FABB200B2602FC2C00C8785C /* LoginEpilogue.storyboard in Resources */, FABB200C2602FC2C00C8785C /* AddressCell.xib in Resources */, 98B88467261E4E4E007ED7F8 /* LikeUserTableViewCell.xib in Resources */, @@ -18237,6 +18247,7 @@ 3F8D988926153484003619E5 /* UnifiedPrologueBackgroundView.swift in Sources */, E65219FB1B8D10DA000B1217 /* ReaderBlockedSiteCell.swift in Sources */, FAF13C5325A57ABD003EE470 /* JetpackRestoreWarningViewController.swift in Sources */, + FAE4CA682732C094003BFDFE /* QuickStartPromptViewController.swift in Sources */, 73C8F06321BEEF2F00DDDF7E /* SiteAssembly.swift in Sources */, 326E281B250AC4A50029EBF0 /* ImageDimensionFetcher.swift in Sources */, 7435CE7320A4B9170075A1B9 /* AnimatedImageCache.swift in Sources */, @@ -20560,6 +20571,7 @@ FABB258B2602FC2C00C8785C /* Blog+BlogAuthors.swift in Sources */, FABB258C2602FC2C00C8785C /* ActivityContentStyles.swift in Sources */, FABB258D2602FC2C00C8785C /* CategorySectionTableViewCell.swift in Sources */, + FAE4CA692732C094003BFDFE /* QuickStartPromptViewController.swift in Sources */, FABB258E2602FC2C00C8785C /* StatsForegroundObservable.swift in Sources */, FABB258F2602FC2C00C8785C /* AbstractPost+TitleForVisibility.swift in Sources */, FABB25902602FC2C00C8785C /* SharingViewController.m in Sources */, From 805ae18937e3d07deb214d332fa96ca9c30f898a Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 3 Nov 2021 15:19:56 +0000 Subject: [PATCH 240/371] Refactor: show quick start after blog is selected in epilogue --- .../Blog/QuickStartPromptViewController.swift | 11 +++++++++-- .../NUX/LoginEpilogueTableViewController.swift | 3 +-- .../NUX/LoginEpilogueViewController.swift | 4 ++-- .../NUX/WordPressAuthenticationManager.swift | 12 +++++++++--- 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index eeade639b6f2..88e85a898389 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -21,6 +21,10 @@ final class QuickStartPromptViewController: UIViewController { private let blog: Blog + /// Closure to be executed upon dismissal. + /// + var onDismiss: ((Blog) -> Void)? + // MARK: - Init init(blog: Blog) { @@ -97,11 +101,14 @@ final class QuickStartPromptViewController: UIViewController { // MARK: - IBAction @IBAction private func showMeAroundButtonTapped(_ sender: Any) { - dismiss(animated: true) + let controller = QuickStartChecklistViewController(blog: blog, type: .customize) + let navigationController = UINavigationController(rootViewController: controller) + present(navigationController, animated: true) } @IBAction private func noThanksButtonTapped(_ sender: Any) { - dismiss(animated: true) + onDismiss?(blog) + navigationController?.dismiss(animated: true) } } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index b095e2b07d51..7365370e209d 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -192,8 +192,7 @@ extension LoginEpilogueTableViewController { let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) let blog = blogDataSource.blog(at: wrappedPath) - parent.onDismiss?(blog) - navigationController?.dismiss(animated: true) + parent.onBlogSelected?(blog) } } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 8644c91096e9..f335ecf1b038 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -45,9 +45,9 @@ class LoginEpilogueViewController: UIViewController { /// private let tracker = AuthenticatorAnalyticsTracker.shared - /// Closure to be executed upon dismissal. + /// Closure to be executed upon blog selection. /// - var onDismiss: ((Blog) -> Void)? + var onBlogSelected: ((Blog) -> Void)? /// Site that was just connected to our awesome app. /// diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index d3b205ca8e2f..c338edcc0af1 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -330,10 +330,16 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { } epilogueViewController.credentials = credentials - epilogueViewController.onDismiss = { [weak self] blog in - onDismiss() - self?.windowManager.dismissFullscreenSignIn(blogToShow: blog) + epilogueViewController.onBlogSelected = { [weak self] blog in + + let quickstartPrompt = QuickStartPromptViewController(blog: blog) + quickstartPrompt.onDismiss = { blog in + onDismiss() + self?.windowManager.dismissFullscreenSignIn(blogToShow: blog) + } + + navigationController.pushViewController(quickstartPrompt, animated: true) } navigationController.pushViewController(epilogueViewController, animated: true) From 29dc8bd3b0ec1dcecb39311c1be4ed5e4ec25378 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 4 Nov 2021 13:38:32 +0000 Subject: [PATCH 241/371] Refactor: show My Site screen briefly before presenting Quick Start --- .../Blog/QuickStartPromptViewController.swift | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 88e85a898389..1b73a2131e8a 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -101,9 +101,16 @@ final class QuickStartPromptViewController: UIViewController { // MARK: - IBAction @IBAction private func showMeAroundButtonTapped(_ sender: Any) { - let controller = QuickStartChecklistViewController(blog: blog, type: .customize) - let navigationController = UINavigationController(rootViewController: controller) - present(navigationController, animated: true) + onDismiss?(blog) + navigationController?.dismiss(animated: true, completion: { [weak self] in + + DispatchQueue.main.asyncAfter(deadline: .now() + Constants.quickStartDelay) { + guard let self = self else { + return + } + QuickStartTourGuide.shared.setup(for: self.blog) + } + }) } @IBAction private func noThanksButtonTapped(_ sender: Any) { @@ -120,4 +127,8 @@ extension QuickStartPromptViewController { static let showMeAroundButtonTitle = NSLocalizedString("Show me around", comment: "Button title. When tapped, the quick start checklist will be shown.") static let noThanksButtonTitle = NSLocalizedString("No thanks", comment: "Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed.") } + + private enum Constants { + static let quickStartDelay: DispatchTimeInterval = DispatchTimeInterval.milliseconds(1000) + } } From 2b5a91cdd80999d78c0a0b54754609efc8711470 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 4 Nov 2021 14:53:02 +0000 Subject: [PATCH 242/371] Refactor: extract dismissPrompt to a method --- .../Blog/QuickStartPromptViewController.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 1b73a2131e8a..0aa0772b3fd1 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -101,8 +101,7 @@ final class QuickStartPromptViewController: UIViewController { // MARK: - IBAction @IBAction private func showMeAroundButtonTapped(_ sender: Any) { - onDismiss?(blog) - navigationController?.dismiss(animated: true, completion: { [weak self] in + dismissPrompt { [weak self] in DispatchQueue.main.asyncAfter(deadline: .now() + Constants.quickStartDelay) { guard let self = self else { @@ -110,12 +109,16 @@ final class QuickStartPromptViewController: UIViewController { } QuickStartTourGuide.shared.setup(for: self.blog) } - }) + } } @IBAction private func noThanksButtonTapped(_ sender: Any) { + dismissPrompt() + } + + private func dismissPrompt(completion: (() -> Void)? = nil) { onDismiss?(blog) - navigationController?.dismiss(animated: true) + navigationController?.dismiss(animated: true, completion: completion) } } From 717ea6a24b0de1a21e347dc7fc9fa2654ac6d701 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 4 Nov 2021 14:54:02 +0000 Subject: [PATCH 243/371] Add: user defaults extension for quick start --- .../Blog/QuickStartPromptViewController.swift | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 0aa0772b3fd1..826d7a454f0d 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -135,3 +135,27 @@ extension QuickStartPromptViewController { static let quickStartDelay: DispatchTimeInterval = DispatchTimeInterval.milliseconds(1000) } } + +extension UserDefaults { + + func quickStartWasDismissed(for blog: Blog) -> Bool { + guard let key = quickStartWasDismissedKey(for: blog) else { + return false + } + return bool(forKey: key) + } + + func setQuickStartWasDismissed(_ value: Bool, for blog: Blog) { + guard let key = quickStartWasDismissedKey(for: blog) else { + return + } + set(value, forKey: key) + } + + private func quickStartWasDismissedKey(for blog: Blog) -> String? { + guard let siteID = blog.dotComID?.intValue else { + return nil + } + return "QuickStartWasDismissed-\(siteID)" + } +} From e5d9281b48743c17800aabd85de061e4edc44396 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 4 Nov 2021 14:55:17 +0000 Subject: [PATCH 244/371] Add: mark quick start as dismissed if No Thanks was tapped --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 826d7a454f0d..7b64c9686f30 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -113,6 +113,7 @@ final class QuickStartPromptViewController: UIViewController { } @IBAction private func noThanksButtonTapped(_ sender: Any) { + UserDefaults.standard.setQuickStartWasDismissed(true, for: blog) dismissPrompt() } From c7cbab54571b5ceca2cab5d43205bb5157ee911e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 4 Nov 2021 14:56:53 +0000 Subject: [PATCH 245/371] Refactor: dismiss and show blog if quick start has already been dismissed --- .../NUX/WordPressAuthenticationManager.swift | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index c338edcc0af1..3484b1e30284 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -331,14 +331,20 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { epilogueViewController.credentials = credentials - epilogueViewController.onBlogSelected = { [weak self] blog in + let dismissAndShowBlog: ((Blog) -> Void) = { [weak self] blog in + onDismiss() + self?.windowManager.dismissFullscreenSignIn(blogToShow: blog) + } - let quickstartPrompt = QuickStartPromptViewController(blog: blog) - quickstartPrompt.onDismiss = { blog in - onDismiss() - self?.windowManager.dismissFullscreenSignIn(blogToShow: blog) + epilogueViewController.onBlogSelected = { blog in + + guard !UserDefaults.standard.quickStartWasDismissed(for: blog) else { + dismissAndShowBlog(blog) + return } + let quickstartPrompt = QuickStartPromptViewController(blog: blog) + quickstartPrompt.onDismiss = dismissAndShowBlog navigationController.pushViewController(quickstartPrompt, animated: true) } From 47d22269c5be30eba0d70e6995b293c0be81620f Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 5 Nov 2021 10:48:07 +0000 Subject: [PATCH 246/371] Update: quick start delay --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 7b64c9686f30..bdcfdd77958a 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -133,7 +133,7 @@ extension QuickStartPromptViewController { } private enum Constants { - static let quickStartDelay: DispatchTimeInterval = DispatchTimeInterval.milliseconds(1000) + static let quickStartDelay: DispatchTimeInterval = .milliseconds(500) } } From b3132e09f8a69243cb50f14a58b193499b77c2c8 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 5 Nov 2021 11:39:10 +0000 Subject: [PATCH 247/371] Fix: follow readable width for quick start prompt --- .../Blog/QuickStartPromptViewController.xib | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib index 5f1198a82fe2..683c68098755 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.xib @@ -22,15 +22,15 @@ - + - + - + @@ -40,16 +40,16 @@ - + - + - + - - - - - - - - - - - - - - - - - + + + + + + + + - - - + + + + + + From bdaa0353966c41751a0c1d282e6805af163efbfa Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 17 Nov 2021 12:30:44 +0000 Subject: [PATCH 269/371] Fix: create new site row display logic If there are less than or equal to 3 site rows, then the last row should be a create new site cell. --- .../ViewRelated/NUX/LoginEpilogueTableViewController.swift | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 92870057cef3..aa0227a24e8d 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -144,12 +144,11 @@ extension LoginEpilogueTableViewController { } // Create new site row - let siteRows = tableView.numberOfRows(inSection: indexPath.section) - let threshold = 4 // 3 site rows + 1 create site row + let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: indexPath.section - 1) let isCreateNewSiteRow = showCreateNewSite && - siteRows <= threshold && + siteRows <= 3 && indexPath.row == lastRowInSection(indexPath.section) if isCreateNewSiteRow { From fa75c97a24f7ae955e57a18da1ae81ae070308b5 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 17 Nov 2021 15:04:05 +0000 Subject: [PATCH 270/371] Refactor: define constant for create new site row threshold --- .../NUX/LoginEpilogueTableViewController.swift | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index aa0227a24e8d..af7e2027c276 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -106,7 +106,7 @@ extension LoginEpilogueTableViewController { return siteRows } - if siteRows <= 3 { + if siteRows <= Constants.createNewSiteRowThreshold { parent.hideButtonPanel() return showCreateNewSite ? siteRows + 1 : siteRows } else { @@ -148,7 +148,7 @@ extension LoginEpilogueTableViewController { let isCreateNewSiteRow = showCreateNewSite && - siteRows <= 3 && + siteRows <= Constants.createNewSiteRowThreshold && indexPath.row == lastRowInSection(indexPath.section) if isCreateNewSiteRow { @@ -193,6 +193,10 @@ extension LoginEpilogueTableViewController { parent.onBlogSelected?(blog) } + + private enum Constants { + static let createNewSiteRowThreshold = 3 + } } // MARK: - LoginEpilogueCreateNewSiteCellDelegate From ec24613a692163a03dee2b4b90b11a13d1374b60 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 17 Nov 2021 15:28:45 +0000 Subject: [PATCH 271/371] Refactor: update button panel configuration No need to configure the button panel based on the content height, since we're simply hiding the panel when there are 3 sites or less. --- .../NUX/LoginEpilogueViewController.swift | 28 ++++--------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 578d6a2bca81..ce674bd2701b 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -112,7 +112,7 @@ class LoginEpilogueViewController: UIViewController { override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - configurePanelBasedOnTableViewContents() + configureButtonPanel() } override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { @@ -151,28 +151,12 @@ private extension LoginEpilogueViewController { /// Setup: Button Panel /// - func configurePanelBasedOnTableViewContents() { - guard let tableView = tableViewController?.tableView else { - return - } - + func configureButtonPanel() { topLineHeightConstraint.constant = .hairlineBorderWidth - - let contentSize = tableView.contentSize - let screenHeight = UIScreen.main.bounds.height - let panelHeight = buttonPanel.frame.height - - if contentSize.height >= (screenHeight - panelHeight) { - buttonPanel.backgroundColor = .quaternaryBackground - topLine.isHidden = false - blurEffectView.effect = UIBlurEffect(style: blurEffect) - blurEffectView.isHidden = false - } else { - buttonPanel.backgroundColor = .basicBackground - topLine.isHidden = true - blurEffectView.isHidden = true - } - + buttonPanel.backgroundColor = .quaternaryBackground + topLine.isHidden = false + blurEffectView.effect = UIBlurEffect(style: blurEffect) + blurEffectView.isHidden = false setupDividerLineIfNeeded() } From 8f71f3523884a8b580c60394c764f70447d92a2e Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 18 Nov 2021 15:44:49 +0000 Subject: [PATCH 272/371] Refactor: don't show quickstart upgrade to v2 alert --- .../BlogDetailsViewController+FancyAlerts.swift | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift index 0800a60f499c..6186faddd36b 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift @@ -56,7 +56,7 @@ extension BlogDetailsViewController { return } let newWorkItem = DispatchWorkItem { [weak self] in - self?.showNoticeOrAlertAsNeeded() + self?.showNoticeAsNeeded() } DispatchQueue.main.asyncAfter(deadline: .now() + 0.2, execute: newWorkItem) alertWorkItem = newWorkItem @@ -80,13 +80,8 @@ extension BlogDetailsViewController { return false } - private func showNoticeOrAlertAsNeeded() { - - if QuickStartTourGuide.shared.shouldShowUpgradeToV2Notice(for: blog) { - showUpgradeToV2Alert(for: blog) - - QuickStartTourGuide.shared.didShowUpgradeToV2Notice(for: blog) - } else if let tourToSuggest = QuickStartTourGuide.shared.tourToSuggest(for: blog) { + private func showNoticeAsNeeded() { + if let tourToSuggest = QuickStartTourGuide.shared.tourToSuggest(for: blog) { QuickStartTourGuide.shared.suggest(tourToSuggest, for: blog) } } From dc8dbd3b2b88c423f4315ebc854cb177eb4fcd4c Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 18 Nov 2021 15:47:32 +0000 Subject: [PATCH 273/371] Remove: reference to quick start v2 notice --- .../BlogDetailsViewController+FancyAlerts.swift | 13 ------------- .../ViewRelated/Blog/QuickStartTourGuide.swift | 17 ----------------- .../ViewRelated/Blog/QuickStartTours.swift | 17 ----------------- 3 files changed, 47 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift index 6186faddd36b..e4fa95bee0fc 100644 --- a/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift +++ b/WordPress/Classes/ViewRelated/Blog/Blog Details/BlogDetailsViewController+FancyAlerts.swift @@ -160,17 +160,4 @@ extension BlogDetailsViewController { section.showQuickStartMenu = true return section } - - private func showUpgradeToV2Alert(for blog: Blog) { - guard noPresentedViewControllers else { - return - } - - let alert = FancyAlertViewController.makeQuickStartUpgradeToV2AlertController(blog: blog) - alert.modalPresentationStyle = .custom - alert.transitioningDelegate = self - tabBarController?.present(alert, animated: true) - - WPAnalytics.track(.quickStartMigrationDialogViewed) - } } diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartTourGuide.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartTourGuide.swift index 0061d3b4c59e..e1a6210b544e 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartTourGuide.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartTourGuide.swift @@ -17,8 +17,6 @@ open class QuickStartTourGuide: NSObject { private override init() {} func setup(for blog: Blog, withCompletedSteps steps: [QuickStartTour] = []) { - didShowUpgradeToV2Notice(for: blog) - let createTour = QuickStartCreateTour() completed(tour: createTour, for: blog) @@ -44,21 +42,6 @@ open class QuickStartTourGuide: NSObject { return checklistCompletedCount > 0 } - func shouldShowUpgradeToV2Notice(for blog: Blog) -> Bool { - guard isQuickStartEnabled(for: blog), - !allOriginalToursCompleted(for: blog) else { - return false - } - - let completedIDs = blog.completedQuickStartTours?.map { $0.tourID } ?? [] - return !completedIDs.contains(QuickStartUpgradeToV2Tour().key) - } - - func didShowUpgradeToV2Notice(for blog: Blog) { - let v2tour = QuickStartUpgradeToV2Tour() - blog.completeTour(v2tour.key) - } - /// Provides a tour to suggest to the user /// /// - Parameter blog: The Blog for which to suggest a tour. diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartTours.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartTours.swift index 09ee2ba2fe0b..d84cb89bd499 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartTours.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartTours.swift @@ -69,23 +69,6 @@ struct QuickStartCreateTour: QuickStartTour { let accessibilityHintText = NSLocalizedString("Guides you through the process of creating your site.", comment: "This value is used to set the accessibility hint text for creating the user's site.") } -/// This is used to track when users from v1 are shown the v2 upgrade notice -/// This should also be created when a site is setup for v2 -struct QuickStartUpgradeToV2Tour: QuickStartTour { - let key = "quick-start-upgrade-to-v2" - let analyticsKey = "upgrade_to_v2" - let title = "" - let titleMarkedCompleted = "" - let description = "" - let icon = UIImage.gridicon(.plus) - let suggestionNoText = Strings.notNow - let suggestionYesText = Strings.yesShowMe - - let waypoints: [QuickStartTour.WayPoint] = [] - - let accessibilityHintText = "" // not applicable for this tour type -} - struct QuickStartViewTour: QuickStartTour { let key = "quick-start-view-tour" let analyticsKey = "view_site" From a9984f6aa2bfcd3f9e1dca8e9198d875373f3ad4 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 18 Nov 2021 15:50:28 +0000 Subject: [PATCH 274/371] Remove: obsolete file --- .../FancyAlertViewController+QuickStart.swift | 79 ------------------- WordPress/WordPress.xcodeproj/project.pbxproj | 6 -- 2 files changed, 85 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/System/FancyAlertViewController+QuickStart.swift diff --git a/WordPress/Classes/ViewRelated/System/FancyAlertViewController+QuickStart.swift b/WordPress/Classes/ViewRelated/System/FancyAlertViewController+QuickStart.swift deleted file mode 100644 index cd0664402c75..000000000000 --- a/WordPress/Classes/ViewRelated/System/FancyAlertViewController+QuickStart.swift +++ /dev/null @@ -1,79 +0,0 @@ -extension FancyAlertViewController { - private struct Strings { - static let titleText = NSLocalizedString("Want a little help getting started?", comment: "Title of alert asking if users want to try out the quick start checklist.") - static let bodyText = NSLocalizedString("We’ll walk you through the basics of building and growing your site", comment: "Body text of alert asking if users want to try out the quick start checklist.") - static let allowButtonText = NSLocalizedString("Yes, Help Me", comment: "Allow button title shown in alert asking if users want to try out the quick start checklist.") - static let notNowText = NSLocalizedString("Not This Time", comment: "Not this time button title shown in alert asking if users want to try out the quick start checklist.") - } - - private struct UpgradeStrings { - static let titleText = NSLocalizedString("We’ve made some changes to your checklist", comment: "Title of alert letting users know we've upgraded the quick start checklist.") - static let bodyText = NSLocalizedString("We’ve added more tasks to help you grow your audience.", comment: "Body text of alert letting users know we've upgraded the quick start checklist.") - static let okButtonText = NSLocalizedString("OK", comment: "Dismiss button of alert letting users know we've upgraded the quick start checklist") - } - - private struct Analytics { - static let locationKey = "location" - static let alertKey = "alert" - } - - /// Create the fancy alert controller for the Quick Start request and marks the QuickStartTourSteps as completed - /// - /// - Returns: FancyAlertViewController of the request - static func makeQuickStartAlertController(blog: Blog, withCompletedSteps steps: [QuickStartTour] = []) -> FancyAlertViewController { - WPAnalytics.track(.quickStartRequestAlertViewed) - - let allowButton = ButtonConfig(Strings.allowButtonText) { controller, _ in - controller.dismiss(animated: true) - - QuickStartTourGuide.shared.setup(for: blog, withCompletedSteps: steps) - - WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "positive"]) - } - - let notNowButton = ButtonConfig(Strings.notNowText) { controller, _ in - controller.dismiss(animated: true) - PushNotificationsManager.shared.deletePendingLocalNotifications() - WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "neutral"]) - } - - let image = UIImage(named: "wp-illustration-tasks-complete-audience") - - let config = FancyAlertViewController.Config(titleText: Strings.titleText, - bodyText: Strings.bodyText, - headerImage: image, - dividerPosition: .bottom, - defaultButton: allowButton, - cancelButton: notNowButton, - appearAction: {}, - dismissAction: {}) - - let controller = FancyAlertViewController.controllerWithConfiguration(configuration: config) - return controller - } - - /// Create the fancy alert controller for the Quick Start upgrade notification - /// - /// - Returns: FancyAlertViewController of the notice - @objc static func makeQuickStartUpgradeToV2AlertController(blog: Blog) -> FancyAlertViewController { - let okButton = ButtonConfig(UpgradeStrings.okButtonText) { controller, _ in - WPAnalytics.track(.quickStartMigrationDialogPositiveTapped) - - controller.dismiss(animated: true) - } - - let image = UIImage(named: "wp-illustration-big-checkmark") - - let config = FancyAlertViewController.Config(titleText: UpgradeStrings.titleText, - bodyText: UpgradeStrings.bodyText, - headerImage: image, - dividerPosition: .bottom, - defaultButton: okButton, - cancelButton: nil, - appearAction: {}, - dismissAction: {}) - - let controller = FancyAlertViewController.controllerWithConfiguration(configuration: config) - return controller - } -} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index cf5e3d2eb140..d757ee4c3253 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -762,7 +762,6 @@ 4326191822FCB9F9003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4326191922FCB9FA003C7642 /* MurielColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4326191422FCB9DC003C7642 /* MurielColor.swift */; }; 4328FED12314788C000EC32A /* ColorPalette.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 435B76292297484200511813 /* ColorPalette.xcassets */; }; - 43290CF4214F755400F6B398 /* FancyAlertViewController+QuickStart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43290CF3214F755400F6B398 /* FancyAlertViewController+QuickStart.swift */; }; 43290D04215C28D800F6B398 /* Blog+QuickStart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43290D03215C28D800F6B398 /* Blog+QuickStart.swift */; }; 43290D0A215E8B1200F6B398 /* QuickStartSpotlightView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43290D09215E8B1200F6B398 /* QuickStartSpotlightView.swift */; }; 432A5AE021F9222A00603959 /* QuickStartListTitleCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 432A5ADF21F9222A00603959 /* QuickStartListTitleCell.swift */; }; @@ -2957,7 +2956,6 @@ FABB20E42602FC2C00C8785C /* ThemeBrowserHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA77E0291BE17CFC006D45E0 /* ThemeBrowserHeaderView.swift */; }; FABB20E52602FC2C00C8785C /* SiteStatsInformation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9874767221963D320080967F /* SiteStatsInformation.swift */; }; FABB20E62602FC2C00C8785C /* TitleSubtitleHeader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 738B9A4B21B85CF20005062B /* TitleSubtitleHeader.swift */; }; - FABB20E72602FC2C00C8785C /* FancyAlertViewController+QuickStart.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43290CF3214F755400F6B398 /* FancyAlertViewController+QuickStart.swift */; }; FABB20E82602FC2C00C8785C /* AppAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17C64BD1248E26A200AF09D7 /* AppAppearance.swift */; }; FABB20E92602FC2C00C8785C /* ReaderTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F09CCA72428FF3300D00A8C /* ReaderTabViewController.swift */; }; FABB20EA2602FC2C00C8785C /* ActivityTypeSelectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B1E62D525758AAF009A0F80 /* ActivityTypeSelectorViewController.swift */; }; @@ -5365,7 +5363,6 @@ 431EF35921F7D4000017BE16 /* QuickStartListTitleCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = QuickStartListTitleCell.xib; sourceTree = ""; }; 4322A20C203E1885004EA740 /* SignupUsernameTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignupUsernameTableViewController.swift; sourceTree = ""; }; 4326191422FCB9DC003C7642 /* MurielColor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MurielColor.swift; sourceTree = ""; }; - 43290CF3214F755400F6B398 /* FancyAlertViewController+QuickStart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FancyAlertViewController+QuickStart.swift"; sourceTree = ""; }; 43290D012159652800F6B398 /* WordPress 81.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 81.xcdatamodel"; sourceTree = ""; }; 43290D03215C28D800F6B398 /* Blog+QuickStart.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Blog+QuickStart.swift"; sourceTree = ""; }; 43290D09215E8B1200F6B398 /* QuickStartSpotlightView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickStartSpotlightView.swift; sourceTree = ""; }; @@ -8508,7 +8505,6 @@ 176BB87E20D0068500751DCE /* FancyAlertViewController+SavedPosts.swift */, 175F99B42625FDE100F2687E /* FancyAlertViewController+AppIcons.swift */, 4319AADD2090F00C0025D68E /* FancyAlertViewController+NotificationPrimer.swift */, - 43290CF3214F755400F6B398 /* FancyAlertViewController+QuickStart.swift */, ); name = "Fancy Alerts"; sourceTree = ""; @@ -17031,7 +17027,6 @@ FA77E02A1BE17CFC006D45E0 /* ThemeBrowserHeaderView.swift in Sources */, 9874767321963D330080967F /* SiteStatsInformation.swift in Sources */, 738B9A5821B85CF20005062B /* TitleSubtitleHeader.swift in Sources */, - 43290CF4214F755400F6B398 /* FancyAlertViewController+QuickStart.swift in Sources */, 17C64BD2248E26A200AF09D7 /* AppAppearance.swift in Sources */, 3F09CCA82428FF3300D00A8C /* ReaderTabViewController.swift in Sources */, 8B1E62D625758AAF009A0F80 /* ActivityTypeSelectorViewController.swift in Sources */, @@ -19265,7 +19260,6 @@ FABB20E42602FC2C00C8785C /* ThemeBrowserHeaderView.swift in Sources */, FABB20E52602FC2C00C8785C /* SiteStatsInformation.swift in Sources */, FABB20E62602FC2C00C8785C /* TitleSubtitleHeader.swift in Sources */, - FABB20E72602FC2C00C8785C /* FancyAlertViewController+QuickStart.swift in Sources */, 17017EF32730508B0023A674 /* UnifiedAboutViewController.swift in Sources */, FABB20E82602FC2C00C8785C /* AppAppearance.swift in Sources */, FABB20E92602FC2C00C8785C /* ReaderTabViewController.swift in Sources */, From 6fb5edfbe53781b5f699b3a385e49f710681fd45 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 19 Nov 2021 14:46:39 +0000 Subject: [PATCH 275/371] Refactor: configure LoginEpilogueChooseSiteTableViewCell based on if a user has sites or not --- .../LoginEpilogueChooseSiteTableViewCell.swift | 15 +++++++++++++-- .../NUX/LoginEpilogueTableViewController.swift | 4 ++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift index 8849559f7e7a..f8684282e230 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift @@ -14,6 +14,19 @@ final class LoginEpilogueChooseSiteTableViewCell: UITableViewCell { required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } + + func configure(hasSites: Bool) { + let title = hasSites + ? NSLocalizedString("Choose a site to open.", comment: "A text for title label on Login epilogue screen") + : NSLocalizedString("You don't have any sites yet.", comment: "A text for title label on Login epilogue screen when the user doesn't have any site yet") + + let subtitle = hasSites + ? NSLocalizedString("You can switch sites at any time.", comment: "A text for subtitle label on Login epilogue screen") + : nil + + titleLabel.text = title + subtitleLabel.text = subtitle + } } // MARK: - Private Methods @@ -27,12 +40,10 @@ private extension LoginEpilogueChooseSiteTableViewCell { } func setupTitleLabel() { - titleLabel.text = NSLocalizedString("Choose a site to open.", comment: "A text for title label on Login epilogue screen") titleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline, fontWeight: .medium) } func setupSubtitleLabel() { - subtitleLabel.text = NSLocalizedString("You can switch sites at any time.", comment: "A text for subtitle label on Login epilogue screen") subtitleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline, fontWeight: .regular) subtitleLabel.textColor = .secondaryLabel } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index af7e2027c276..e3d211348267 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -119,6 +119,8 @@ extension LoginEpilogueTableViewController { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: Sections.blogSection - 1) + // User Info Row if indexPath.section == Sections.userInfoSection { if indexPath.row == 0 { @@ -138,6 +140,7 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.chooseSiteReuseIdentifier, for: indexPath) as? LoginEpilogueChooseSiteTableViewCell else { return UITableViewCell() } + cell.configure(hasSites: siteRows > 0) removeSeparatorFor(cell) return cell } @@ -224,6 +227,7 @@ private extension LoginEpilogueTableViewController { enum Sections { static let userInfoSection = 0 + static let blogSection = 1 } enum Settings { From 7d14e4a833da2f2bd05b33a38d3a30a68abae710 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 19 Nov 2021 14:58:44 +0000 Subject: [PATCH 276/371] Refactor: extract number of sites to a method --- .../NUX/LoginEpilogueTableViewController.swift | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index e3d211348267..e5631a75fe5f 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -97,8 +97,7 @@ extension LoginEpilogueTableViewController { return 2 } - let correctedSection = section - 1 - let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) + let siteRows = numberOfSites() // Add one for Create new site cell @@ -119,8 +118,6 @@ extension LoginEpilogueTableViewController { override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: Sections.blogSection - 1) - // User Info Row if indexPath.section == Sections.userInfoSection { if indexPath.row == 0 { @@ -140,18 +137,16 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.chooseSiteReuseIdentifier, for: indexPath) as? LoginEpilogueChooseSiteTableViewCell else { return UITableViewCell() } - cell.configure(hasSites: siteRows > 0) + cell.configure(hasSites: numberOfSites() > 0) removeSeparatorFor(cell) return cell } } // Create new site row - let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: indexPath.section - 1) - let isCreateNewSiteRow = showCreateNewSite && - siteRows <= Constants.createNewSiteRowThreshold && + numberOfSites() <= Constants.createNewSiteRowThreshold && indexPath.row == lastRowInSection(indexPath.section) if isCreateNewSiteRow { @@ -225,6 +220,11 @@ private extension LoginEpilogueTableViewController { cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) } + func numberOfSites() -> Int { + let adjustedBlogSection = Sections.blogSection - 1 + return blogDataSource.tableView(tableView, numberOfRowsInSection: adjustedBlogSection) + } + enum Sections { static let userInfoSection = 0 static let blogSection = 1 From 9dd1bdf84e8265e9f55a3c01a9c2949812c8a582 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 14:42:44 +0000 Subject: [PATCH 277/371] Refactor: Make create a new site button a subview of the button panel --- .../ViewRelated/NUX/LoginEpilogue.storyboard | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index 93c3f7cbf5bd..e99a78d18e7a 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -1,9 +1,9 @@ - + - + @@ -40,50 +40,50 @@ + + + - - + - + - - From 4e2dc7dd6202ffea7d276d46ac4594aa08d56887 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 15:09:17 +0000 Subject: [PATCH 278/371] Refactor: define two bottom constraints for tableview container view --- .../Classes/ViewRelated/NUX/LoginEpilogue.storyboard | 12 +++++++++--- .../NUX/LoginEpilogueViewController.swift | 7 ++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index e99a78d18e7a..d88c3213c1b5 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -66,7 +66,6 @@ - @@ -84,10 +83,16 @@ - + + + + + + + @@ -95,7 +100,8 @@ - + + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index ce674bd2701b..1dc7f8955c12 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -25,7 +25,8 @@ class LoginEpilogueViewController: UIViewController { /// Used to adjust the width on iPad. @IBOutlet var tableViewLeadingConstraint: NSLayoutConstraint! @IBOutlet var tableViewTrailingConstraint: NSLayoutConstraint! - @IBOutlet weak var tableViewBottomContraint: NSLayoutConstraint! + @IBOutlet weak var tableViewBottomConstraintToSafeArea: NSLayoutConstraint! + @IBOutlet weak var tableViewBottomConstraintToButtonPanel: NSLayoutConstraint! private var defaultTableViewMargin: CGFloat = 0 @@ -127,8 +128,8 @@ class LoginEpilogueViewController: UIViewController { func hideButtonPanel() { buttonPanel.isHidden = true - createANewSiteButton.isHidden = true - tableViewBottomContraint.constant = 0 + tableViewBottomConstraintToButtonPanel.isActive = false + tableViewBottomConstraintToSafeArea.isActive = true } } From fe389727e1f59c8bd418d7372877412ed35f93d6 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 15:50:40 +0000 Subject: [PATCH 279/371] Refactor: add a skip button to the epilogue --- .../ViewRelated/NUX/LoginEpilogue.storyboard | 86 ++++++++++++------- .../NUX/LoginEpilogueViewController.swift | 27 +++++- 2 files changed, 79 insertions(+), 34 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index d88c3213c1b5..53dc09dc5ff1 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -17,18 +17,18 @@ - + - + - + - + @@ -40,46 +40,69 @@ - + + + + + + + - + + - - - + + @@ -99,7 +122,8 @@ - + + @@ -117,7 +141,7 @@ - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 1dc7f8955c12..73c8fb3ac322 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -19,7 +19,11 @@ class LoginEpilogueViewController: UIViewController { /// Create a new site button. /// - @IBOutlet var createANewSiteButton: UIButton! + @IBOutlet weak var createANewSiteButton: FancyButton! + + /// Skip button. + /// + @IBOutlet weak var skipButton: FancyButton! /// Constraints on the table view container. /// Used to adjust the width on iPad. @@ -131,6 +135,10 @@ class LoginEpilogueViewController: UIViewController { tableViewBottomConstraintToButtonPanel.isActive = false tableViewBottomConstraintToSafeArea.isActive = true } + + func showSkipButton() { + skipButton.isHidden = false + } } // MARK: - Private Extension @@ -141,15 +149,28 @@ private extension LoginEpilogueViewController { /// func refreshInterface(with credentials: AuthenticatorCredentials) { configureCreateANewSiteButton() + configureSkipButton() } - /// Setup: Buttons + /// Setup: Create a new site button /// func configureCreateANewSiteButton() { - createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "A button title"), for: .normal) + createANewSiteButton.isPrimary = false + createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "Title for the button that will show a prompt to create a new site."), for: .normal) createANewSiteButton.accessibilityIdentifier = "Create a new site" } + /// Setup: Skip button + /// + func configureSkipButton() { + skipButton.isPrimary = true + skipButton.setTitle(NSLocalizedString("Skip", comment: "Title for the button that will skip creating a site and display the logged in view"), for: .normal) + skipButton.accessibilityIdentifier = "Skip" + + // Skip button should be hidden by default + skipButton.isHidden = true + } + /// Setup: Button Panel /// func configureButtonPanel() { From b96ca20f4e2c2f737618f4213683d01e01e0dcf4 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 16:18:53 +0000 Subject: [PATCH 280/371] Refactor: if there are no sites yet, then show the skip button --- .../LoginEpilogueTableViewController.swift | 29 ++++++++++++++----- .../NUX/LoginEpilogueViewController.swift | 4 +++ 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index e5631a75fe5f..7b84cfd03d01 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -97,27 +97,40 @@ extension LoginEpilogueTableViewController { return 2 } - let siteRows = numberOfSites() + let siteCount = numberOfSites() // Add one for Create new site cell guard let parent = parent as? LoginEpilogueViewController else { - return siteRows + return siteCount } - if siteRows <= Constants.createNewSiteRowThreshold { + switch siteCount { + + case 0: + if !showCreateNewSite { + parent.hideCreateANewSiteButton() + } + parent.showSkipButton() + return siteCount + + case 1...Constants.createNewSiteRowThreshold: parent.hideButtonPanel() - return showCreateNewSite ? siteRows + 1 : siteRows - } else { + return showCreateNewSite ? siteCount + 1 : siteCount + + default: if !showCreateNewSite { parent.hideButtonPanel() } - return siteRows + return siteCount } } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let siteCount = numberOfSites() + let hasSites = siteCount > 0 + // User Info Row if indexPath.section == Sections.userInfoSection { if indexPath.row == 0 { @@ -137,7 +150,7 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.chooseSiteReuseIdentifier, for: indexPath) as? LoginEpilogueChooseSiteTableViewCell else { return UITableViewCell() } - cell.configure(hasSites: numberOfSites() > 0) + cell.configure(hasSites: hasSites) removeSeparatorFor(cell) return cell } @@ -146,7 +159,7 @@ extension LoginEpilogueTableViewController { // Create new site row let isCreateNewSiteRow = showCreateNewSite && - numberOfSites() <= Constants.createNewSiteRowThreshold && + siteCount <= Constants.createNewSiteRowThreshold && indexPath.row == lastRowInSection(indexPath.section) if isCreateNewSiteRow { diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 73c8fb3ac322..ec9f4477e937 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -136,6 +136,10 @@ class LoginEpilogueViewController: UIViewController { tableViewBottomConstraintToSafeArea.isActive = true } + func hideCreateANewSiteButton() { + createANewSiteButton.isHidden = true + } + func showSkipButton() { skipButton.isHidden = false } From 741c1ec5e2abf8784e8bea6eda889d9e4c305e4b Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 16:42:31 +0000 Subject: [PATCH 281/371] Refactor: configure button panel when there's no sites yet --- .../LoginEpilogueTableViewController.swift | 1 + .../NUX/LoginEpilogueViewController.swift | 35 ++++++++++--------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 7b84cfd03d01..cb102b46cf41 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -111,6 +111,7 @@ extension LoginEpilogueTableViewController { if !showCreateNewSite { parent.hideCreateANewSiteButton() } + parent.configureButtonPanel(showBackground: false) parent.showSkipButton() return siteCount diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index ec9f4477e937..c003f9509599 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -85,6 +85,7 @@ class LoginEpilogueViewController: UIViewController { defaultTableViewMargin = tableViewLeadingConstraint.constant setTableViewMargins(forWidth: view.frame.width) refreshInterface(with: credentials) + configureButtonPanel() WordPressAuthenticator.track(.loginEpilogueViewed) // If the user just signed in, refresh the A/B assignments @@ -115,11 +116,6 @@ class LoginEpilogueViewController: UIViewController { return UIDevice.isPad() ? .all : .portrait } - override func viewDidLayoutSubviews() { - super.viewDidLayoutSubviews() - configureButtonPanel() - } - override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) setTableViewMargins(forWidth: size.width) @@ -130,6 +126,24 @@ class LoginEpilogueViewController: UIViewController { setTableViewMargins(forWidth: view.frame.width) } + /// Setup: Button Panel + /// + func configureButtonPanel(showBackground: Bool = true) { + if showBackground { + topLineHeightConstraint.constant = .hairlineBorderWidth + buttonPanel.backgroundColor = .quaternaryBackground + topLine.isHidden = false + blurEffectView.effect = UIBlurEffect(style: blurEffect) + blurEffectView.isHidden = false + setupDividerLineIfNeeded() + } else { + buttonPanel.backgroundColor = .basicBackground + topLine.isHidden = true + blurEffectView.isHidden = true + dividerView?.isHidden = true + } + } + func hideButtonPanel() { buttonPanel.isHidden = true tableViewBottomConstraintToButtonPanel.isActive = false @@ -175,17 +189,6 @@ private extension LoginEpilogueViewController { skipButton.isHidden = true } - /// Setup: Button Panel - /// - func configureButtonPanel() { - topLineHeightConstraint.constant = .hairlineBorderWidth - buttonPanel.backgroundColor = .quaternaryBackground - topLine.isHidden = false - blurEffectView.effect = UIBlurEffect(style: blurEffect) - blurEffectView.isHidden = false - setupDividerLineIfNeeded() - } - func setTableViewMargins(forWidth viewWidth: CGFloat) { guard traitCollection.horizontalSizeClass == .regular && traitCollection.verticalSizeClass == .regular else { From cc1b87127a1747c53ef84a66576ce566da8011c3 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 16:50:08 +0000 Subject: [PATCH 282/371] Add: dismiss epilogue when the skip button is tapped --- .../Classes/ViewRelated/NUX/LoginEpilogue.storyboard | 3 +++ .../ViewRelated/NUX/LoginEpilogueViewController.swift | 10 ++++++++++ .../NUX/WordPressAuthenticationManager.swift | 5 +++++ 3 files changed, 18 insertions(+) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index 53dc09dc5ff1..e7e525e39d5f 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -81,6 +81,9 @@ + + + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index c003f9509599..b8b8acf99f5a 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -58,6 +58,10 @@ class LoginEpilogueViewController: UIViewController { /// var onCreateNewSite: (() -> Void)? + /// Closure to be executed upon dismissal. + /// + var onDismiss: (() -> Void)? + /// Site that was just connected to our awesome app. /// var credentials: AuthenticatorCredentials? { @@ -235,4 +239,10 @@ private extension LoginEpilogueViewController { @IBAction func createANewSite() { onCreateNewSite?() } + + @IBAction func dismissEpilogue() { + tracker.track(click: .continue) + onDismiss?() + navigationController?.dismiss(animated: true) + } } diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index e2899c22de4f..aadaa4f8a5a0 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -373,6 +373,11 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { navigationController.present(wizard, animated: true) } + epilogueViewController.onDismiss = { [weak self] in + onDismiss() + self?.windowManager.dismissFullscreenSignIn() + } + navigationController.pushViewController(epilogueViewController, animated: true) } From 64ce3f2b3c1ee6ebf04a0b4a2ef8bfb456c4fdde Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Mon, 22 Nov 2021 17:13:18 +0000 Subject: [PATCH 283/371] Fix: when a blog is selected on the epilogue, first check if the quick start prompt has already been dismissed --- .../NUX/WordPressAuthenticationManager.swift | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index aadaa4f8a5a0..551ef3e2a406 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -358,7 +358,19 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { }) } - epilogueViewController.onBlogSelected = { blog in + epilogueViewController.onBlogSelected = { [weak self] blog in + guard let self = self else { + return + } + + // If the quick start prompt has already been dismissed, + // then show the My Site screen for the specified blog + guard !self.quickStartSettings.promptWasDismissed(for: blog) else { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + return + } + + // Otherwise, show the Quick Start prompt let quickstartPrompt = QuickStartPromptViewController(blog: blog) quickstartPrompt.onDismiss = onDismissQuickStartPrompt navigationController.pushViewController(quickstartPrompt, animated: true) From 9b728f49ddf1cf4a077308d31ff9ba7e5c843c9f Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 25 Nov 2021 12:24:21 +0000 Subject: [PATCH 284/371] Add: epilogue new events --- .../Classes/Utility/Analytics/WPAnalyticsEvent.swift | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift index 6a788ecac618..f4bd60710fb5 100644 --- a/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift +++ b/WordPress/Classes/Utility/Analytics/WPAnalyticsEvent.swift @@ -256,6 +256,10 @@ import Foundation case privacySettingsOpened case privacySettingsReportCrashesToggled + // Login: Epilogue + case loginEpilogueChooseSiteTapped + case loginEpilogueCreateNewSiteTapped + /// A String that represents the event var value: String { switch self { @@ -690,6 +694,12 @@ import Foundation return "account_close_tapped" case .accountCloseCompleted: return "account_close_completed" + + // Login: Epilogue + case .loginEpilogueChooseSiteTapped: + return "login_epilogue_choose_site_tapped" + case .loginEpilogueCreateNewSiteTapped: + return "login_epilogue_create_new_site_tapped" } // END OF SWITCH } From e7b0393e1abaa26161ef7b539a5161e859482e8e Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 23 Nov 2021 13:42:54 -0300 Subject: [PATCH 285/371] Add: track site selected and creating a new site --- .../NUX/LoginEpilogueTableViewController.swift | 4 ++-- .../NUX/LoginEpilogueViewController.swift | 14 +++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index cb102b46cf41..2acad975b422 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -203,7 +203,7 @@ extension LoginEpilogueTableViewController { let wrappedPath = IndexPath(row: indexPath.row, section: indexPath.section - 1) let blog = blogDataSource.blog(at: wrappedPath) - parent.onBlogSelected?(blog) + parent.blogSelected(blog) } private enum Constants { @@ -217,7 +217,7 @@ extension LoginEpilogueTableViewController: LoginEpilogueCreateNewSiteCellDelega guard let parent = parent as? LoginEpilogueViewController else { return } - parent.onCreateNewSite?() + parent.createNewSite() } } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index b8b8acf99f5a..4e8fbee90a90 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -161,6 +161,18 @@ class LoginEpilogueViewController: UIViewController { func showSkipButton() { skipButton.isHidden = false } + + // MARK: - Actions + + func createNewSite() { + onCreateNewSite?() + WPAnalytics.track(.loginEpilogueCreateNewSiteTapped) + } + + func blogSelected(_ blog: Blog) { + onBlogSelected?(blog) + WPAnalytics.track(.loginEpilogueChooseSiteTapped, properties: [:], blog: blog) + } } // MARK: - Private Extension @@ -237,7 +249,7 @@ private extension LoginEpilogueViewController { // MARK: - Actions @IBAction func createANewSite() { - onCreateNewSite?() + createNewSite() } @IBAction func dismissEpilogue() { From b7e341bc89c0ca5843de37e495fd772ce3fab8ee Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 24 Nov 2021 11:56:20 +0000 Subject: [PATCH 286/371] Fix: track quick start prompt button actions --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 5cfa4bae8734..aa1f55b4098a 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -105,12 +105,16 @@ final class QuickStartPromptViewController: UIViewController { @IBAction private func showMeAroundButtonTapped(_ sender: Any) { onDismiss?(blog) dismiss(animated: true) + + WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "positive"]) } @IBAction private func noThanksButtonTapped(_ sender: Any) { quickStartSettings.setPromptWasDismissed(true, for: blog) onDismiss?(blog) dismiss(animated: true) + + WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "neutral"]) } } From a9e5b11dbf5327aafd2ffd7c07a6bc78eee5fd6b Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 23 Nov 2021 16:11:17 -0300 Subject: [PATCH 287/371] Add: when switching to the quick start prompt, read the title --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index aa1f55b4098a..0d7e699cc4aa 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -46,6 +46,11 @@ final class QuickStartPromptViewController: UIViewController { setup() } + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + UIAccessibility.post(notification: .layoutChanged, argument: promptTitleLabel) + } + // MARK: - Styling private func applyStyles() { From 69991dc5c3ba5afe531d97da01bad600c42b4bfd Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 24 Nov 2021 17:46:23 +0000 Subject: [PATCH 288/371] Add: quick start prompt screen --- .../Login/QuickStartPromptScreen.swift | 25 +++++++++++++++++++ WordPress/WordPress.xcodeproj/project.pbxproj | 4 +++ 2 files changed, 29 insertions(+) create mode 100644 WordPress/UITestsFoundation/Screens/Login/QuickStartPromptScreen.swift diff --git a/WordPress/UITestsFoundation/Screens/Login/QuickStartPromptScreen.swift b/WordPress/UITestsFoundation/Screens/Login/QuickStartPromptScreen.swift new file mode 100644 index 000000000000..0be551dd50fc --- /dev/null +++ b/WordPress/UITestsFoundation/Screens/Login/QuickStartPromptScreen.swift @@ -0,0 +1,25 @@ +import ScreenObject +import XCTest + +public class QuickStartPromptScreen: ScreenObject { + + private let noThanksButtonGetter: (XCUIApplication) -> XCUIElement = { + $0.buttons["No thanks"] + } + + var noThanksButton: XCUIElement { noThanksButtonGetter(app) } + + public init(app: XCUIApplication = XCUIApplication()) throws { + try super.init(expectedElementGetters: [noThanksButtonGetter], app: app) + } + + public func selectNoThanks() throws -> MySiteScreen { + noThanksButton.tap() + + return try MySiteScreen() + } + + static func isLoaded() -> Bool { + (try? QuickStartPromptScreen().isLoaded) ?? false + } +} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index d757ee4c3253..9bdade21bfbf 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -2703,6 +2703,7 @@ FA4F660525946B5F00EAA9F5 /* JetpackRestoreHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA4F660425946B5F00EAA9F5 /* JetpackRestoreHeaderView.swift */; }; FA4F661425946B8500EAA9F5 /* JetpackRestoreHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA4F661325946B8500EAA9F5 /* JetpackRestoreHeaderView.xib */; }; FA5C740F1C599BA7000B528C /* TableViewHeaderDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA5C740E1C599BA7000B528C /* TableViewHeaderDetailView.swift */; }; + FA612DDF274E9F730002B03A /* QuickStartPromptScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA612DDE274E9F730002B03A /* QuickStartPromptScreen.swift */; }; FA681F8A25CA946B00DAA544 /* BaseRestoreStatusFailedViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA681F8825CA946B00DAA544 /* BaseRestoreStatusFailedViewController.swift */; }; FA6FAB3525EF7C5700666CED /* ReaderRelatedPostsSectionHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA6FAB3425EF7C5700666CED /* ReaderRelatedPostsSectionHeaderView.swift */; }; FA6FAB4725EF7C6A00666CED /* ReaderRelatedPostsSectionHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = FA6FAB4625EF7C6A00666CED /* ReaderRelatedPostsSectionHeaderView.xib */; }; @@ -7549,6 +7550,7 @@ FA4F660425946B5F00EAA9F5 /* JetpackRestoreHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JetpackRestoreHeaderView.swift; sourceTree = ""; }; FA4F661325946B8500EAA9F5 /* JetpackRestoreHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = JetpackRestoreHeaderView.xib; sourceTree = ""; }; FA5C740E1C599BA7000B528C /* TableViewHeaderDetailView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewHeaderDetailView.swift; sourceTree = ""; }; + FA612DDE274E9F730002B03A /* QuickStartPromptScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickStartPromptScreen.swift; sourceTree = ""; }; FA681F8825CA946B00DAA544 /* BaseRestoreStatusFailedViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseRestoreStatusFailedViewController.swift; sourceTree = ""; }; FA6FAB3425EF7C5700666CED /* ReaderRelatedPostsSectionHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderRelatedPostsSectionHeaderView.swift; sourceTree = ""; }; FA6FAB4625EF7C6A00666CED /* ReaderRelatedPostsSectionHeaderView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderRelatedPostsSectionHeaderView.xib; sourceTree = ""; }; @@ -13186,6 +13188,7 @@ CCE911BB221D8497007E1D4E /* LoginSiteAddressScreen.swift */, CCE911BD221D85E4007E1D4E /* LoginUsernamePasswordScreen.swift */, BE6DD32B1FD6782A00E55192 /* LoginEpilogueScreen.swift */, + FA612DDE274E9F730002B03A /* QuickStartPromptScreen.swift */, ); path = Login; sourceTree = ""; @@ -18561,6 +18564,7 @@ 3FE39A3E26F8383E006E2B3A /* MediaScreen.swift in Sources */, 3F2F855F26FAF235000FCDA5 /* MeTabScreen.swift in Sources */, 3FE39A4226F838A0006E2B3A /* ActionSheetComponent.swift in Sources */, + FA612DDF274E9F730002B03A /* QuickStartPromptScreen.swift in Sources */, 3F2F854526FAEB86000FCDA5 /* MediaPickerAlbumScreen.swift in Sources */, 3F2F855526FAF227000FCDA5 /* TagsComponent.swift in Sources */, 3F2F855426FAF227000FCDA5 /* AztecEditorScreen.swift in Sources */, From 847d008a0fa31b3d0e7bd52ee0bc5290a68e972f Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 24 Nov 2021 17:49:27 +0000 Subject: [PATCH 289/371] Add: accesssibility identifier for login epilogue table --- .../ViewRelated/NUX/LoginEpilogueTableViewController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index 2acad975b422..d52acfcbb82c 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -53,6 +53,7 @@ class LoginEpilogueTableViewController: UITableViewController { view.backgroundColor = .basicBackground tableView.backgroundColor = .basicBackground tableView.rowHeight = UITableView.automaticDimension + tableView.accessibilityIdentifier = "login-epilogue-table" // Remove separator line on last row tableView.tableFooterView = UIView() From 1e47f48a27aa6c3c2d7b1ca0675326378a8f58c0 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 24 Nov 2021 22:53:17 +0000 Subject: [PATCH 290/371] Fix: dismiss epilogue screen after adding self-hosted site via the site switcher --- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 551ef3e2a406..ab9a922e4dc3 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -366,7 +366,13 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { // If the quick start prompt has already been dismissed, // then show the My Site screen for the specified blog guard !self.quickStartSettings.promptWasDismissed(for: blog) else { - self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + + if self.windowManager.isShowingFullscreenSignIn { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + } else { + navigationController.dismiss(animated: true) + } + return } From c8fc04f1df372dcf7e8f0d18a840a118bdb2611a Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 24 Nov 2021 22:54:45 +0000 Subject: [PATCH 291/371] Fix: tap on first site and dismiss quick start prompt if needed --- .../Screens/Login/LoginEpilogueScreen.swift | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift index 06b0c62203bf..6efd814112d6 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginEpilogueScreen.swift @@ -3,40 +3,39 @@ import XCTest private struct ElementStringIDs { static let usernameField = "login-epilogue-username-label" static let siteUrlField = "siteUrl" - static let connectSiteButton = "connectSite" - static let continueButton = "Done" + static let loginEpilogueTable = "login-epilogue-table" } public class LoginEpilogueScreen: BaseScreen { - let continueButton: XCUIElement - let connectSiteButton: XCUIElement let usernameField: XCUIElement let siteUrlField: XCUIElement + let loginEpilogueTable: XCUIElement init() { let app = XCUIApplication() usernameField = app.staticTexts[ElementStringIDs.usernameField] siteUrlField = app.staticTexts[ElementStringIDs.siteUrlField] - connectSiteButton = app.cells[ElementStringIDs.connectSiteButton] - continueButton = app.buttons[ElementStringIDs.continueButton] + loginEpilogueTable = app.tables[ElementStringIDs.loginEpilogueTable] - super.init(element: continueButton) + super.init(element: loginEpilogueTable) } public func continueWithSelectedSite() throws -> MySiteScreen { - continueButton.tap() + let firstSite = loginEpilogueTable.cells.element(boundBy: 2) + firstSite.tap() + + try dismissQuickStartPromptIfNeeded() return try MySiteScreen() } // Used by "Self-Hosted after WordPress.com login" test. When a site is added from the Sites List, the Sites List modal (MySitesScreen) // remains active after the epilogue "done" button is tapped. public func continueWithSelfHostedSiteAddedFromSitesList() throws -> MySitesScreen { - continueButton.tap() - return try MySitesScreen() - } + let firstSite = loginEpilogueTable.cells.element(boundBy: 2) + firstSite.tap() - func connectSite() { - connectSiteButton.tap() + try dismissQuickStartPromptIfNeeded() + return try MySitesScreen() } public func verifyEpilogueDisplays(username: String? = nil, siteUrl: String) -> LoginEpilogueScreen { @@ -61,4 +60,14 @@ public class LoginEpilogueScreen: BaseScreen { return displayUrl } + + private func dismissQuickStartPromptIfNeeded() throws { + try XCTContext.runActivity(named: "Dismiss quick start prompt if needed.") { (activity) in + if QuickStartPromptScreen.isLoaded() { + Logger.log(message: "Dismising quick start prompt...", event: .i) + _ = try QuickStartPromptScreen().selectNoThanks() + return + } + } + } } From 9e32d776133249222495b609a5b5a240fd585cc0 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Thu, 25 Nov 2021 11:57:32 +0000 Subject: [PATCH 292/371] Update: release notes for Onboarding Improvements --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 364b69840e36..6ddd514d32b6 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -3,6 +3,7 @@ * [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. * [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] +* [*] Onboarding Improvements: Need a little help after login? We're here for you. We've made a few changes to the login flow that will make it easier for you to start managing your site or create a new one. [#17564] * [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] 18.7 From 92e9350d07663f5cab2b0a7c5f27c7b500abb211 Mon Sep 17 00:00:00 2001 From: James Frost Date: Thu, 25 Nov 2021 15:05:46 +0000 Subject: [PATCH 293/371] Unified About: Add Automattic Family navigation --- .../Me/App Settings/About/AboutScreenConfiguration.swift | 1 + .../App Settings/About/WordPressAboutScreenConfiguration.swift | 2 ++ 2 files changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 99051e26dfc1..5ce1cd2d35ca 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -1,4 +1,5 @@ import Foundation +import UIKit typealias AboutScreenSection = [AboutItem] diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index b80d1a73b955..9e97be4d9f90 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -50,6 +50,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { [ AboutItem(title: TextContent.automatticFamily, hidesSeparator: true, action: { [weak self] context in self?.tracker.buttonPressed(.automatticFamily) + self?.webViewPresenter.present(for: Links.automattic, context: context) }), AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], @@ -91,6 +92,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { private enum Links { static let twitter = URL(string: "https://twitter.com/WordPressiOS")! static let workWithUs = URL(string: "https://automattic.com/work-with-us")! + static let automattic = URL(string: "https://automattic.com")! } } From da82fb527ce4788343040e2cb867b3f7aeded943 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Thu, 25 Nov 2021 16:45:27 +0000 Subject: [PATCH 294/371] Fix merge conflict in RELEASE-NOTES --- RELEASE-NOTES.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 79c9e19147f7..d125c87fdbb2 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,8 +1,9 @@ 18.8 ----- -* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. * [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] * [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] +* [***] Fixed crash that was sometimes triggered when deleting media. [#17559] +* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. * [**] Block editor: Add clipboard link suggestion to image block and button block. [https://github.com/WordPress/gutenberg/pull/35972] * [*] Block editor: Embed block: Include link in block settings. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4189] * [**] Block editor: Fix tab titles translation of inserter menu. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4248] From 54330684ff6a1d4b8652b9044a6597a4f18a4b8c Mon Sep 17 00:00:00 2001 From: Siobhan Date: Thu, 25 Nov 2021 16:46:43 +0000 Subject: [PATCH 295/371] Add missing change to RELEASE-NOTES --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index d125c87fdbb2..0fea59461c60 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -8,6 +8,7 @@ * [*] Block editor: Embed block: Include link in block settings. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4189] * [**] Block editor: Fix tab titles translation of inserter menu. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4248] * [**] Block editor: Gallery block: When a gallery block is added, the media options are auto opened for v2 of the Gallery block. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4277] +* [*] Block editor: Media & Text block: Fix an issue where the text font size would be bigger than expected in some cases. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4252] 18.7 ----- From 24d1e8f5b11c5221e08d2f5d8b0042882a2b4df5 Mon Sep 17 00:00:00 2001 From: Siobhan Date: Thu, 25 Nov 2021 16:52:18 +0000 Subject: [PATCH 296/371] Update referene to Gutenberg --- Podfile | 2 +- Podfile.lock | 178 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/Podfile b/Podfile index 231f9d6b80ed..d0ebb0c0741d 100644 --- a/Podfile +++ b/Podfile @@ -166,7 +166,7 @@ abstract_target 'Apps' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => 'ac3a872df566f0979c9d859273fd63ca0af42ab5' + gutenberg :commit => 'c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index f2a13c0d5877..b46d31f7b419 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -490,18 +490,18 @@ DEPENDENCIES: - AppCenter (~> 4.1) - AppCenter/Distribute (~> 4.1) - Automattic-Tracks-iOS (~> 0.9.1) - - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/BVLinearGradient.podspec.json`) + - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/BVLinearGradient.podspec.json`) - Charts (~> 3.2.2) - CocoaLumberjack (~> 3.0) - CropViewController (= 2.5.3) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.1.0) - - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `ac3a872df566f0979c9d859273fd63ca0af42ab5`) + - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f`) - JTAppleCalendar (~> 8.0.2) - Kanvas (~> 1.2.7) - MediaEditor (~> 1.2.1) @@ -511,44 +511,44 @@ DEPENDENCIES: - "NSURL+IDN (~> 0.4)" - OCMock (~> 3.4.3) - OHHTTPStubs/Swift (~> 9.1.0) - - RCT-Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCT-Folly.podspec.json`) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCT-Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCT-Folly.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React.podspec.json`) - - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-callinvoker.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-blur.podspec.json`) - - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-get-random-values.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-safe-area-context (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-safe-area-context.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-video.podspec.json`) - - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-webview.podspec.json`) - - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-perflogger.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTVibration.podspec.json`) - - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-runtimeexecutor.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/ReactCommon.podspec.json`) - - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNCMaskedView.podspec.json`) - - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNGestureHandler.podspec.json`) - - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNReanimated.podspec.json`) - - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNScreens.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `ac3a872df566f0979c9d859273fd63ca0af42ab5`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React.podspec.json`) + - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-callinvoker.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-blur.podspec.json`) + - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-get-random-values.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-safe-area-context (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area-context.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-video.podspec.json`) + - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-webview.podspec.json`) + - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-perflogger.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTVibration.podspec.json`) + - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-runtimeexecutor.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/ReactCommon.podspec.json`) + - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNCMaskedView.podspec.json`) + - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNGestureHandler.podspec.json`) + - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNReanimated.podspec.json`) + - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNScreens.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f`) - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.5) @@ -558,7 +558,7 @@ DEPENDENCIES: - WordPressShared (~> 1.17.0-beta.1) - WordPressUI (~> 1.12.2) - WPMediaPicker (~> 1.7.2) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.3.0) - ZIPFoundation (~> 0.9.8) @@ -621,109 +621,109 @@ SPEC REPOS: EXTERNAL SOURCES: BVLinearGradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/BVLinearGradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/BVLinearGradient.podspec.json FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: ac3a872df566f0979c9d859273fd63ca0af42ab5 + :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true RCT-Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCT-Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCT-Folly.podspec.json RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React.podspec.json React-callinvoker: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-callinvoker.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-callinvoker.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsinspector.podspec.json react-native-blur: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-blur.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-blur.podspec.json react-native-get-random-values: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-get-random-values.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-get-random-values.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area.podspec.json react-native-safe-area-context: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-safe-area-context.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area-context.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-video.podspec.json react-native-webview: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/react-native-webview.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-webview.podspec.json React-perflogger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-perflogger.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-perflogger.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTVibration.podspec.json React-runtimeexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/React-runtimeexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-runtimeexecutor.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/ReactCommon.podspec.json RNCMaskedView: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNCMaskedView.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNCMaskedView.podspec.json RNGestureHandler: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNGestureHandler.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNGestureHandler.podspec.json RNReanimated: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNReanimated.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNReanimated.podspec.json RNScreens: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNScreens.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNScreens.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: ac3a872df566f0979c9d859273fd63ca0af42ab5 + :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/ac3a872df566f0979c9d859273fd63ca0af42ab5/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: ac3a872df566f0979c9d859273fd63ca0af42ab5 + :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true RNTAztecView: - :commit: ac3a872df566f0979c9d859273fd63ca0af42ab5 + :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true @@ -826,6 +826,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 544103bb1605e4e5c54fe877b56e31a603e7af11 +PODFILE CHECKSUM: 2380600f7cbd9c538ed49e651fc521da8fbcd0cf COCOAPODS: 1.10.1 From a6593c56f00194695b471c085466c108c8cc53ad Mon Sep 17 00:00:00 2001 From: Siobhan Date: Thu, 25 Nov 2021 16:58:33 +0000 Subject: [PATCH 297/371] Revert accidental edit to RELEASE-NOTE item --- RELEASE-NOTES.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 0fea59461c60..cb7748ff4f84 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -3,7 +3,7 @@ * [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] * [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] * [***] Fixed crash that was sometimes triggered when deleting media. [#17559] -* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. +* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. [#17529] * [**] Block editor: Add clipboard link suggestion to image block and button block. [https://github.com/WordPress/gutenberg/pull/35972] * [*] Block editor: Embed block: Include link in block settings. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4189] * [**] Block editor: Fix tab titles translation of inserter menu. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4248] From 9f0bce7201f087bea7272107b64017e2fc59a244 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 19:30:22 +0100 Subject: [PATCH 298/371] Replace LocalizedStringKey constants with AppLocalizedString calls To be parsed and recognized by genstrings --- WordPress/WordPress.xcodeproj/project.pbxproj | 8 +- .../Model/GroupedViewData.swift | 10 +- .../Model/ListViewData.swift | 2 +- .../Views/Cards/FlexibleCard.swift | 4 +- .../Views/Cards/ListRow.swift | 4 +- .../Views/Cards/VerticalCard.swift | 2 +- .../Localization/AppLocalizedString.swift | 18 +++ .../Localization/LocalizableStrings.swift | 110 +++++++++--------- .../LocalizedStringKey+extension.swift | 11 -- .../Views/MultiStatsView.swift | 4 +- .../Views/UnconfiguredView.swift | 2 +- 11 files changed, 91 insertions(+), 84 deletions(-) create mode 100644 WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift delete mode 100644 WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 9496251ddb0a..2af9e5631e86 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -476,7 +476,7 @@ 3F1FD2502548AD8B0060C53A /* TodayWidgetStats.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98E58A2E2360D23400E5534B /* TodayWidgetStats.swift */; }; 3F1FD27B2548AE900060C53A /* CocoaLumberjack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 938CF3DB1EF1BE6800AF838E /* CocoaLumberjack.swift */; }; 3F1FD30D2548B0A80060C53A /* Constants.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CC05F51962150600975CAC /* Constants.m */; }; - 3F2656A125AF4DFA0073A832 /* LocalizedStringKey+extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* LocalizedStringKey+extension.swift */; }; + 3F2656A125AF4DFA0073A832 /* AppLocalizedString.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */; }; 3F29EB7224042276005313DE /* MeViewController+UIViewControllerRestoration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F29EB7124042276005313DE /* MeViewController+UIViewControllerRestoration.swift */; }; 3F2F0C16256C6B2C003351C7 /* StatsWidgetsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F2F0C15256C6B2C003351C7 /* StatsWidgetsService.swift */; }; 3F2F854026FAE9DC000FCDA5 /* BlockEditorScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2BB0C92289CC3B0034F9AB /* BlockEditorScreen.swift */; }; @@ -5116,7 +5116,7 @@ 3F1AD48023FC87A400BB1375 /* BlogDetailsViewController+MeButtonTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlogDetailsViewController+MeButtonTests.swift"; sourceTree = ""; }; 3F1B66A223A2F54B0075F09E /* ReaderReblogActionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderReblogActionTests.swift; sourceTree = ""; }; 3F1FD31C2548B30D0060C53A /* WordPressStatsWidgets-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WordPressStatsWidgets-Bridging-Header.h"; sourceTree = ""; }; - 3F2656A025AF4DFA0073A832 /* LocalizedStringKey+extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "LocalizedStringKey+extension.swift"; sourceTree = ""; }; + 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLocalizedString.swift; sourceTree = ""; }; 3F26DFD124930B5900B5EBD1 /* WordPress 96.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "WordPress 96.xcdatamodel"; sourceTree = ""; }; 3F29EB7124042276005313DE /* MeViewController+UIViewControllerRestoration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MeViewController+UIViewControllerRestoration.swift"; sourceTree = ""; }; 3F2F0C15256C6B2C003351C7 /* StatsWidgetsService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatsWidgetsService.swift; sourceTree = ""; }; @@ -9027,7 +9027,7 @@ isa = PBXGroup; children = ( 3FE77C8225B0CA89007DE9E5 /* LocalizableStrings.swift */, - 3F2656A025AF4DFA0073A832 /* LocalizedStringKey+extension.swift */, + 3F2656A025AF4DFA0073A832 /* AppLocalizedString.swift */, ); path = Localization; sourceTree = ""; @@ -18485,7 +18485,7 @@ 3F1FD2502548AD8B0060C53A /* TodayWidgetStats.swift in Sources */, 3F2F0C16256C6B2C003351C7 /* StatsWidgetsService.swift in Sources */, 3F526D572539FAC60069706C /* StatsWidgetsView.swift in Sources */, - 3F2656A125AF4DFA0073A832 /* LocalizedStringKey+extension.swift in Sources */, + 3F2656A125AF4DFA0073A832 /* AppLocalizedString.swift in Sources */, 3F568A0025420DE80048A9E4 /* MultiStatsView.swift in Sources */, 3F6BC05C25B24773007369D3 /* FeatureFlagOverrideStore.swift in Sources */, 3FD675EA25C87A25009AB3C1 /* WordPressHomeWidgetToday.swift in Sources */, diff --git a/WordPress/WordPressStatsWidgets/Model/GroupedViewData.swift b/WordPress/WordPressStatsWidgets/Model/GroupedViewData.swift index e2d43b615ec6..3c3f3afdcda6 100644 --- a/WordPress/WordPressStatsWidgets/Model/GroupedViewData.swift +++ b/WordPress/WordPressStatsWidgets/Model/GroupedViewData.swift @@ -2,15 +2,15 @@ import SwiftUI struct GroupedViewData { - let widgetTitle: LocalizedStringKey + let widgetTitle: LocalizedString let siteName: String - let upperLeftTitle: LocalizedStringKey + let upperLeftTitle: LocalizedString let upperLeftValue: Int - let upperRightTitle: LocalizedStringKey + let upperRightTitle: LocalizedString let upperRightValue: Int - let lowerLeftTitle: LocalizedStringKey + let lowerLeftTitle: LocalizedString let lowerLeftValue: Int - let lowerRightTitle: LocalizedStringKey + let lowerRightTitle: LocalizedString let lowerRightValue: Int let statsURL: URL? diff --git a/WordPress/WordPressStatsWidgets/Model/ListViewData.swift b/WordPress/WordPressStatsWidgets/Model/ListViewData.swift index 605055e2bcdd..8f484f19b16b 100644 --- a/WordPress/WordPressStatsWidgets/Model/ListViewData.swift +++ b/WordPress/WordPressStatsWidgets/Model/ListViewData.swift @@ -2,7 +2,7 @@ import SwiftUI struct ListViewData { - let widgetTitle: LocalizedStringKey + let widgetTitle: LocalizedString let siteName: String let items: [ThisWeekWidgetDay] diff --git a/WordPress/WordPressStatsWidgets/Views/Cards/FlexibleCard.swift b/WordPress/WordPressStatsWidgets/Views/Cards/FlexibleCard.swift index 3e201ea2565e..0f5c64b468b3 100644 --- a/WordPress/WordPressStatsWidgets/Views/Cards/FlexibleCard.swift +++ b/WordPress/WordPressStatsWidgets/Views/Cards/FlexibleCard.swift @@ -3,11 +3,11 @@ import SwiftUI /// A card with a title and a numeric or string value that can be either vertically or horizontally stacked struct FlexibleCard: View { let axis: Axis - let title: LocalizedStringKey + let title: LocalizedString let value: Value let lineLimit: Int - init(axis: Axis, title: LocalizedStringKey, value: Value, lineLimit: Int = 1) { + init(axis: Axis, title: LocalizedString, value: Value, lineLimit: Int = 1) { self.axis = axis self.title = title self.value = value diff --git a/WordPress/WordPressStatsWidgets/Views/Cards/ListRow.swift b/WordPress/WordPressStatsWidgets/Views/Cards/ListRow.swift index f31824a6e737..cd641190d306 100644 --- a/WordPress/WordPressStatsWidgets/Views/Cards/ListRow.swift +++ b/WordPress/WordPressStatsWidgets/Views/Cards/ListRow.swift @@ -48,12 +48,12 @@ struct ListRow: View { return percentValue < 0 ? Constants.negativeColor : Constants.positiveColor } - private var differenceLabelText: LocalizedStringKey { + private var differenceLabelText: LocalizedString { guard !isToday else { return LocalizableStrings.todayWidgetTitle } - return LocalizedStringKey(dateFormatter.string(from: date)) + return dateFormatter.string(from: date) } var body: some View { diff --git a/WordPress/WordPressStatsWidgets/Views/Cards/VerticalCard.swift b/WordPress/WordPressStatsWidgets/Views/Cards/VerticalCard.swift index de1d19e2dbd6..254c26a4b49a 100644 --- a/WordPress/WordPressStatsWidgets/Views/Cards/VerticalCard.swift +++ b/WordPress/WordPressStatsWidgets/Views/Cards/VerticalCard.swift @@ -2,7 +2,7 @@ import SwiftUI /// A card with a title and a value stacked vertically struct VerticalCard: View { - let title: LocalizedStringKey + let title: LocalizedString let value: Int let largeText: Bool diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift new file mode 100644 index 000000000000..240f0dcc7182 --- /dev/null +++ b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift @@ -0,0 +1,18 @@ +import SwiftUI + +extension Bundle { + static let app: Bundle = { + var url = Bundle.main.bundleURL + while url.pathExtension != "app" && url.lastPathComponent != "/" { + url.deleteLastPathComponent() + } + guard let appBundle = Bundle(url: url) else { fatalError("Unable to find the parent app bundle") } + return appBundle + }() +} + +typealias LocalizedString = String // Useful only to express intent on your API; does not provide any compile-time guarantee + +func AppLocalizedString(_ key: String, value: String?, comment: String) -> LocalizedString { + Bundle.app.localizedString(forKey: key, value: value, table: nil) +} diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift b/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift index 81c78506cc70..c8df017cda9f 100644 --- a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift +++ b/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift @@ -2,77 +2,77 @@ import SwiftUI enum LocalizableStrings { // Today Widget title - static let todayWidgetTitle = LocalizedStringKey("widget.today.title", - defaultValue: "Today", - comment: "Title of today widget") - + static let todayWidgetTitle = AppLocalizedString("widget.today.title", + value: "Today", + comment: "Title of today widget") + // All Time Widget title - static let allTimeWidgetTitle = LocalizedStringKey("widget.alltime.title", - defaultValue: "All Time", + static let allTimeWidgetTitle = AppLocalizedString("widget.alltime.title", + value: "All Time", comment: "Title of all time widget") - + // This Week Widget title - static let thisWeekWidgetTitle = LocalizedStringKey("widget.thisweek.title", - defaultValue: "This Week", - comment: "Title of this week widget") - + static let thisWeekWidgetTitle = AppLocalizedString("widget.thisweek.title", + value: "This Week", + comment: "Title of this week widget") + // Widgets content - static let viewsTitle = LocalizedStringKey("widget.today.views.label", - defaultValue: "Views", + static let viewsTitle = AppLocalizedString("widget.today.views.label", + value: "Views", comment: "Title of views label in today widget") - - static let visitorsTitle = LocalizedStringKey("widget.today.visitors.label", - defaultValue: "Visitors", + + static let visitorsTitle = AppLocalizedString("widget.today.visitors.label", + value: "Visitors", comment: "Title of visitors label in today widget") - - static let likesTitle = LocalizedStringKey("widget.today.likes.label", - defaultValue: "Likes", + + static let likesTitle = AppLocalizedString("widget.today.likes.label", + value: "Likes", comment: "Title of likes label in today widget") - - static let commentsTitle = LocalizedStringKey("widget.today.comments.label", - defaultValue: "Comments", + + static let commentsTitle = AppLocalizedString("widget.today.comments.label", + value: "Comments", comment: "Title of comments label in today widget") - - static let postsTitle = LocalizedStringKey("widget.alltime.posts.label", - defaultValue: "Posts", + + static let postsTitle = AppLocalizedString("widget.alltime.posts.label", + value: "Posts", comment: "Title of posts label in all time widget") - - static let bestViewsTitle = LocalizedStringKey("widget.alltime.bestviews.label", - defaultValue: "Best views ever", + + static let bestViewsTitle = AppLocalizedString("widget.alltime.bestviews.label", + value: "Best views ever", comment: "Title of best views ever label in all time widget") // Unconfigured view - static let unconfiguredViewTodayTitle = LocalizedStringKey("widget.today.unconfigured.view.title", - defaultValue: "Log in to WordPress to see today's stats.", - comment: "Title of the unconfigured view in today widget") - - static let unconfiguredViewAllTimeTitle = LocalizedStringKey("widget.alltime.unconfigured.view.title", - defaultValue: "Log in to WordPress to see all time stats.", - comment: "Title of the unconfigured view in all time widget") - - static let unconfiguredViewThisWeekTitle = LocalizedStringKey("widget.thisweek.unconfigured.view.title", - defaultValue: "Log in to WordPress to see this week's stats.", - comment: "Title of the unconfigured view in this week widget") + static let unconfiguredViewTodayTitle = AppLocalizedString("widget.today.unconfigured.view.title", + value: "Log in to WordPress to see today's stats.", + comment: "Title of the unconfigured view in today widget") + + static let unconfiguredViewAllTimeTitle = AppLocalizedString("widget.alltime.unconfigured.view.title", + value: "Log in to WordPress to see all time stats.", + comment: "Title of the unconfigured view in all time widget") + + static let unconfiguredViewThisWeekTitle = AppLocalizedString("widget.thisweek.unconfigured.view.title", + value: "Log in to WordPress to see this week's stats.", + comment: "Title of the unconfigured view in this week widget") // No data view - static let noDataViewTitle = LocalizedStringKey("widget.today.nodata.view.title", - defaultValue: "Unable to load site stats.", - comment: "Title of the nodata view in today widget") - + static let noDataViewTitle = AppLocalizedString("widget.today.nodata.view.title", + value: "Unable to load site stats.", + comment: "Title of the nodata view in today widget") + // Today Widget Preview - static let todayPreviewDescription = LocalizedStringKey("widget.today.preview.description", - defaultValue: "Stay up to date with today's activity on your WordPress site.", - comment: "Description of today widget in the preview") + static let todayPreviewDescription = AppLocalizedString("widget.today.preview.description", + value: "Stay up to date with today's activity on your WordPress site.", + comment: "Description of today widget in the preview") // All Time Widget preview - static let allTimePreviewDescription = LocalizedStringKey("widget.alltime.preview.description", - defaultValue: "Stay up to date with all time activity on your WordPress site.", + static let allTimePreviewDescription = AppLocalizedString("widget.alltime.preview.description", + value: "Stay up to date with all time activity on your WordPress site.", comment: "Description of all time widget in the preview") - + // This Week Widget preview - static let thisWeekPreviewDescription = LocalizedStringKey("widget.thisweek.preview.description", - defaultValue: "Stay up to date with this week activity on your WordPress site.", - comment: "Description of all time widget in the preview") - + static let thisWeekPreviewDescription = AppLocalizedString("widget.thisweek.preview.description", + value: "Stay up to date with this week activity on your WordPress site.", + comment: "Description of all time widget in the preview") + // Errors - static let unavailableViewTitle = LocalizedStringKey("widget.today.view.unavailable.title", - defaultValue: "View is unavailable", + static let unavailableViewTitle = AppLocalizedString("widget.today.view.unavailable.title", + value: "View is unavailable", comment: "Error message to show if a widget view is unavailable") } diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift b/WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift deleted file mode 100644 index 1efd51a016a6..000000000000 --- a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift +++ /dev/null @@ -1,11 +0,0 @@ -import SwiftUI - -extension LocalizedStringKey { - static let defaultBundle = Bundle(for: StatsWidgetsService.self) - - /// LocalizedStringKey is used as a wrapper of NSLocalizedString, in order to use synthetic keys and assign a default value - /// in case of missing localization. This will need to be updated (if and) as soon as LocalizedStringKey supports default values - init(_ key: String, defaultValue: String, comment: String) { - self.init(NSLocalizedString(key, tableName: nil, bundle: Self.defaultBundle, value: defaultValue, comment: comment)) - } -} diff --git a/WordPress/WordPressStatsWidgets/Views/MultiStatsView.swift b/WordPress/WordPressStatsWidgets/Views/MultiStatsView.swift index f2cca9878490..86b86be89bdc 100644 --- a/WordPress/WordPressStatsWidgets/Views/MultiStatsView.swift +++ b/WordPress/WordPressStatsWidgets/Views/MultiStatsView.swift @@ -26,9 +26,9 @@ } /// Constructs a two-card column for the medium size Today widget - private func makeColumn(upperTitle: LocalizedStringKey, + private func makeColumn(upperTitle: LocalizedString, upperValue: Int, - lowerTitle: LocalizedStringKey, + lowerTitle: LocalizedString, lowerValue: Int) -> some View { VStack(alignment: .leading) { VerticalCard(title: upperTitle, value: upperValue, largeText: false) diff --git a/WordPress/WordPressStatsWidgets/Views/UnconfiguredView.swift b/WordPress/WordPressStatsWidgets/Views/UnconfiguredView.swift index 823e9a1fbd9e..e78eb4fc89a6 100644 --- a/WordPress/WordPressStatsWidgets/Views/UnconfiguredView.swift +++ b/WordPress/WordPressStatsWidgets/Views/UnconfiguredView.swift @@ -12,7 +12,7 @@ struct UnconfiguredView: View { .padding() } - var unconfiguredMessage: LocalizedStringKey { + var unconfiguredMessage: LocalizedString { switch widgetKind { case .today: return LocalizableStrings.unconfiguredViewTodayTitle From 1e5c937b5e0d49d7bad8a85c919750ef62c41be8 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 19:30:54 +0100 Subject: [PATCH 299/371] Update Fastfile to recognize AppLocalizedString as a L10n routine --- fastlane/Fastfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 485f649085d8..7d4c10dc3552 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -418,7 +418,8 @@ platform :ios do en_lproj = 'WordPress/Resources/en.lproj' ios_generate_strings_file_from_code( paths: ['WordPress/', 'Pods/WordPress*/', 'Pods/WPMediaPicker/', 'WordPressShared/WordPressShared/', 'Pods/Gutenberg/'], - exclude: ['*Vendor*', 'WordPress/WordPressTest/I18n.swift', 'WordPress/WordPressStatsWidgets/Views/Localization/LocalizedStringKey+extension.swift', '*/Secrets.swift'], + exclude: ['*Vendor*', 'WordPress/WordPressTest/I18n.swift', 'WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift'], + routines: ['AppLocalizedString'], output_dir: en_lproj ) From 85fe5c7db68804f89c4124dd6331575a0f3ded4e Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 19:32:04 +0100 Subject: [PATCH 300/371] Update strings for localization --- .../Resources/en.lproj/Localizable.strings | Bin 856116 -> 862912 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 05c0a13ad3ceb99d1eaf3edb026f28a1d6881221..1ace02d3158c2211c57476b408fd3e6df3954abe 100644 GIT binary patch delta 3340 zcmbtXdrVVj6u-Ck*?TXg?QJP7AT1yWLMg`hi0Fo9&TKefvbhkN$G;LPKsl*qs)c%y>YzHc z$bePbdr3KUZJ_8JoT#A9$zAT7Iy2nzFxha#C0R_JR5$ek<)gZy`_UF`cgS{OD-Lv0 z?Lf;JHrU@tXRF;*E1GvwtItny&YpygIP@r=4qVwo_(4N4V}&oS%L)`N=FF>B$N1r*8r&XVgkwIc z0LPZ&Q$Rh2CR?M%)2`MUPN|ylEf(B$x`m;(CET~R{vcz~jCvNv-jFaqYXznM6P-oh zhGw5foNZ9INY00M=I}g}F|-0-%Tg{!@O$CpE4)kFb4fAPjxUZA@Pg@a&Ylt7pBSpd zAsDvPxv+T|vl^V$g47$V=kVb}!Fu7C3ZI=~CP_t~kP3V$ORmsLudvMnLsq5$a(@#X z{crNDW{B`y7b5M3$ZgRI$3El@FwDsa_kBUBa8hMdB_&~Ko+N7!DCP;XkPO*`ad3q> z749w;3PRzaFs}wy)Y4hnjlGB}BC!1<0t?2A_|I~lx6p1aA}oh7g*Nv8#VNEK=noVX z#2YaE}#3y9E8OMKENfjoN`OzHg5RbCwDs-2x~3q&&E4))}>9 zUNLVC)ri<@(V!0vkUAk%Oyh>cr7T}dIvY? zLxUTn(XurApxi(!8I4%!Br4I3@ZKgx)s7z(d;4}vp}yVn%KgzkNN<5Zy6Lx9 zwxAC}CsyTz8h*j~LdL#oTHG12~p23>iD< zrEr7O8R6gEf?`ihr1iLLb{_qhUg9y;Q`LMyg`?LvBZNJYlS}f@vOYFw;U`!){+z(W z==ZFl;{J^M7<6BPj~kl(v<(bjv68S3y*6XhZwM(iJ88J%tvVjJSXi_R2W?t+o)Jbg z&J3Fm=@l4aI0JaTqb(C~mCTN9H*9}~SG7A=ML2symqk+OV0KU)u$_}tlvd5(f+|eR zTj}iVj+@BzV#3Cg=f<{2+(Gr*oCWsn;>_CJTMCTS>kSMh95$9P`7_72GBv*BbS0J3 zgHiS28Ry0mY&H>wf;D^=xQiJHZs~O9bRorHWWl^*#t3KTGKOiGPxT)s`6?$#^m^?= zvo&2*ZQ6mQe9S#DK0kd}ry75t!0Hu|;5RUMeSwEcnNn@|A`b(_I-_YyeZs*KCeJk; z4AN3jo0JrNxLYxar06FWI{hqX z1^;^VKm;n|4J?WW>xC%P3WrOW>}l$owCgx_JggG?(#bM>PU0avC}qRpBD}u&OBjX7 zaSnV`!Z@ZDdg){#CLPUAf+sZw0&TQua zBxfQwmQ*I2P*#2a)wcz)aN<1njR{FibQ7q_ z?W&O-IqBz0RX(T#vAM*0hsQ^{Ap|PW}OKXfIs@ SVLvTG?FwEB1=lD;-~0zPmq&E~ delta 207 zcmV;=05Jc+)ikuAG_cH=vqG6L#D|Dp0f&fQ0*8oR1Gk7?1UTE15QYSo?nwtUw|qMV z$QPGT!2uALE}aM>mkvDxB!|9K1&6*=2DiRc2euQJf@}vAm!N6~2A5!H2Mo6kX$M9y zmk?wJ1eXvy2OyJBu>`j|ng=97w^G~(EW(p8e-xKcga;hA;-3g6Z?}#Q3G5`7kT?lK zx2!e^@-3I}V+j_AEM*C|EM*GVDu;TI3b%TY3rvug5I+Y5w~j9idNP;r3^KVw Jw;*E-pvOrPO+^3z From da86de6de722d36da77d69a04f74f0c0cb5db849 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 19:33:29 +0100 Subject: [PATCH 301/371] Revert changes to generated .strings file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 85fe5c7db68804f89c4124dd6331575a0f3ded4e – which was created after we ran `fastlane generate_strings_file_for_glotpress` to confirm that the changes in the Fastfile worked as expected and were able to detect strings in the Widget code. We need to revert those changes to the generated `Localizable.strings` file because this branch will be merged in `develop` and we should not update that `.strings` file – imported by GlotPress – outside of code freeze; otherwise newer strings, associated with not-yet-frozen code, would be imported in GlotPress too soon. --- .../Resources/en.lproj/Localizable.strings | Bin 862912 -> 856116 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 1ace02d3158c2211c57476b408fd3e6df3954abe..05c0a13ad3ceb99d1eaf3edb026f28a1d6881221 100644 GIT binary patch delta 207 zcmV;=05Jc+)ikuAG_cH=vqG6L#D|Dp0f&fQ0*8oR1Gk7?1UTE15QYSo?nwtUw|qMV z$QPGT!2uALE}aM>mkvDxB!|9K1&6*=2DiRc2euQJf@}vAm!N6~2A5!H2Mo6kX$M9y zmk?wJ1eXvy2OyJBu>`j|ng=97w^G~(EW(p8e-xKcga;hA;-3g6Z?}#Q3G5`7kT?lK zx2!e^@-3I}V+j_AEM*C|EM*GVDu;TI3b%TY3rvug5I+Y5w~j9idNP;r3^KVw Jw;*E-pvOrPO+^3z delta 3340 zcmbtXdrVVj6u-Ck*?TXg?QJP7AT1yWLMg`hi0Fo9&TKefvbhkN$G;LPKsl*qs)c%y>YzHc z$bePbdr3KUZJ_8JoT#A9$zAT7Iy2nzFxha#C0R_JR5$ek<)gZy`_UF`cgS{OD-Lv0 z?Lf;JHrU@tXRF;*E1GvwtItny&YpygIP@r=4qVwo_(4N4V}&oS%L)`N=FF>B$N1r*8r&XVgkwIc z0LPZ&Q$Rh2CR?M%)2`MUPN|ylEf(B$x`m;(CET~R{vcz~jCvNv-jFaqYXznM6P-oh zhGw5foNZ9INY00M=I}g}F|-0-%Tg{!@O$CpE4)kFb4fAPjxUZA@Pg@a&Ylt7pBSpd zAsDvPxv+T|vl^V$g47$V=kVb}!Fu7C3ZI=~CP_t~kP3V$ORmsLudvMnLsq5$a(@#X z{crNDW{B`y7b5M3$ZgRI$3El@FwDsa_kBUBa8hMdB_&~Ko+N7!DCP;XkPO*`ad3q> z749w;3PRzaFs}wy)Y4hnjlGB}BC!1<0t?2A_|I~lx6p1aA}oh7g*Nv8#VNEK=noVX z#2YaE}#3y9E8OMKENfjoN`OzHg5RbCwDs-2x~3q&&E4))}>9 zUNLVC)ri<@(V!0vkUAk%Oyh>cr7T}dIvY? zLxUTn(XurApxi(!8I4%!Br4I3@ZKgx)s7z(d;4}vp}yVn%KgzkNN<5Zy6Lx9 zwxAC}CsyTz8h*j~LdL#oTHG12~p23>iD< zrEr7O8R6gEf?`ihr1iLLb{_qhUg9y;Q`LMyg`?LvBZNJYlS}f@vOYFw;U`!){+z(W z==ZFl;{J^M7<6BPj~kl(v<(bjv68S3y*6XhZwM(iJ88J%tvVjJSXi_R2W?t+o)Jbg z&J3Fm=@l4aI0JaTqb(C~mCTN9H*9}~SG7A=ML2symqk+OV0KU)u$_}tlvd5(f+|eR zTj}iVj+@BzV#3Cg=f<{2+(Gr*oCWsn;>_CJTMCTS>kSMh95$9P`7_72GBv*BbS0J3 zgHiS28Ry0mY&H>wf;D^=xQiJHZs~O9bRorHWWl^*#t3KTGKOiGPxT)s`6?$#^m^?= zvo&2*ZQ6mQe9S#DK0kd}ry75t!0Hu|;5RUMeSwEcnNn@|A`b(_I-_YyeZs*KCeJk; z4AN3jo0JrNxLYxar06FWI{hqX z1^;^VKm;n|4J?WW>xC%P3WrOW>}l$owCgx_JggG?(#bM>PU0avC}qRpBD}u&OBjX7 zaSnV`!Z@ZDdg){#CLPUAf+sZw0&TQua zBxfQwmQ*I2P*#2a)wcz)aN<1njR{FibQ7q_ z?W&O-IqBz0RX(T#vAM*0hsQ^{Ap|PW}OKXfIs@ SVLvTG?FwEB1=lD;-~0zPmq&E~ From 82df966f9ceab7166bffa58b6ff56c27b2300f8c Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 20:55:32 +0100 Subject: [PATCH 302/371] Add env vars in scheme to test the iOS14 Widget easily See https://developer.apple.com/documentation/widgetkit/debugging-widgets --- .../xcschemes/WordPressStatsWidgets.xcscheme | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressStatsWidgets.xcscheme b/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressStatsWidgets.xcscheme index 1aed5ace8657..0dec3d56383b 100644 --- a/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressStatsWidgets.xcscheme +++ b/WordPress/WordPress.xcodeproj/xcshareddata/xcschemes/WordPressStatsWidgets.xcscheme @@ -80,9 +80,19 @@ + + + + Date: Thu, 25 Nov 2021 23:33:54 +0100 Subject: [PATCH 303/371] Move already-localized strings from Widget to App For each locale, I appended the content of the .strings from the Stats Widget to the .strings of the App, then removed the .strings from the Widget (which are not used anymore) --- .../Resources/ar.lproj/Localizable.strings | 11 +++ .../Resources/bg.lproj/Localizable.strings | 10 +++ .../Resources/cs.lproj/Localizable.strings | 11 +++ .../Resources/cy.lproj/Localizable.strings | 10 +++ .../Resources/da.lproj/Localizable.strings | 10 +++ .../Resources/de.lproj/Localizable.strings | 11 +++ .../Resources/en-AU.lproj/Localizable.strings | 11 +++ .../Resources/en-CA.lproj/Localizable.strings | 11 +++ .../Resources/en-GB.lproj/Localizable.strings | 11 +++ .../Resources/en.lproj/Localizable.strings | Bin 856116 -> 859430 bytes .../Resources/es.lproj/Localizable.strings | 11 +++ .../Resources/fr.lproj/Localizable.strings | 11 +++ .../Resources/he.lproj/Localizable.strings | 11 +++ .../Resources/hr.lproj/Localizable.strings | 10 +++ .../Resources/hu.lproj/Localizable.strings | 10 +++ .../Resources/id.lproj/Localizable.strings | 11 +++ .../Resources/is.lproj/Localizable.strings | 10 +++ .../Resources/it.lproj/Localizable.strings | 11 +++ .../Resources/ja.lproj/Localizable.strings | 11 +++ .../Resources/ko.lproj/Localizable.strings | 11 +++ .../Resources/nb.lproj/Localizable.strings | 11 +++ .../Resources/nl.lproj/Localizable.strings | 11 +++ .../Resources/pl.lproj/Localizable.strings | 10 +++ .../Resources/pt-BR.lproj/Localizable.strings | 10 +++ .../Resources/pt.lproj/Localizable.strings | 10 +++ .../Resources/ro.lproj/Localizable.strings | 11 +++ .../Resources/ru.lproj/Localizable.strings | 11 +++ .../Resources/sk.lproj/Localizable.strings | 10 +++ .../Resources/sq.lproj/Localizable.strings | 11 +++ .../Resources/sv.lproj/Localizable.strings | 11 +++ .../Resources/th.lproj/Localizable.strings | 10 +++ .../Resources/tr.lproj/Localizable.strings | 11 +++ .../zh-Hans.lproj/Localizable.strings | 11 +++ .../zh-Hant.lproj/Localizable.strings | 11 +++ WordPress/WordPress.xcodeproj/project.pbxproj | 80 ------------------ .../Base.lproj/Localizable.strings | Bin 3236 -> 0 bytes .../ar.lproj/Localizable.strings | Bin 419 -> 0 bytes .../bg.lproj/Localizable.strings | Bin 359 -> 0 bytes .../cs.lproj/Localizable.strings | Bin 447 -> 0 bytes .../cy.lproj/Localizable.strings | Bin 277 -> 0 bytes .../da.lproj/Localizable.strings | Bin 296 -> 0 bytes .../de.lproj/Localizable.strings | Bin 378 -> 0 bytes .../en-AU.lproj/Localizable.strings | Bin 342 -> 0 bytes .../en-CA.lproj/Localizable.strings | Bin 342 -> 0 bytes .../en-GB.lproj/Localizable.strings | Bin 342 -> 0 bytes .../en.lproj/Localizable.strings | 44 ---------- .../es.lproj/Localizable.strings | Bin 384 -> 0 bytes .../fr.lproj/Localizable.strings | Bin 359 -> 0 bytes .../he.lproj/Localizable.strings | Bin 427 -> 0 bytes .../hr.lproj/Localizable.strings | Bin 282 -> 0 bytes .../hu.lproj/Localizable.strings | Bin 348 -> 0 bytes .../id.lproj/Localizable.strings | Bin 375 -> 0 bytes .../is.lproj/Localizable.strings | Bin 319 -> 0 bytes .../it.lproj/Localizable.strings | Bin 347 -> 0 bytes .../ja.lproj/Localizable.strings | Bin 339 -> 0 bytes .../ko.lproj/Localizable.strings | Bin 325 -> 0 bytes .../nb.lproj/Localizable.strings | Bin 369 -> 0 bytes .../nl.lproj/Localizable.strings | Bin 362 -> 0 bytes .../pl.lproj/Localizable.strings | Bin 276 -> 0 bytes .../pt-BR.lproj/Localizable.strings | Bin 369 -> 0 bytes .../pt.lproj/Localizable.strings | Bin 335 -> 0 bytes .../ro.lproj/Localizable.strings | Bin 410 -> 0 bytes .../ru.lproj/Localizable.strings | Bin 449 -> 0 bytes .../sk.lproj/Localizable.strings | Bin 320 -> 0 bytes .../sq.lproj/Localizable.strings | Bin 399 -> 0 bytes .../sv.lproj/Localizable.strings | Bin 414 -> 0 bytes .../th.lproj/Localizable.strings | Bin 335 -> 0 bytes .../tr.lproj/Localizable.strings | Bin 465 -> 0 bytes .../zh-Hans.lproj/Localizable.strings | Bin 329 -> 0 bytes .../zh-Hant.lproj/Localizable.strings | Bin 335 -> 0 bytes 70 files changed, 352 insertions(+), 124 deletions(-) delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/Base.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/ar.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/bg.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/cs.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/cy.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/da.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/de.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/en-AU.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/en-CA.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/en-GB.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/en.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/es.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/fr.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/he.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/hr.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/hu.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/id.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/is.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/it.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/ja.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/ko.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/nb.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/nl.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/pl.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/pt-BR.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/pt.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/ro.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/ru.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/sk.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/sq.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/sv.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/th.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/tr.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/zh-Hans.lproj/Localizable.strings delete mode 100644 WordPress/WordPressStatsWidgets/Supporting Files/zh-Hant.lproj/Localizable.strings diff --git a/WordPress/Resources/ar.lproj/Localizable.strings b/WordPress/Resources/ar.lproj/Localizable.strings index 5f6a840cb3b6..91a9f242fcde 100644 --- a/WordPress/Resources/ar.lproj/Localizable.strings +++ b/WordPress/Resources/ar.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• المستخدمون والكاتبون"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "أفضل المشاهدات على الإطلاق"; +"widget.alltime.posts.label" = "مقالات"; +"widget.today.comments.label" = "تعليقات"; +"widget.today.likes.label" = "إعجابات"; +"widget.today.title" = "اليوم"; +"widget.today.views.label" = "مشاهدات"; +"widget.today.visitors.label" = "الزوار"; + diff --git a/WordPress/Resources/bg.lproj/Localizable.strings b/WordPress/Resources/bg.lproj/Localizable.strings index 891741b3ff93..b379873c86d2 100644 --- a/WordPress/Resources/bg.lproj/Localizable.strings +++ b/WordPress/Resources/bg.lproj/Localizable.strings @@ -9164,3 +9164,13 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Потребители и автори"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.posts.label" = "Публикации"; +"widget.today.comments.label" = "Коментари"; +"widget.today.likes.label" = "Харесвания"; +"widget.today.title" = "Днес"; +"widget.today.views.label" = "Преглеждания"; +"widget.today.visitors.label" = "Посетители"; + diff --git a/WordPress/Resources/cs.lproj/Localizable.strings b/WordPress/Resources/cs.lproj/Localizable.strings index c0a8f8370ac1..af157c7f39ac 100644 --- a/WordPress/Resources/cs.lproj/Localizable.strings +++ b/WordPress/Resources/cs.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Uživatelé a autoři"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "Nejlepší pohledy ze všech"; +"widget.alltime.posts.label" = "Příspěvky"; +"widget.today.comments.label" = "Komentáře"; +"widget.today.likes.label" = "To se mi líbí"; +"widget.today.title" = "Dnes"; +"widget.today.views.label" = "Zobrazení"; +"widget.today.visitors.label" = "Návštěvníci"; + diff --git a/WordPress/Resources/cy.lproj/Localizable.strings b/WordPress/Resources/cy.lproj/Localizable.strings index 44d2f29e4625..5819b1771442 100644 --- a/WordPress/Resources/cy.lproj/Localizable.strings +++ b/WordPress/Resources/cy.lproj/Localizable.strings @@ -9164,3 +9164,13 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.posts.label" = "Cofnodion"; +"widget.today.comments.label" = "Nodiadau"; +"widget.today.likes.label" = "Hoffi"; +"widget.today.title" = "Heddiw"; +"widget.today.views.label" = "Golwg"; +"widget.today.visitors.label" = "Ymwelwyr"; + diff --git a/WordPress/Resources/da.lproj/Localizable.strings b/WordPress/Resources/da.lproj/Localizable.strings index 0082b9dc94ce..79671f8ad58d 100644 --- a/WordPress/Resources/da.lproj/Localizable.strings +++ b/WordPress/Resources/da.lproj/Localizable.strings @@ -9164,3 +9164,13 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.posts.label" = "Indlæg"; +"widget.today.comments.label" = "Kommentarer"; +"widget.today.likes.label" = "Likes"; +"widget.today.title" = "I dag"; +"widget.today.views.label" = "Visninger"; +"widget.today.visitors.label" = "Besøgende"; + diff --git a/WordPress/Resources/de.lproj/Localizable.strings b/WordPress/Resources/de.lproj/Localizable.strings index 4d417fc54702..0afe0b387603 100644 --- a/WordPress/Resources/de.lproj/Localizable.strings +++ b/WordPress/Resources/de.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Benutzer und Autoren"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "Bisher bestes Aufrufergebnis"; +"widget.alltime.posts.label" = "Artikel"; +"widget.today.comments.label" = "Kommentare"; +"widget.today.likes.label" = "Gefällt mir"; +"widget.today.title" = "Heute"; +"widget.today.views.label" = "Aufrufe"; +"widget.today.visitors.label" = "Besucher"; + diff --git a/WordPress/Resources/en-AU.lproj/Localizable.strings b/WordPress/Resources/en-AU.lproj/Localizable.strings index 3a54983f8e83..463ac2abc3f9 100644 --- a/WordPress/Resources/en-AU.lproj/Localizable.strings +++ b/WordPress/Resources/en-AU.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "Best views ever"; +"widget.alltime.posts.label" = "Posts"; +"widget.today.comments.label" = "Comments"; +"widget.today.likes.label" = "Likes"; +"widget.today.title" = "Today"; +"widget.today.views.label" = "Views"; +"widget.today.visitors.label" = "Visitors"; + diff --git a/WordPress/Resources/en-CA.lproj/Localizable.strings b/WordPress/Resources/en-CA.lproj/Localizable.strings index 581feaac76af..5d1062eeaa88 100644 --- a/WordPress/Resources/en-CA.lproj/Localizable.strings +++ b/WordPress/Resources/en-CA.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "Best views ever"; +"widget.alltime.posts.label" = "Posts"; +"widget.today.comments.label" = "Comments"; +"widget.today.likes.label" = "Likes"; +"widget.today.title" = "Today"; +"widget.today.views.label" = "Views"; +"widget.today.visitors.label" = "Visitors"; + diff --git a/WordPress/Resources/en-GB.lproj/Localizable.strings b/WordPress/Resources/en-GB.lproj/Localizable.strings index 6a9d18ab8e76..51a93dd5c9ac 100644 --- a/WordPress/Resources/en-GB.lproj/Localizable.strings +++ b/WordPress/Resources/en-GB.lproj/Localizable.strings @@ -9164,3 +9164,14 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; + +// MARK: WordPressStatsWidgets Strings + +"widget.alltime.bestviews.label" = "Best views ever"; +"widget.alltime.posts.label" = "Posts"; +"widget.today.comments.label" = "Comments"; +"widget.today.likes.label" = "Likes"; +"widget.today.title" = "Today"; +"widget.today.views.label" = "Views"; +"widget.today.visitors.label" = "Visitors"; + diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 05c0a13ad3ceb99d1eaf3edb026f28a1d6881221..3e019edf0f81b0cf12e2239ee8af40280ac7cb7f 100644 GIT binary patch delta 1705 zcmbtUO-vI(6rSDfcH7xy+5SS&_vWFE!tSM*dihE;9)%J z!MG;Rco6)F2M@*riN=F5L=Pqy;bM#j1BvlOh+d5Gp;vyzhJOd*7SM ziLNKFx~?&f@l0S2CNd|Jn2Wg?WinGHYr3>rN;>e1kV7O%j*^3*$CY687%31PSDy5f z3`vo*BwhTA5cA|R?p?&aJm~wlFx+kBHBW?OF=7z!Wf2U|VLU2?o7xbYlI>))3?_jP zmk?AZVcy`J@c-bLq7RB2E$y>Wr=H?`tU#OI5w;X`Q9@%dq z`{8j^sBd0hhyn~Bclu!eNm_5lH3%cvqhV3@aVbdtk^)7Xmi2M$u-X(VYL|{JwcvYi zh<>=qM6dDVo8n1hoy)zBqG3*>DQ^GX3Nw?U)|eqfctOWiZjXqK3du&f33|UvuIBRd z3j5f1(MZX#GsKnBNW^3ccSPC-Go5rBJd6qrM%^RTm^ti#XQw15EPimPv9(ci=<#$J zww~jHpuTfZ$(oEY=zF0ALssGia;~b*d7cj#g|G(GhUkSe58Mh&2xzy?_ncqMnll0) zn}twxb-i`GkVWM(3LbUuQY$&vi)&t#DLP&Sm(Xjlt(|9P>z5Y2aOP z$p=qAiJ}<6*ikh+KB*L0Y-(&{5^Q3SVETw#6)-2*8x!L2X23yVN2{R0>lQ&> zgU)ni1~ncF7M2#)7Pc1l7LFFq7OocV7M?A^eL->HIhrVtckc!%KT3kS-fJi9f=iAQMI8LxbpoFSQ2~NB_ zyR$Rq=es9eiDW2K$z>)A_X~N)|2KSo;!nvOPcp2`B$ZcupW%Lr)d=eg8DVvc`wiAc zGRE^9-@4M1j>MJKr1XB`#ZOA{V??;Y70dk|ide1@w}a?m)H9&?0EYJQy2xRq{UUP{ z#xK07(3$ozy2xRS&qd~AFlKn046iPPv>d-4Z~3hz)aT4&uB)X2-1H5L`EJfU!Olq5 z&;^wMslmnA8(P-|AvuAV-Sje*6fH?&tI+k0e#BA`wDxOy7Qa>>!hxK`?Xpg%R0~Yl$ z9$MXzV9r7~9RE+6IlA>4I4vi1@LV%ZCUP)Tc6P&git0E~M3-y7Hx+KdCTBc6M@GBK zn-l-ENx?1873ScXv)`#O+h&*D6Xx@F7nwO3xyqc6WQmG6;bC`f2dB#s_Ps%Yp$RR| zW1@BbLfi^GDb0$1X17y;&1b`;#fxU3wS8oPBK#mEJ;m)QH;--Sdz1Te1T+`XK*erpH zyugZq3RQtz9iY4hNMRaSp%GA_I-6m>fE1fDnpBS xCk74%aRw6xe})u>CWg5TyBY2N<%5eQ~-y0WdZ;I diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/bg.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/bg.lproj/Localizable.strings deleted file mode 100644 index 1409932121522f32b01d052820b88becdb42ee39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 359 zcmY+6%}&Bl5QXQ$QSmQnj3fjXtX$gEA4mg2phUMmLR09C8N9W`-ay#+B0LGN!NQI2 z;4?UZ0_iN~oIB@!XEZgOSfKp#y!q9eP7 zCwS<>$6JhRF-;5@b@cEowu?a0KKu!8H%3xC?0|_h4RJ3$KH7486_uY2fd>Ky@(e^J irV3TbqZb;}H!W#JYx<=>RaQ0HOi68(E_2OA-Tec|I#p%> diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/cs.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/cs.lproj/Localizable.strings deleted file mode 100644 index e2964c51d77d9ea1d758829f025103f6421fd0d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447 zcmZ`zJ5Iwu5Pcgy34eF8K%xL4iZswfc03}3cWo=Xa%4KV2PfemG&DJY zMZ*CYj1@2vTg=nG-%ONiwr)6lRh^a9we@aqV{>bJXLsx!&N;p#7q~1A%b;MI+dzjA z>9M!pk{mltW3S(kq1KKK1$k!OGBIc+CYdpm{;2I$niKjbSg>W6&6eu%pPdm|_v=!| zEiy!yA;bd+DXP&~N|tf0ZcxD@R|6DCP%fsMb*T{G9UiFpt!fl+5x7zx=kyw9H87{IoovNPb>KWNvwCPI+Y! ehp2&Ta^38m`;VQ!dY=Id7#Sfn122?@Q7-^E8Ct*q diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/da.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/da.lproj/Localizable.strings deleted file mode 100644 index 298685531b79239579fbbf965f7ac8e2448c6fd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 296 zcmYc)$jK}&F)+Bs$i&RT%Er#Y$;HhRFCbB#nUbDbqF0iil31x%mYG^!te2CRl$sMS zAcP`Sl39|I8ZRJ?BAA??o12fsMg4^%;LPvy!6zfP)~)F#Pn!yh^2`|KoK916=@8f40#MG3^@$X7}7HtoETCW oiWz<|qyuS?a4LtWfopQz?45^CUcLQ-0Sp)!Av6Ool!j5i0mTnpP5=M^ diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/de.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/de.lproj/Localizable.strings deleted file mode 100644 index ac83140ac5b5615e3a27bb3397aa53112a682f9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 378 zcmZ{ey-veG5QOK#U--8oBoKe{6Ic;7P0}P1H437!?06kkImgl6IuUK&BTvGE&`?rQ zrbpsPtbmc&D`s`0`DWv>W-HC+tEz2mZf)<>clY)W4v#|bY|6=iB#=Cbo`VU~)CM|= zNrzseVhM|;&^s?bBdvuq3dXsWb>gCu=;v8RqaU|grFlsI1Sf1+az6rRVsuOjE<h=q75_Rza diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/en-AU.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/en-AU.lproj/Localizable.strings deleted file mode 100644 index 13e96a10a17375eaf99485261077514d30bd7abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS83~613#38Qj8J+)~sxb diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/en-CA.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/en-CA.lproj/Localizable.strings deleted file mode 100644 index 13e96a10a17375eaf99485261077514d30bd7abb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS83~613#38Qj8J+)~sxb diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/en-GB.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/en-GB.lproj/Localizable.strings deleted file mode 100644 index 68dde15c3595a9c9dcc080cd123d05c13900cf5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oQJ$HSo?4<;lAn@TsaKYnT3)P|lbDp6 z6E7fyB2|)El9L)QAO#gn%*iRq%uUrR$S*E|>ySp#k({5Ko0^A^MYSp?GdmTB#fxU3wSok^+1B}gs}4FkD4Gz8>>&;XEoBAlUChx&kQi3o!l7%#x@1k|el)~t|P zmRiKX!643H#Nf`5!qCJpmti-<9fn5?FBsl2d}sK}$i@H$OpFkkfgegkDMkqZ&6sR} diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/en.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/en.lproj/Localizable.strings deleted file mode 100644 index 16167a84c44e..000000000000 --- a/WordPress/WordPressStatsWidgets/Supporting Files/en.lproj/Localizable.strings +++ /dev/null @@ -1,44 +0,0 @@ -/* Title of comments label in today widget */ -"widget.today.comments.label" = "Comments"; - -/* Title of likes label in today widget */ -"widget.today.likes.label" = "Likes"; - -/* Title of views label in today widget */ -"widget.today.views.label" = "Views"; - -/* Title of visitors label in today widget */ -"widget.today.visitors.label" = "Visitors"; - -/* Title of today widget */ -"widget.today.title" = "Today"; - -/* Title of the unconfigured view in today widget */ -"widget.today.unconfigured.view.title" = "Log in to WordPress to see today's stats."; - -/* Error message to show if a widget view is unavailable */ -"widget.today.view.unavailable.title" = "View is unavailable"; - -/* Description of today widget in the preview */ -"widget.today.preview.description" = "Stay up to date with today's activity on your WordPress site."; - -/* Title of all time widget */ -"widget.alltime.title" = "All Time"; - -/* Title of posts label in all time widget */ -"widget.alltime.posts.label" = "Posts"; - -/* Title of best views ever label in all time widget */ -"widget.alltime.bestviews.label" = "Best views ever"; - -/* Description of all time widget in the preview */ -"widget.alltime.preview.description" = "Stay up to date with all time activity on your WordPress site."; - -/*Title of the unconfigured view in all time widget */ -"widget.alltime.unconfigured.view.title" = "Log in to WordPress to see all time stats."; - -/* Title of this week widget */ -"widget.thisweek.title" = "This Week"; - -/* Title of the unconfigured view in this week widget */ -"widget.thisweek.unconfigured.view.title" = "Log in to WordPress to see this week's stats."; diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/es.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/es.lproj/Localizable.strings deleted file mode 100644 index 7993416f3b5ac010e5f66dcc035c488ac7d93cb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 384 zcmZ{e%}T>S5Xb*pwbrj1y;Kw=PY`b`;#fxU3wS8QVS{&_Inw4K#l%k$dni=B^aYABdQEG7- zgO`FNLn1>aLoP#VWEjYf)Y78jxS-VJ{Gt?vlvIT>pmqih25|-x27iVWh9-u&47(Zb eFg#^=#qf=hnNfgIiUACm7$GzRKa_@2jG6#fdT)dP diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/he.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/he.lproj/Localizable.strings deleted file mode 100644 index a87c45fcacd44acc84ace625bfee4855a78509d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 427 zcmZ`zT}s115T31$t^Yv;MNtIbLms?`M+k}8l+}$}+@Zx+@8L;2MQf@SQ>h?UdkAro z#$W^&mihkXW5SMBmOSrKG!_DSqU{I0yL50>?O& zmPJ2oP!yz?ve)NaR%9MHKgpM&1v_v8rx3vn+`=7X@Cjd{DYnJ2@Su1NF`uwm&T@$4 E8=WnUp#T5? diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/hr.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/hr.lproj/Localizable.strings deleted file mode 100644 index b93c8f2f3c0ac18f16aee3836806736f350b633c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 282 zcmYc)$jK}&F)+Bs$i&RT%Er#Y$;HhRFCbB#nUbDbqF0iil31x%mYG^!te2CRl$sMS zAcP`Sl39|I8ZRJ?BAA??o12fsMd&pqSW-9)RfFnm&Clp;z;j&kd=u=nV~))^TPvx2IZG!#sKN8RG=$UbFwly eL=9Y%>t^pfbmG#D2Ml1q$Oxesc%d|mdJ6zX%Uu8f diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/hu.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/hu.lproj/Localizable.strings deleted file mode 100644 index 53baed989119e42d16c68422f18e1da23304b9f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348 zcmY+7O=^|&(kDiZwaMbg z%8H4N&f;EWIC0kM8K04AnxR6US5E;{#xPl(%$>h*)zk%fV)qeHixD((u-pX*GwJ@| zkFVE}vKYW&Ewz=|8atS>b12@1$NvlT#rj@Gti%vd!ccrHYz`&5lk5gMNb!ORKC!_U VzVVBH?4t*irxu+Q?Vv%T=K}y^VwL~^ diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/id.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/id.lproj/Localizable.strings deleted file mode 100644 index 94b06aa2943fd62917740ffc8554ecb027a6e884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 375 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS8-2%#DHp){0Yv;+XY^mX9? diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/is.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/is.lproj/Localizable.strings deleted file mode 100644 index 888294245d50b2756620492fbed93d8abf87f592..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmY+6%}T>i5QR@#+r~c#LP6}tCkS~37uHSJE~F4{o8dZi(v*9rDQGs0Yv-68Ix?XW+NnUo`*# diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/it.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/it.lproj/Localizable.strings deleted file mode 100644 index 373a507c8c25964ca751ee294cf050530a9c8527..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 347 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS8S}ro}L-u46!{k#0O|m6j&w^XlQ1< zfIv`ca(+>YLQ19r*rrql4hC@s69#{V6ow{-xeU7*?l3%Mc*F3K;TOYyMlJ?0U}A*O M4E#_UN-@d;05l+OPyhe` diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/ja.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/ja.lproj/Localizable.strings deleted file mode 100644 index 33c76c89bb404c10a1415117e35745c511d3ea6e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 339 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS8b`;#fxU3wS8ARm5>xtSWH zNvYczd&5SNyPl?{RCgEk0O{iAGS;~VOhEAX!aS-&oP0EiVU)(o+L{_m#u$VuLxE zESh#uoW_T^VOsa-WPpUlP!^pJj)kjhvj3$SuBcBNJ~kX!obTzypN=^N`Bi3_kmurF z$SzYNUt&Wxy+NxH%i9HEAxz;eMfAEg+OqW}^ysJ}AF}8;Y13wTyH#Xo&auE4PT>l! fLBkU~!wbB@JAA;WQfi{6@I52-qj1z|C+hMGkxz1Y diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/pl.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/pl.lproj/Localizable.strings deleted file mode 100644 index dce3c33bde8152e3de59cdf1dafbdd6325c6ff62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmYc)$jK}&F)+Bs$i&RT%Er#Y$;HhRFCbB#nUbDbqF0iil31x%mYG^!te2CRl$sMS zAcP`Sl39|I8ZRJ?BAA??o12fsMgRhkfXv~s(_-2SyA5kAR7~ls!~IJK<0;r7i1P!Mub82aEKbXCfCj0x&Qd3 T8}}H%fRPbGGw?!b81)ur6C;>qPTRE=t0fJy-CqZnEz1)zD*}aw9$px)_51+)>5E~0C zUqE{|@d#{@X}+27Z;D65Ub5_6bv8D)w!6KZ-M#%h>Cd?wlceHG{ggILbDtVrkjaz7 zND>x9d2$kwBWEpDvWlFxsy0U0Qd*Fgs55?NcuK2m+}yBdadoR&48ic2LBoXYIp8;b zLGZWN?t!Klz`=&Qg5V2v@Hlvv9OEXC29t2s3p>uxtgE^k%xd9M`}^VIyRL*hdN@Lc cD~#}hSG?f^pZHPd>H^E@sDH#ki!G?jKUJt`_W%F@ diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/pt.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/pt.lproj/Localizable.strings deleted file mode 100644 index 9efca60f0fcc29f3c71745ef5a22708ec3b127fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmY+7O-chn5QX2wpTwvz2!Wt?80HQl@c>~KZiY^#2$ghChg6vm7rBTh$vs4H>B_Ae z5wc2893oSjS5;rVSEIRQ(KLOJS|_Jx=k3l#_wp)_`ztOcq>1{%tdk|vN)l^EWb^o@ zft1x!9^W;VWA7Z5dbBjtEYIkOZfm2lR@qT9_ww&+rY>1n{i3!yWMBxMVPHe|67&l{ zAjt61PicmGc(^c^P<&z$ZagF#ga=;uKr2Gnp{U4HR^^*gNzg$LDIPG!2CvxS4IlW% RZ`8%1TG5~4y4G5v-X28vVI=?n diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/ro.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/ro.lproj/Localizable.strings deleted file mode 100644 index 108669e0d5e6bb7b5cd671d5734ad35abbe3a845..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 410 zcmZ{e%}T>i5QWce{i)WU(2Wv7+_(*0_yVO5pdb_}g>aJ$W$2B!%$buc4LcbQ-&Ci&v%9z7J2>ng9iPNOxaMq55@}Y=aPEkiR8dA@?r4 s)s>(4P2ZP)`J;z3+~5`&p7DZLyyF9(3aYO{b&YLx)VJca)>_o;3-FP0^Z)<= diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/ru.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/ru.lproj/Localizable.strings deleted file mode 100644 index ada4efc46611d9f6bce07bcd0073374598f298b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 449 zcmZ`zOHRWu6nriN6v`)JQ`GW5K$JowMNs-%zyd^%5GBM!rY@<7)ru{ggOhL&He7%^ zu;3M;K`mSInAZ5f@GA@(zogb@-`WbN$hArMMKl^O$vek=G#|;_`XGZs) zb7m6PB- ZgFfj?RK$^Jhzt5zCGlHnGpktO#X`BE6 diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/sk.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/sk.lproj/Localizable.strings deleted file mode 100644 index 8fe1f79dd289506982832f8ee492abb4b96974a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320 zcmY+7O-=$q5QSf({HTyjOh^dcVKRr%mBf{7*i3q$AeHIqCexK6xZon5#624?;L45e zjaQ(R31n*XD(}_zDq9=&k|ZChb#dA5bbD9VH~lmkZFsRFiN!7SHm;a9J~lcdlSa3V zNLUP|(OtuwyP_Z~C#2bCIHyxIu0d^#a6$3f`7_sSt=O};vPNe!mzDa3EbHfcOP=uv zhXMo(!52!2O1+g873v7(EP;;34cgyy6XeyyFw!_{IOU M)KM|0wHDPm0Nd1Ew*UYD diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/sq.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/sq.lproj/Localizable.strings deleted file mode 100644 index a15b2529d6e597f97568bffbe0e2ea67fca7f672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmZ`zyH3ME5S$BygttWj2oTB_SSk1m3XGzV(z5X?xp3zTzEvV9`47H?4@pBwg(XUA zmS9;JiIZ+;wKKCj>C9-){r*z5*4En_o$lt=_Rj8J9Gon4HYN@eV^~`XXU?+^O_Gv{ zgX4;1mn9G3T+^ba4jL3|HWUY^jp41cmh%6$8GT3fwx)5ey=GU`?D?OJDS7@CW)w+g z$v%vdVoHO7FrC8C$5iW2g%oCpRf>*rZ9Uu5qZFPv%YpEZ^euWjN>n{MGbSnS= diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/sv.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/sv.lproj/Localizable.strings deleted file mode 100644 index 213625b5332e135680080095d8e2a46a175ae0cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 414 zcmZ{ey-ve06oroqh4LS%EQ5t?ixNBpS>(%gM)5DbFRvQ{%jg zl}t$`QNMxSWbz@dm}V{7UqYU}q9i(8GH*>;lKwAEaY1d`^2drDdt+OA^rvG=&i^WN zhcPr1=E#v>U9!`xb7?Qe!%XJalSK<@$tF>B#!AUj+JbDobdOUI96nJ%!h%dR2-ZAU zJ{Ut(;PBSr)*=39Mc2N@TbNClT+MnozzNQg;So=G#w*_OfiKY&eQ}KXbi_ij*JvZ+ F<{M_Jc`*P0 diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/th.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/th.lproj/Localizable.strings deleted file mode 100644 index 5100f3bbf174fb510a819dfc114ac4907f196994..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYc)$jK}&F)+Bs$i&RT%Er#Y$;HhRFCbB#nUbDbqF0iil31x%mYG^!te2CRl$sMS zAcP`Sl39|I8ZRJ?BAA??o12fsMb_IMm{4xWj+x;%QQZ9K0`i9AT;Ik%-~}Ia*g;D`5gGP`P}&=)A_jg%=tWk zvRr(+d{SvZab>W8E+2a~pA4TRpC?dA38>ctNGbwVDKc;{h%y*3xH2R&)G^Fv*vW8& a;UdE$hK~&Y7{Gvu5kfQYLTM<)C<*}9%Ts&+ diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/tr.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/tr.lproj/Localizable.strings deleted file mode 100644 index 2b755920083690a696a6d484c205c815a3075e96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmZ`zy-ve07(9o+@>7Ty0D%M@m_w2J1T3(zQU)rASdkSwu57ne8F>X}o`eTsVP{}x z>cHnTiU<-Oe4p>`J6}3h()oV>okc6FYwH`G&8_X7?(Qf)p2;j1KH*AvsYNn2&bvhM zRH#vWREyqZe4b3Dm^IRVOY+hyF^W%GenES%@aBy*QOldSe^)^iRiBIRC3m zjv+Xn*d-L9EpUx*ICuzHNNA#I61c(yITk4IhQ>~`;#LtS*cr(s8H24{nicMen1?tb zJw9vMn)sYOP!1<2M-K(vS!D~eBqn6^s^##?sfrDMQplpp*5s%Pp@TyVa7+8oc*Pq& Y@Wmq5We4nn-Jm)VTO#&qtbx7!0BbIMvj6}9 diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/zh-Hans.lproj/Localizable.strings deleted file mode 100644 index def46fe2ed1a9c34cb9967c1a71cbcea35334244..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS8$iQy~59|kaBVua8P{7@Q7 HF>(U{hsABb diff --git a/WordPress/WordPressStatsWidgets/Supporting Files/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressStatsWidgets/Supporting Files/zh-Hant.lproj/Localizable.strings deleted file mode 100644 index 13b47e182bffc7ecdbf5ab8d21533852f9e0183a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 335 zcmYc)$jK}&F)+B!$i&RT%Er#Y$;HjX%NH*oRi2rWo?4=pn3GeInVYItkY8Lb`;#fxU3wS8CWg5TyBY2- O2%#DHp){0Y6a)a8Cv9B- From b5be219f2148b9338be0bff0ac399fe2df4100d6 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 25 Nov 2021 23:46:23 +0100 Subject: [PATCH 304/371] Better documentation for AppLocalizedString helper --- .../Views/Localization/AppLocalizedString.swift | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift index 240f0dcc7182..60ff8ae89ecc 100644 --- a/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift +++ b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift @@ -11,8 +11,16 @@ extension Bundle { }() } -typealias LocalizedString = String // Useful only to express intent on your API; does not provide any compile-time guarantee +/// This is mostly useful to express *intent* on your API. It does not provide any compile-time guarantee +typealias LocalizedString = String -func AppLocalizedString(_ key: String, value: String?, comment: String) -> LocalizedString { +/// Be sure to use this function instead of `NSLocalizedString` in order to reference localized strings **from the app bundle**. +/// As `NSLocalisedString` by default will look up strings in the current (main) bundle, which could be an App Extension for cases like a Widget +/// but, in order to avoid duplicating our strings accross targets, it is better to make App Extensions / Widgets reference the strings +/// from the `Localizable.strings` files that are hosted the app bundle instead of hosting their own `.strings` file. +/// +/// Also, be sure to pass this function name as a custom routine when parsing the code to generate the main `.strings` file, +/// using `genstrings -s AppLocalizedString` to that this helper method is recognized. +func AppLocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> LocalizedString { Bundle.app.localizedString(forKey: key, value: value, table: nil) } From d6f924e97a1eca07fe18053a4c70b06db9ea6c3b Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 26 Nov 2021 00:51:10 +0100 Subject: [PATCH 305/371] Remove trailing newlines at end of `.strings` To make Hound happy. --- .../Resources/ar.lproj/Localizable.strings | 1 - .../Resources/bg.lproj/Localizable.strings | 1 - .../Resources/cs.lproj/Localizable.strings | 1 - .../Resources/cy.lproj/Localizable.strings | 1 - .../Resources/da.lproj/Localizable.strings | 1 - .../Resources/de.lproj/Localizable.strings | 1 - .../Resources/en-AU.lproj/Localizable.strings | 1 - .../Resources/en-CA.lproj/Localizable.strings | 1 - .../Resources/en-GB.lproj/Localizable.strings | 1 - .../Resources/en.lproj/Localizable.strings | Bin 859430 -> 859428 bytes .../Resources/es.lproj/Localizable.strings | 1 - .../Resources/fr.lproj/Localizable.strings | 2 +- .../Resources/he.lproj/Localizable.strings | 1 - .../Resources/hr.lproj/Localizable.strings | 1 - .../Resources/hu.lproj/Localizable.strings | 1 - .../Resources/id.lproj/Localizable.strings | 1 - .../Resources/is.lproj/Localizable.strings | 1 - .../Resources/it.lproj/Localizable.strings | 1 - .../Resources/ja.lproj/Localizable.strings | 1 - .../Resources/ko.lproj/Localizable.strings | 1 - .../Resources/nb.lproj/Localizable.strings | 1 - .../Resources/nl.lproj/Localizable.strings | 1 - .../Resources/pl.lproj/Localizable.strings | 1 - .../Resources/pt-BR.lproj/Localizable.strings | 1 - .../Resources/pt.lproj/Localizable.strings | 1 - .../Resources/ro.lproj/Localizable.strings | 1 - .../Resources/ru.lproj/Localizable.strings | 1 - .../Resources/sk.lproj/Localizable.strings | 1 - .../Resources/sq.lproj/Localizable.strings | 1 - .../Resources/sv.lproj/Localizable.strings | 1 - .../Resources/th.lproj/Localizable.strings | 1 - .../Resources/tr.lproj/Localizable.strings | 1 - .../zh-Hans.lproj/Localizable.strings | 1 - .../zh-Hant.lproj/Localizable.strings | 1 - 34 files changed, 1 insertion(+), 33 deletions(-) diff --git a/WordPress/Resources/ar.lproj/Localizable.strings b/WordPress/Resources/ar.lproj/Localizable.strings index 91a9f242fcde..e1ab1657657b 100644 --- a/WordPress/Resources/ar.lproj/Localizable.strings +++ b/WordPress/Resources/ar.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "اليوم"; "widget.today.views.label" = "مشاهدات"; "widget.today.visitors.label" = "الزوار"; - diff --git a/WordPress/Resources/bg.lproj/Localizable.strings b/WordPress/Resources/bg.lproj/Localizable.strings index b379873c86d2..e563a2d67fe0 100644 --- a/WordPress/Resources/bg.lproj/Localizable.strings +++ b/WordPress/Resources/bg.lproj/Localizable.strings @@ -9173,4 +9173,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Днес"; "widget.today.views.label" = "Преглеждания"; "widget.today.visitors.label" = "Посетители"; - diff --git a/WordPress/Resources/cs.lproj/Localizable.strings b/WordPress/Resources/cs.lproj/Localizable.strings index af157c7f39ac..2a0312fdcbc1 100644 --- a/WordPress/Resources/cs.lproj/Localizable.strings +++ b/WordPress/Resources/cs.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Dnes"; "widget.today.views.label" = "Zobrazení"; "widget.today.visitors.label" = "Návštěvníci"; - diff --git a/WordPress/Resources/cy.lproj/Localizable.strings b/WordPress/Resources/cy.lproj/Localizable.strings index 5819b1771442..f56ffda0fce1 100644 --- a/WordPress/Resources/cy.lproj/Localizable.strings +++ b/WordPress/Resources/cy.lproj/Localizable.strings @@ -9173,4 +9173,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Heddiw"; "widget.today.views.label" = "Golwg"; "widget.today.visitors.label" = "Ymwelwyr"; - diff --git a/WordPress/Resources/da.lproj/Localizable.strings b/WordPress/Resources/da.lproj/Localizable.strings index 79671f8ad58d..9c2598a00a6d 100644 --- a/WordPress/Resources/da.lproj/Localizable.strings +++ b/WordPress/Resources/da.lproj/Localizable.strings @@ -9173,4 +9173,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "I dag"; "widget.today.views.label" = "Visninger"; "widget.today.visitors.label" = "Besøgende"; - diff --git a/WordPress/Resources/de.lproj/Localizable.strings b/WordPress/Resources/de.lproj/Localizable.strings index 0afe0b387603..107e605dc084 100644 --- a/WordPress/Resources/de.lproj/Localizable.strings +++ b/WordPress/Resources/de.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Heute"; "widget.today.views.label" = "Aufrufe"; "widget.today.visitors.label" = "Besucher"; - diff --git a/WordPress/Resources/en-AU.lproj/Localizable.strings b/WordPress/Resources/en-AU.lproj/Localizable.strings index 463ac2abc3f9..1e0fbaab5a97 100644 --- a/WordPress/Resources/en-AU.lproj/Localizable.strings +++ b/WordPress/Resources/en-AU.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Today"; "widget.today.views.label" = "Views"; "widget.today.visitors.label" = "Visitors"; - diff --git a/WordPress/Resources/en-CA.lproj/Localizable.strings b/WordPress/Resources/en-CA.lproj/Localizable.strings index 5d1062eeaa88..cfec3a261fef 100644 --- a/WordPress/Resources/en-CA.lproj/Localizable.strings +++ b/WordPress/Resources/en-CA.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Today"; "widget.today.views.label" = "Views"; "widget.today.visitors.label" = "Visitors"; - diff --git a/WordPress/Resources/en-GB.lproj/Localizable.strings b/WordPress/Resources/en-GB.lproj/Localizable.strings index 51a93dd5c9ac..d4bbb908eff9 100644 --- a/WordPress/Resources/en-GB.lproj/Localizable.strings +++ b/WordPress/Resources/en-GB.lproj/Localizable.strings @@ -9174,4 +9174,3 @@ translators: Block name. %s: The localized block name */ "widget.today.title" = "Today"; "widget.today.views.label" = "Views"; "widget.today.visitors.label" = "Visitors"; - diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 3e019edf0f81b0cf12e2239ee8af40280ac7cb7f..d6fc0869c4786af4583b5fd1d58cc75d54c6e9c0 100644 GIT binary patch delta 35 qcmZ3s%VfzelZFF7M2#)7Pc1l7LFFq7OocV7M?AF7M2#)7Pc1l7LFFq7OocV7M?A Date: Fri, 26 Nov 2021 01:16:59 +0100 Subject: [PATCH 306/371] Remove trailing whitespaces To make Hound happy (again) --- .../Localization/LocalizableStrings.swift | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift b/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift index c8df017cda9f..e586179e7621 100644 --- a/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift +++ b/WordPress/WordPressStatsWidgets/Views/Localization/LocalizableStrings.swift @@ -5,38 +5,38 @@ enum LocalizableStrings { static let todayWidgetTitle = AppLocalizedString("widget.today.title", value: "Today", comment: "Title of today widget") - + // All Time Widget title static let allTimeWidgetTitle = AppLocalizedString("widget.alltime.title", value: "All Time", comment: "Title of all time widget") - + // This Week Widget title static let thisWeekWidgetTitle = AppLocalizedString("widget.thisweek.title", value: "This Week", comment: "Title of this week widget") - + // Widgets content static let viewsTitle = AppLocalizedString("widget.today.views.label", value: "Views", comment: "Title of views label in today widget") - + static let visitorsTitle = AppLocalizedString("widget.today.visitors.label", value: "Visitors", comment: "Title of visitors label in today widget") - + static let likesTitle = AppLocalizedString("widget.today.likes.label", value: "Likes", comment: "Title of likes label in today widget") - + static let commentsTitle = AppLocalizedString("widget.today.comments.label", value: "Comments", comment: "Title of comments label in today widget") - + static let postsTitle = AppLocalizedString("widget.alltime.posts.label", value: "Posts", comment: "Title of posts label in all time widget") - + static let bestViewsTitle = AppLocalizedString("widget.alltime.bestviews.label", value: "Best views ever", comment: "Title of best views ever label in all time widget") @@ -44,11 +44,11 @@ enum LocalizableStrings { static let unconfiguredViewTodayTitle = AppLocalizedString("widget.today.unconfigured.view.title", value: "Log in to WordPress to see today's stats.", comment: "Title of the unconfigured view in today widget") - + static let unconfiguredViewAllTimeTitle = AppLocalizedString("widget.alltime.unconfigured.view.title", value: "Log in to WordPress to see all time stats.", comment: "Title of the unconfigured view in all time widget") - + static let unconfiguredViewThisWeekTitle = AppLocalizedString("widget.thisweek.unconfigured.view.title", value: "Log in to WordPress to see this week's stats.", comment: "Title of the unconfigured view in this week widget") @@ -56,7 +56,7 @@ enum LocalizableStrings { static let noDataViewTitle = AppLocalizedString("widget.today.nodata.view.title", value: "Unable to load site stats.", comment: "Title of the nodata view in today widget") - + // Today Widget Preview static let todayPreviewDescription = AppLocalizedString("widget.today.preview.description", value: "Stay up to date with today's activity on your WordPress site.", @@ -65,12 +65,12 @@ enum LocalizableStrings { static let allTimePreviewDescription = AppLocalizedString("widget.alltime.preview.description", value: "Stay up to date with all time activity on your WordPress site.", comment: "Description of all time widget in the preview") - + // This Week Widget preview static let thisWeekPreviewDescription = AppLocalizedString("widget.thisweek.preview.description", value: "Stay up to date with this week activity on your WordPress site.", comment: "Description of all time widget in the preview") - + // Errors static let unavailableViewTitle = AppLocalizedString("widget.today.view.unavailable.title", value: "View is unavailable", From ec9cc02ebefe637cf01127c747019fcbe2bdaf83 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 26 Nov 2021 01:38:58 +0100 Subject: [PATCH 307/371] Manually reorder the `widget.*` keys in `en.lproj` To put them in alphabetical order, so that during the next code-freeze or run of the generate_strings_file_for_glotpress lane, the diff will be smaller by not moving these lines around (since genstrings sort the keys in alphabetical order when generating its `.strings` file from parsing the code). --- .../Resources/en.lproj/Localizable.strings | Bin 859428 -> 859348 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index d6fc0869c4786af4583b5fd1d58cc75d54c6e9c0..905ebfb663890e841d96ca382426d024cfd4ff9f 100644 GIT binary patch delta 160 zcmZ3o%jC*VlZFF7M2#)7Pc1l7LFFq7OocVEj(95r*F_@6q@cL!FvY6`qj$L zGd)FuH)8rPabAn<0+PH|jMEKVxFx0wi1W5h7m(pK+TJI{JB?|2pCKy;SkLx(0=yoK z(=Qls$!&ij%B#XS9Y{(|HxS}g+TJJ3Yr_OFd6phG*LEf$UOUF=0XLagw%-utiTVWq DJR&j- delta 208 zcmcbz(`3mmlZFF7M2#)7Pc1l7LFFq7OocVEj(95rw80*V%c7$#1r*Pkc)wf zK_3Ve7Lfcifmsd$5X~M{el6P-1Y`p9u>yv4$e$0 z)1Qg)I8FZ|!Q(RhS1UWu^b2A<6F|y^rau$qIkP=MoX3iBdXhe))OH6+o&!t(YrZ Date: Fri, 26 Nov 2021 01:58:04 +0100 Subject: [PATCH 308/371] Add some missing `widget.*` keys in `en.lproj` Seems they have always be missing in the original `.strings` too (but since the code used `value:` in its call to `NSLocalizedString` before that PR, those 2 missing in the development language didn't have any impact) --- .../Resources/en.lproj/Localizable.strings | Bin 859348 -> 859894 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 905ebfb663890e841d96ca382426d024cfd4ff9f..8b67516b9d8ed59b34ced8efacdc475d5b630e79 100644 GIT binary patch delta 144 zcmcbz)8yM;lZFF7M2#)7Pc1l7LFFq7OocVEj(UQ(-Xvbil&E2^9W6UB+e5x zUC)D!Yr38qGuLz%Ii95LaZ)@i%+ojMGD>mhG2}C(FeEaRFeFZQ{KhUi{f8ot6^dxR oG>_u+3rD!vreB!FB{6-83bVxY0(EAd=@$&R Date: Thu, 25 Nov 2021 22:27:20 -0300 Subject: [PATCH 309/371] Readability improvement to dismissPost --- WordPress/UITestsFoundation/Screens/ReaderScreen.swift | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/ReaderScreen.swift b/WordPress/UITestsFoundation/Screens/ReaderScreen.swift index 081eba71b705..cd9a4ef506a9 100644 --- a/WordPress/UITestsFoundation/Screens/ReaderScreen.swift +++ b/WordPress/UITestsFoundation/Screens/ReaderScreen.swift @@ -54,11 +54,8 @@ public class ReaderScreen: ScreenObject { let backButton = app.buttons["Back"] let dismissButton = app.buttons["Dismiss"] - if dismissButton.isHittable { - dismissButton.tap() - } else if backButton.isHittable { - backButton.tap() - } + if dismissButton.isHittable { dismissButton.tap() } + if backButton.isHittable { backButton.tap() } } public static func isLoaded() -> Bool { From 7b677c11fc992c134dd8a2491f5d632043d3c4e2 Mon Sep 17 00:00:00 2001 From: Joel Dean Date: Thu, 25 Nov 2021 23:02:46 -0500 Subject: [PATCH 310/371] Update Gutenberg Mobile ref with tag --- Podfile | 2 +- Podfile.lock | 178 +++++++++++++++++++++++++-------------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/Podfile b/Podfile index d0ebb0c0741d..1cec246e9c0e 100644 --- a/Podfile +++ b/Podfile @@ -166,7 +166,7 @@ abstract_target 'Apps' do ## Gutenberg (React Native) ## ===================== ## - gutenberg :commit => 'c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f' + gutenberg :tag => 'v1.67.0' ## Third party libraries ## ===================== diff --git a/Podfile.lock b/Podfile.lock index b46d31f7b419..608c3c85823d 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -490,18 +490,18 @@ DEPENDENCIES: - AppCenter (~> 4.1) - AppCenter/Distribute (~> 4.1) - Automattic-Tracks-iOS (~> 0.9.1) - - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/BVLinearGradient.podspec.json`) + - BVLinearGradient (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/BVLinearGradient.podspec.json`) - Charts (~> 3.2.2) - CocoaLumberjack (~> 3.0) - CropViewController (= 2.5.3) - Down (~> 0.6.6) - - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBLazyVector.podspec.json`) - - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) + - FBLazyVector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/FBLazyVector.podspec.json`) + - FBReactNativeSpec (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json`) - FSInteractiveMap (from `https://github.com/wordpress-mobile/FSInteractiveMap.git`, tag `0.2.0`) - Gifu (= 3.2.0) - - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/glog.podspec.json`) + - glog (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/glog.podspec.json`) - Gridicons (~> 1.1.0) - - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f`) + - Gutenberg (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.67.0`) - JTAppleCalendar (~> 8.0.2) - Kanvas (~> 1.2.7) - MediaEditor (~> 1.2.1) @@ -511,44 +511,44 @@ DEPENDENCIES: - "NSURL+IDN (~> 0.4)" - OCMock (~> 3.4.3) - OHHTTPStubs/Swift (~> 9.1.0) - - RCT-Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCT-Folly.podspec.json`) - - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTRequired.podspec.json`) - - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTTypeSafety.podspec.json`) + - RCT-Folly (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCT-Folly.podspec.json`) + - RCTRequired (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCTRequired.podspec.json`) + - RCTTypeSafety (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCTTypeSafety.podspec.json`) - Reachability (= 3.2) - - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React.podspec.json`) - - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-callinvoker.podspec.json`) - - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-Core.podspec.json`) - - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-CoreModules.podspec.json`) - - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-cxxreact.podspec.json`) - - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsi.podspec.json`) - - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsiexecutor.podspec.json`) - - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsinspector.podspec.json`) - - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-blur.podspec.json`) - - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-get-random-values.podspec.json`) - - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) - - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area.podspec.json`) - - react-native-safe-area-context (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area-context.podspec.json`) - - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-slider.podspec.json`) - - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-video.podspec.json`) - - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-webview.podspec.json`) - - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-perflogger.podspec.json`) - - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTActionSheet.podspec.json`) - - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTAnimation.podspec.json`) - - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTBlob.podspec.json`) - - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTImage.podspec.json`) - - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTLinking.podspec.json`) - - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTNetwork.podspec.json`) - - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTSettings.podspec.json`) - - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTText.podspec.json`) - - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTVibration.podspec.json`) - - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-runtimeexecutor.podspec.json`) - - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/ReactCommon.podspec.json`) - - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNCMaskedView.podspec.json`) - - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNGestureHandler.podspec.json`) - - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNReanimated.podspec.json`) - - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNScreens.podspec.json`) - - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNSVG.podspec.json`) - - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, commit `c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f`) + - React (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React.podspec.json`) + - React-callinvoker (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-callinvoker.podspec.json`) + - React-Core (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-Core.podspec.json`) + - React-CoreModules (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-CoreModules.podspec.json`) + - React-cxxreact (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-cxxreact.podspec.json`) + - React-jsi (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsi.podspec.json`) + - React-jsiexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsiexecutor.podspec.json`) + - React-jsinspector (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsinspector.podspec.json`) + - react-native-blur (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-blur.podspec.json`) + - react-native-get-random-values (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-get-random-values.podspec.json`) + - react-native-keyboard-aware-scroll-view (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json`) + - react-native-safe-area (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-safe-area.podspec.json`) + - react-native-safe-area-context (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-safe-area-context.podspec.json`) + - react-native-slider (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-slider.podspec.json`) + - react-native-video (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-video.podspec.json`) + - react-native-webview (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-webview.podspec.json`) + - React-perflogger (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-perflogger.podspec.json`) + - React-RCTActionSheet (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTActionSheet.podspec.json`) + - React-RCTAnimation (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTAnimation.podspec.json`) + - React-RCTBlob (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTBlob.podspec.json`) + - React-RCTImage (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTImage.podspec.json`) + - React-RCTLinking (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTLinking.podspec.json`) + - React-RCTNetwork (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTNetwork.podspec.json`) + - React-RCTSettings (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTSettings.podspec.json`) + - React-RCTText (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTText.podspec.json`) + - React-RCTVibration (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTVibration.podspec.json`) + - React-runtimeexecutor (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-runtimeexecutor.podspec.json`) + - ReactCommon (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/ReactCommon.podspec.json`) + - RNCMaskedView (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNCMaskedView.podspec.json`) + - RNGestureHandler (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNGestureHandler.podspec.json`) + - RNReanimated (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNReanimated.podspec.json`) + - RNScreens (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNScreens.podspec.json`) + - RNSVG (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNSVG.podspec.json`) + - RNTAztecView (from `https://github.com/wordpress-mobile/gutenberg-mobile.git`, tag `v1.67.0`) - Starscream (= 3.0.6) - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.5) @@ -558,7 +558,7 @@ DEPENDENCIES: - WordPressShared (~> 1.17.0-beta.1) - WordPressUI (~> 1.12.2) - WPMediaPicker (~> 1.7.2) - - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/Yoga.podspec.json`) + - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/Yoga.podspec.json`) - ZendeskSupportSDK (= 5.3.0) - ZIPFoundation (~> 0.9.8) @@ -621,111 +621,111 @@ SPEC REPOS: EXTERNAL SOURCES: BVLinearGradient: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/BVLinearGradient.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/BVLinearGradient.podspec.json FBLazyVector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBLazyVector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/FBLazyVector.podspec.json FBReactNativeSpec: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/FBReactNativeSpec/FBReactNativeSpec.podspec.json FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 glog: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/glog.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/glog.podspec.json Gutenberg: - :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true + :tag: v1.67.0 RCT-Folly: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCT-Folly.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCT-Folly.podspec.json RCTRequired: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTRequired.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCTRequired.podspec.json RCTTypeSafety: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RCTTypeSafety.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RCTTypeSafety.podspec.json React: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React.podspec.json React-callinvoker: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-callinvoker.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-callinvoker.podspec.json React-Core: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-Core.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-Core.podspec.json React-CoreModules: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-CoreModules.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-CoreModules.podspec.json React-cxxreact: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-cxxreact.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-cxxreact.podspec.json React-jsi: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsi.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsi.podspec.json React-jsiexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsiexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsiexecutor.podspec.json React-jsinspector: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-jsinspector.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-jsinspector.podspec.json react-native-blur: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-blur.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-blur.podspec.json react-native-get-random-values: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-get-random-values.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-get-random-values.podspec.json react-native-keyboard-aware-scroll-view: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-keyboard-aware-scroll-view.podspec.json react-native-safe-area: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-safe-area.podspec.json react-native-safe-area-context: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-safe-area-context.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-safe-area-context.podspec.json react-native-slider: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-slider.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-slider.podspec.json react-native-video: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-video.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-video.podspec.json react-native-webview: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/react-native-webview.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/react-native-webview.podspec.json React-perflogger: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-perflogger.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-perflogger.podspec.json React-RCTActionSheet: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTActionSheet.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTActionSheet.podspec.json React-RCTAnimation: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTAnimation.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTAnimation.podspec.json React-RCTBlob: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTBlob.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTBlob.podspec.json React-RCTImage: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTImage.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTImage.podspec.json React-RCTLinking: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTLinking.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTLinking.podspec.json React-RCTNetwork: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTNetwork.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTNetwork.podspec.json React-RCTSettings: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTSettings.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTSettings.podspec.json React-RCTText: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTText.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTText.podspec.json React-RCTVibration: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-RCTVibration.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-RCTVibration.podspec.json React-runtimeexecutor: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/React-runtimeexecutor.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/React-runtimeexecutor.podspec.json ReactCommon: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/ReactCommon.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/ReactCommon.podspec.json RNCMaskedView: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNCMaskedView.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNCMaskedView.podspec.json RNGestureHandler: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNGestureHandler.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNGestureHandler.podspec.json RNReanimated: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNReanimated.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNReanimated.podspec.json RNScreens: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNScreens.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNScreens.podspec.json RNSVG: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/RNSVG.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/RNSVG.podspec.json RNTAztecView: - :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true + :tag: v1.67.0 Yoga: - :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f/third-party-podspecs/Yoga.podspec.json + :podspec: https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/Yoga.podspec.json CHECKOUT OPTIONS: FSInteractiveMap: :git: https://github.com/wordpress-mobile/FSInteractiveMap.git :tag: 0.2.0 Gutenberg: - :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true + :tag: v1.67.0 RNTAztecView: - :commit: c1ed53559c9f2ba1cb3547c98bfebcb25d91f83f :git: https://github.com/wordpress-mobile/gutenberg-mobile.git :submodules: true + :tag: v1.67.0 SPEC CHECKSUMS: 1PasswordExtension: f97cc80ae58053c331b2b6dc8843ba7103b33794 @@ -826,6 +826,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 2380600f7cbd9c538ed49e651fc521da8fbcd0cf +PODFILE CHECKSUM: 63d141eadcb0ceade9f10349e2f5534f0f3e950b COCOAPODS: 1.10.1 From 06d1b64b4cf673b3de97ac81e73f18ee4e57bee7 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 09:58:39 +0000 Subject: [PATCH 311/371] Unified About: Add Blog row --- .../Me/App Settings/About/AboutScreenTracker.swift | 1 + .../About/WordPressAboutScreenConfiguration.swift | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift index f5dd47fb8a92..ce47bef9f2e1 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenTracker.swift @@ -16,6 +16,7 @@ class AboutScreenTracker { case rateUs = "rate_us" case share case twitter + case blog case legal case automatticFamily = "automattic_family" case workWithUs = "work_with_us" diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index 9e97be4d9f90..e588e94f8274 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -40,6 +40,10 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { self?.tracker.buttonPressed(.twitter) self?.webViewPresenter.present(for: Links.twitter, context: context) }), + AboutItem(title: TextContent.blog, subtitle: "blog.wordpress.com", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in + self?.tracker.buttonPressed(.blog) + self?.webViewPresenter.present(for: Links.blog, context: context) + }) ], [ AboutItem(title: TextContent.legalAndMore, action: { [weak self] context in @@ -83,6 +87,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { static let rateUs = NSLocalizedString("Rate Us", comment: "Title for button allowing users to rate the app in the App Store") static let share = NSLocalizedString("Share with Friends", comment: "Title for button allowing users to share information about the app with friends, such as via Messages") static let twitter = NSLocalizedString("Twitter", comment: "Title of button that displays the app's Twitter profile") + static let blog = NSLocalizedString("Blog", comment: "Title of a button that displays the WordPress product blog") static let legalAndMore = NSLocalizedString("Legal and More", comment: "Title of button which shows a list of legal documentation such as privacy policy and acknowledgements") static let automatticFamily = NSLocalizedString("Automattic Family", comment: "Title of button that displays information about the other apps available from Automattic") static let workWithUs = NSLocalizedString("Work With Us", comment: "Title of button that displays the Automattic Work With Us web page") @@ -91,6 +96,7 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { private enum Links { static let twitter = URL(string: "https://twitter.com/WordPressiOS")! + static let blog = URL(string: "https://blog.wordpress.com")! static let workWithUs = URL(string: "https://automattic.com/work-with-us")! static let automattic = URL(string: "https://automattic.com")! } From d2872383f3f7801d99266c95c1de3e213a948094 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 10:05:47 +0000 Subject: [PATCH 312/371] Unified About: Switch about logic of AboutItem accessoryType --- .../About/AboutScreenConfiguration.swift | 2 +- .../WordPressAboutScreenConfiguration.swift | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 5ce1cd2d35ca..7426a7f95aa8 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -66,7 +66,7 @@ struct AboutItem { /// and the source view that triggered the action. let action: AboutItemAction? - init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .disclosureIndicator, hidesSeparator: Bool = false, action: AboutItemAction? = nil) { + init(title: String, subtitle: String? = nil, cellStyle: AboutItemCellStyle = .default, accessoryType: UITableViewCell.AccessoryType = .none, hidesSeparator: Bool = false, action: AboutItemAction? = nil) { self.title = title self.subtitle = subtitle self.cellStyle = cellStyle diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift index e588e94f8274..58802bfbc11e 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift @@ -26,40 +26,40 @@ class WordPressAboutScreenConfiguration: AboutScreenConfiguration { lazy var sections: [[AboutItem]] = { [ [ - AboutItem(title: TextContent.rateUs, accessoryType: .none, action: { [weak self] context in + AboutItem(title: TextContent.rateUs, action: { [weak self] context in WPAnalytics.track(.appReviewsRatedApp) self?.tracker.buttonPressed(.rateUs) AppRatingUtility.shared.ratedCurrentVersion() UIApplication.shared.open(AppRatingUtility.shared.appReviewUrl) }), - AboutItem(title: TextContent.share, accessoryType: .none, action: { [weak self] context in + AboutItem(title: TextContent.share, action: { [weak self] context in self?.tracker.buttonPressed(.share) self?.sharePresenter.present(for: .wordpress, in: context.viewController, source: .about, sourceView: context.sourceView) }), - AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in + AboutItem(title: TextContent.twitter, subtitle: "@WordPressiOS", cellStyle: .value1, action: { [weak self] context in self?.tracker.buttonPressed(.twitter) self?.webViewPresenter.present(for: Links.twitter, context: context) }), - AboutItem(title: TextContent.blog, subtitle: "blog.wordpress.com", cellStyle: .value1, accessoryType: .none, action: { [weak self] context in + AboutItem(title: TextContent.blog, subtitle: "blog.wordpress.com", cellStyle: .value1, action: { [weak self] context in self?.tracker.buttonPressed(.blog) self?.webViewPresenter.present(for: Links.blog, context: context) }) ], [ - AboutItem(title: TextContent.legalAndMore, action: { [weak self] context in + AboutItem(title: TextContent.legalAndMore, accessoryType: .disclosureIndicator, action: { [weak self] context in self?.tracker.buttonPressed(.legal) context.showSubmenu(title: TextContent.legalAndMore, configuration: LegalAndMoreSubmenuConfiguration()) }), ], [ - AboutItem(title: TextContent.automatticFamily, hidesSeparator: true, action: { [weak self] context in + AboutItem(title: TextContent.automatticFamily, accessoryType: .disclosureIndicator, hidesSeparator: true, action: { [weak self] context in self?.tracker.buttonPressed(.automatticFamily) self?.webViewPresenter.present(for: Links.automattic, context: context) }), AboutItem(title: "", cellStyle: .appLogos, accessoryType: .none) ], [ - AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, action: { [weak self] context in + AboutItem(title: TextContent.workWithUs, subtitle: TextContent.workWithUsSubtitle, cellStyle: .subtitle, accessoryType: .disclosureIndicator, action: { [weak self] context in self?.tracker.buttonPressed(.workWithUs) self?.webViewPresenter.present(for: Links.workWithUs, context: context) }), @@ -118,7 +118,7 @@ class LegalAndMoreSubmenuConfiguration: AboutScreenConfiguration { }() private func linkItem(title: String, link: URL, button: AboutScreenTracker.Event.Button) -> AboutItem { - AboutItem(title: title, accessoryType: .none, action: { [weak self] context in + AboutItem(title: title, action: { [weak self] context in self?.buttonPressed(link: link, context: context, button: button) }) } From 9f913b1ffe0899f7f06b21f6ca653d5a3904231e Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 10:46:07 +0000 Subject: [PATCH 313/371] Fix issue where About VC was rotating when it shouldn't --- .../About/UnifiedAboutViewController.swift | 11 ++++++----- .../ViewRelated/Me/Me Main/MeViewController.swift | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 740fb3a74ce5..95183fd2d377 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,7 +1,12 @@ import UIKit +class UnifiedAboutNavigationController: UINavigationController, OrientationLimited { + override var supportedInterfaceOrientations: UIInterfaceOrientationMask { + return .portrait + } +} -class UnifiedAboutViewController: UIViewController, OrientationLimited { +class UnifiedAboutViewController: UIViewController { private let appInfo: AboutScreenAppInfo? private let fonts: AboutScreenFonts? @@ -88,10 +93,6 @@ class UnifiedAboutViewController: UIViewController, OrientationLimited { return footerView }() - override var supportedInterfaceOrientations: UIInterfaceOrientationMask { - return .portrait - } - private var shouldShowNavigationBar: Bool { isSubmenu } diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index 0c88a2b96dba..638e2cacda8f 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -257,7 +257,7 @@ class MeViewController: UITableViewController { let controller = UnifiedAboutViewController(appInfo: WordPressAboutScreenConfiguration.appInfo, configuration: configuration, fonts: WordPressAboutScreenConfiguration.fonts) - let navigationController = UINavigationController(rootViewController: controller) + let navigationController = UnifiedAboutNavigationController(rootViewController: controller) navigationController.modalPresentationStyle = .formSheet self.present(navigationController, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) From c52ce5f1bad1e94d0dc76612fe0621c21f537b84 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 11:53:16 +0000 Subject: [PATCH 314/371] Unified About: Hide implementation details of navigation controller --- .../About/UnifiedAboutViewController.swift | 14 +++++++++++++- .../ViewRelated/Me/Me Main/MeViewController.swift | 10 ++++------ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 95183fd2d377..4887b8df6874 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -1,6 +1,7 @@ import UIKit -class UnifiedAboutNavigationController: UINavigationController, OrientationLimited { +// Required to prevent rotation in the About screen +private class UnifiedAboutNavigationController: UINavigationController, OrientationLimited { override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .portrait } @@ -99,6 +100,17 @@ class UnifiedAboutViewController: UIViewController { // MARK: - View lifecycle + /// This is the preferred way to create an About screen to present, as a navigation controller is required. + static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil, isSubmenu: Bool = false) -> UIViewController { + let viewController = UnifiedAboutViewController(appInfo: appInfo, + configuration: configuration, + fonts: fonts, + isSubmenu: isSubmenu) + let navigationController = UnifiedAboutNavigationController(rootViewController: viewController) + navigationController.modalPresentationStyle = .formSheet + return navigationController + } + init(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil, isSubmenu: Bool = false) { self.appInfo = appInfo self.fonts = fonts diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index 638e2cacda8f..c88b2a69540d 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,12 +254,10 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController(appInfo: WordPressAboutScreenConfiguration.appInfo, - configuration: configuration, - fonts: WordPressAboutScreenConfiguration.fonts) - let navigationController = UnifiedAboutNavigationController(rootViewController: controller) - navigationController.modalPresentationStyle = .formSheet - self.present(navigationController, animated: true) { + let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, + configuration: configuration, + fonts: WordPressAboutScreenConfiguration.fonts) + self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) } } From 51d0e3b3036fbf23d3ac704fc6d36c54eb32b87b Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 26 Nov 2021 13:02:28 +0100 Subject: [PATCH 315/371] Improvement wording in comments h/t @mokagio for the great wording suggestions Co-authored-by: Gio Lodi --- .../Views/Localization/AppLocalizedString.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift index 60ff8ae89ecc..1fe364ba6809 100644 --- a/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift +++ b/WordPress/WordPressStatsWidgets/Views/Localization/AppLocalizedString.swift @@ -11,16 +11,18 @@ extension Bundle { }() } -/// This is mostly useful to express *intent* on your API. It does not provide any compile-time guarantee +/// Use this to express *intent* on your API – though remember that, as a `typealias`, it won't provide any compile-time guarantee. typealias LocalizedString = String /// Be sure to use this function instead of `NSLocalizedString` in order to reference localized strings **from the app bundle**. /// As `NSLocalisedString` by default will look up strings in the current (main) bundle, which could be an App Extension for cases like a Widget /// but, in order to avoid duplicating our strings accross targets, it is better to make App Extensions / Widgets reference the strings -/// from the `Localizable.strings` files that are hosted the app bundle instead of hosting their own `.strings` file. +/// from the `Localizable.strings` files that are hosted in the app bundle instead of hosting their own `.strings` file. /// /// Also, be sure to pass this function name as a custom routine when parsing the code to generate the main `.strings` file, -/// using `genstrings -s AppLocalizedString` to that this helper method is recognized. +/// using `genstrings -s AppLocalizedString` so that this helper method is recognized. You will also have to +/// exclude this very file from being parsed by `genstrings`, so that it won't accidentally misinterpret that +/// routine/function definition below as a call site and generate an error because of it. func AppLocalizedString(_ key: String, tableName: String? = nil, value: String? = nil, comment: String) -> LocalizedString { Bundle.app.localizedString(forKey: key, value: value, table: nil) } From 2e0ad4342fe2175e5f286f74ba2fa534ca480b0f Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 12:58:44 +0000 Subject: [PATCH 316/371] Updated release notes --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index f69acea40d37..43e23b4e2699 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,5 +1,6 @@ 18.8 ----- +* [*] Added a new About screen, with links to rate the app, share it with others, visit our Twitter profile, view our other apps, and more. [https://github.com/orgs/wordpress-mobile/projects/107] * [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] * [*] Onboarding Improvements: Need a little help after login? We're here for you. We've made a few changes to the login flow that will make it easier for you to start managing your site or create a new one. [#17564] * [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] From 7f8641d6c038493df2788a7f61cc2420669324e5 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 12:59:20 +0000 Subject: [PATCH 317/371] Updated About screen feature flag to available for all --- 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 01d4dfdf9957..9dae6f0fc427 100644 --- a/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift +++ b/WordPress/Classes/Utility/BuildInformation/FeatureFlag.swift @@ -64,7 +64,7 @@ enum FeatureFlag: Int, CaseIterable, OverrideableFlag { case .followConversationViaNotifications: return true case .aboutScreen: - return BuildConfiguration.current == .localDeveloper + return true case .newCommentThread: return false case .postDetailsComments: From a7c5357a6188dbb31ca56f0ff20d8caf65ce72ed Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 14:04:20 +0000 Subject: [PATCH 318/371] Unified About: Fix an issue where nav bar should be hidden but wasn't --- .../Me/App Settings/About/UnifiedAboutViewController.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift index 4887b8df6874..48b20f5e459c 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift @@ -126,7 +126,6 @@ class UnifiedAboutViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() - navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: false) if isSubmenu { navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(dismissAboutScreen)) } @@ -167,6 +166,8 @@ class UnifiedAboutViewController: UIViewController { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) + navigationController?.setNavigationBarHidden(!shouldShowNavigationBar, animated: true) + if isMovingToParent { configuration.willShow(viewController: self) } From 36a0cbc1587b83dcf866ea42d9bcec8e3abac736 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 14:51:16 +0000 Subject: [PATCH 319/371] Rename Unified About screen files --- ...HeaderView.swift => AboutHeaderView.swift} | 2 +- ...ller.swift => AutomatticAboutScreen.swift} | 0 WordPress/WordPress.xcodeproj/project.pbxproj | 24 +++++++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) rename WordPress/Classes/ViewRelated/Me/App Settings/About/{UnifiedAboutHeaderView.swift => AboutHeaderView.swift} (99%) rename WordPress/Classes/ViewRelated/Me/App Settings/About/{UnifiedAboutViewController.swift => AutomatticAboutScreen.swift} (100%) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift similarity index 99% rename from WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift rename to WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift index f8f49488066d..4308fe0752ee 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift @@ -29,7 +29,7 @@ struct AboutScreenFonts { }() } -final class UnifiedAboutHeaderView: UIView { +final class AboutHeaderView: UIView { // MARK: - Customization Support diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift similarity index 100% rename from WordPress/Classes/ViewRelated/Me/App Settings/About/UnifiedAboutViewController.swift rename to WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index f17d5b71a823..95c760aec245 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -138,8 +138,8 @@ 08F8CD371EBD2AA80049D0C0 /* test-image-device-photo-gps.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 08F8CD341EBD2AA80049D0C0 /* test-image-device-photo-gps.jpg */; }; 08F8CD391EBD2C970049D0C0 /* MediaURLExporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8CD381EBD2C970049D0C0 /* MediaURLExporter.swift */; }; 08F8CD3B1EBD2D020049D0C0 /* MediaURLExporterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08F8CD3A1EBD2D020049D0C0 /* MediaURLExporterTests.swift */; }; - 17017EF22730508B0023A674 /* UnifiedAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */; }; - 17017EF32730508B0023A674 /* UnifiedAboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */; }; + 17017EF22730508B0023A674 /* AutomatticAboutScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF12730508B0023A674 /* AutomatticAboutScreen.swift */; }; + 17017EF32730508B0023A674 /* AutomatticAboutScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF12730508B0023A674 /* AutomatticAboutScreen.swift */; }; 17017EF52731983B0023A674 /* AutomatticAppLogosCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */; }; 17017EF62731983B0023A674 /* AutomatticAppLogosCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */; }; 1702BBDC1CEDEA6B00766A33 /* BadgeLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1702BBDB1CEDEA6B00766A33 /* BadgeLabel.swift */; }; @@ -2539,7 +2539,7 @@ F15A230420A3EBE300625EA2 /* ImgUploadProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F126FDFE20A33BDB0010EB6E /* ImgUploadProcessor.swift */; }; F15A230520A3ECC500625EA2 /* ImgUploadProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F126FDFE20A33BDB0010EB6E /* ImgUploadProcessor.swift */; }; F15D1FBA265C41A900854EE5 /* BloggingRemindersStoreTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15D1FB9265C41A900854EE5 /* BloggingRemindersStoreTests.swift */; }; - F15EEF812731FF9000B73E38 /* UnifiedAboutHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */; }; + F15EEF812731FF9000B73E38 /* AboutHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15EEF802731FF9000B73E38 /* AboutHeaderView.swift */; }; F163541626DE2ECE008B625B /* NotificationEventTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F163541526DE2ECE008B625B /* NotificationEventTracker.swift */; }; F163541726DE2ECE008B625B /* NotificationEventTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F163541526DE2ECE008B625B /* NotificationEventTracker.swift */; }; F1655B4822A6C2FA00227BFB /* Routes+Mbar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1655B4722A6C2FA00227BFB /* Routes+Mbar.swift */; }; @@ -2587,7 +2587,7 @@ F1DB8D292288C14400906E2F /* Uploader.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1DB8D282288C14400906E2F /* Uploader.swift */; }; F1DB8D2B2288C24500906E2F /* UploadsManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1DB8D2A2288C24500906E2F /* UploadsManager.swift */; }; F1E3536B25B9F74C00992E3A /* WindowManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E3536A25B9F74C00992E3A /* WindowManager.swift */; }; - F1E4FAB62732C41000781EA6 /* UnifiedAboutHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */; }; + F1E4FAB62732C41000781EA6 /* AboutHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F15EEF802731FF9000B73E38 /* AboutHeaderView.swift */; }; F1E72EBA267790110066FF91 /* UIViewController+Dismissal.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E72EB9267790100066FF91 /* UIViewController+Dismissal.swift */; }; F1E72EBB267790110066FF91 /* UIViewController+Dismissal.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1E72EB9267790100066FF91 /* UIViewController+Dismissal.swift */; }; F1F083F6241FFE930056D3B1 /* AtomicAuthenticationServiceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1F083F5241FFE930056D3B1 /* AtomicAuthenticationServiceTests.swift */; }; @@ -4761,7 +4761,7 @@ 131D0EE49695795ECEDAA446 /* Pods-WordPressTest.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTest.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTest/Pods-WordPressTest.release-alpha.xcconfig"; sourceTree = ""; }; 150B6590614A28DF9AD25491 /* Pods-Apps-Jetpack.release-alpha.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.release-alpha.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.release-alpha.xcconfig"; sourceTree = ""; }; 152F25D5C232985E30F56CAC /* Pods-Apps-Jetpack.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Apps-Jetpack.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-Apps-Jetpack/Pods-Apps-Jetpack.debug.xcconfig"; sourceTree = ""; }; - 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedAboutViewController.swift; sourceTree = ""; }; + 17017EF12730508B0023A674 /* AutomatticAboutScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomatticAboutScreen.swift; sourceTree = ""; }; 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutomatticAppLogosCell.swift; sourceTree = ""; }; 1702BBDB1CEDEA6B00766A33 /* BadgeLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BadgeLabel.swift; sourceTree = ""; }; 1702BBDF1CF3034E00766A33 /* DomainsService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DomainsService.swift; sourceTree = ""; }; @@ -7401,7 +7401,7 @@ F15272FE243B28B600C8DC7A /* RequestAuthenticator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequestAuthenticator.swift; sourceTree = ""; }; F1527300243B290D00C8DC7A /* AbstractPost+Autosave.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "AbstractPost+Autosave.swift"; sourceTree = ""; }; F15D1FB9265C41A900854EE5 /* BloggingRemindersStoreTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloggingRemindersStoreTests.swift; sourceTree = ""; }; - F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnifiedAboutHeaderView.swift; sourceTree = ""; }; + F15EEF802731FF9000B73E38 /* AboutHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutHeaderView.swift; sourceTree = ""; }; F163541526DE2ECE008B625B /* NotificationEventTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationEventTracker.swift; sourceTree = ""; }; F1655B4722A6C2FA00227BFB /* Routes+Mbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Routes+Mbar.swift"; sourceTree = ""; }; F16601C323E9E783007950AE /* SharingAuthorizationWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SharingAuthorizationWebViewController.swift; sourceTree = ""; }; @@ -9067,10 +9067,10 @@ children = ( FFC6ADD21B56F295002F3C84 /* AboutViewController.swift */, FFC6ADD31B56F295002F3C84 /* AboutViewController.xib */, - 17017EF12730508B0023A674 /* UnifiedAboutViewController.swift */, + 17017EF12730508B0023A674 /* AutomatticAboutScreen.swift */, F1A75B9A2732EF3700784A70 /* AboutScreenTracker.swift */, 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */, - F15EEF802731FF9000B73E38 /* UnifiedAboutHeaderView.swift */, + F15EEF802731FF9000B73E38 /* AboutHeaderView.swift */, 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */, 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */, ); @@ -17304,7 +17304,7 @@ 9826AE9021B5D3CD00C851FA /* PostingActivityCell.swift in Sources */, 934098C02719577D00B3E77E /* InsightType.swift in Sources */, 98077B5A2075561800109F95 /* SupportTableViewController.swift in Sources */, - 17017EF22730508B0023A674 /* UnifiedAboutViewController.swift in Sources */, + 17017EF22730508B0023A674 /* AutomatticAboutScreen.swift in Sources */, 987535632282682D001661B4 /* DetailDataCell.swift in Sources */, E17E67031FA22C93009BDC9A /* PluginViewModel.swift in Sources */, B5E167F419C08D18009535AA /* NSCalendar+Helpers.swift in Sources */, @@ -17768,7 +17768,7 @@ E114D79A153D85A800984182 /* WPError.m in Sources */, 7E53AB0220FE5EAE005796FE /* ContentRouter.swift in Sources */, E16273E11B2ACEB600088AF7 /* BlogToBlog32to33.swift in Sources */, - F15EEF812731FF9000B73E38 /* UnifiedAboutHeaderView.swift in Sources */, + F15EEF812731FF9000B73E38 /* AboutHeaderView.swift in Sources */, E678FC151C76241000F55F55 /* WPStyleGuide+ApplicationStyles.swift in Sources */, 7EFF208620EAD918009C4699 /* FormattableUserContent.swift in Sources */, F1D8C6EB26BABE3E002E3323 /* WeeklyRoundupDebugScreen.swift in Sources */, @@ -19270,7 +19270,7 @@ FABB20E42602FC2C00C8785C /* ThemeBrowserHeaderView.swift in Sources */, FABB20E52602FC2C00C8785C /* SiteStatsInformation.swift in Sources */, FABB20E62602FC2C00C8785C /* TitleSubtitleHeader.swift in Sources */, - 17017EF32730508B0023A674 /* UnifiedAboutViewController.swift in Sources */, + 17017EF32730508B0023A674 /* AutomatticAboutScreen.swift in Sources */, FABB20E82602FC2C00C8785C /* AppAppearance.swift in Sources */, FABB20E92602FC2C00C8785C /* ReaderTabViewController.swift in Sources */, FABB20EA2602FC2C00C8785C /* ActivityTypeSelectorViewController.swift in Sources */, @@ -20139,7 +20139,7 @@ FABB23F82602FC2C00C8785C /* ImmuTableViewController.swift in Sources */, FABB23F92602FC2C00C8785C /* NullStockPhotosService.swift in Sources */, FABB23FA2602FC2C00C8785C /* RevisionPreviewViewController.swift in Sources */, - F1E4FAB62732C41000781EA6 /* UnifiedAboutHeaderView.swift in Sources */, + F1E4FAB62732C41000781EA6 /* AboutHeaderView.swift in Sources */, FABB23FB2602FC2C00C8785C /* WPTabBarController+MeNavigation.swift in Sources */, FABB23FC2602FC2C00C8785C /* SitePromptView.swift in Sources */, FABB23FD2602FC2C00C8785C /* BaseRestoreCompleteViewController.swift in Sources */, From 76d497feedce5bba11176d2e2e23f7cc7bab5d4b Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 14:53:09 +0000 Subject: [PATCH 320/371] Rename new About view controller and header --- .../About/AboutScreenConfiguration.swift | 4 ++-- .../About/AutomatticAboutScreen.swift | 20 +++++++++---------- .../Me/Me Main/MeViewController.swift | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift index 7426a7f95aa8..37c27d21b31e 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutScreenConfiguration.swift @@ -3,7 +3,7 @@ import UIKit typealias AboutScreenSection = [AboutItem] -/// Users of UnifiedAboutViewController must provide a configuration conforming to this protocol. +/// Users of AutomatticAboutScreen must provide a configuration conforming to this protocol. protocol AboutScreenConfiguration { /// A list of AboutItems, grouped into sections, which will be displayed in the about screen's table view. var sections: [AboutScreenSection] { get } @@ -36,7 +36,7 @@ struct AboutItemActionContext { } func showSubmenu(title: String = "", configuration: AboutScreenConfiguration) { - let submenu = UnifiedAboutViewController(configuration: configuration, isSubmenu: true) + let submenu = AutomatticAboutScreen(configuration: configuration, isSubmenu: true) submenu.title = title viewController.navigationController?.pushViewController(submenu, animated: true) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift index 4887b8df6874..cab7a94ce5f8 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift @@ -1,13 +1,13 @@ import UIKit // Required to prevent rotation in the About screen -private class UnifiedAboutNavigationController: UINavigationController, OrientationLimited { +private class AutomatticAboutScreenNavigationController: UINavigationController, OrientationLimited { override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .portrait } } -class UnifiedAboutViewController: UIViewController { +class AutomatticAboutScreen: UIViewController { private let appInfo: AboutScreenAppInfo? private let fonts: AboutScreenFonts? @@ -56,7 +56,7 @@ class UnifiedAboutViewController: UIViewController { let headerFonts = fonts ?? AboutScreenFonts.defaultFonts - let headerView = UnifiedAboutHeaderView(appInfo: appInfo, fonts: headerFonts, dismissAction: { [weak self] in + let headerView = AboutHeaderView(appInfo: appInfo, fonts: headerFonts, dismissAction: { [weak self] in self?.dismissAboutScreen() }) @@ -102,11 +102,11 @@ class UnifiedAboutViewController: UIViewController { /// This is the preferred way to create an About screen to present, as a navigation controller is required. static func controller(appInfo: AboutScreenAppInfo? = nil, configuration: AboutScreenConfiguration, fonts: AboutScreenFonts? = nil, isSubmenu: Bool = false) -> UIViewController { - let viewController = UnifiedAboutViewController(appInfo: appInfo, - configuration: configuration, - fonts: fonts, - isSubmenu: isSubmenu) - let navigationController = UnifiedAboutNavigationController(rootViewController: viewController) + let viewController = AutomatticAboutScreen(appInfo: appInfo, + configuration: configuration, + fonts: fonts, + isSubmenu: isSubmenu) + let navigationController = AutomatticAboutScreenNavigationController(rootViewController: viewController) navigationController.modalPresentationStyle = .formSheet return navigationController } @@ -197,7 +197,7 @@ class UnifiedAboutViewController: UIViewController { // MARK: - Table view data source -extension UnifiedAboutViewController: UITableViewDataSource { +extension AutomatticAboutScreen: UITableViewDataSource { func numberOfSections(in tableView: UITableView) -> Int { return sections.count } @@ -238,7 +238,7 @@ extension UnifiedAboutViewController: UITableViewDataSource { // MARK: - Table view delegate -extension UnifiedAboutViewController: UITableViewDelegate { +extension AutomatticAboutScreen: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let section = sections[indexPath.section] let item = section[indexPath.row] diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index c88b2a69540d..ab1a4aa6e92d 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -254,9 +254,9 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = UnifiedAboutViewController.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, - configuration: configuration, - fonts: WordPressAboutScreenConfiguration.fonts) + let controller = AutomatticAboutScreen.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, + configuration: configuration, + fonts: WordPressAboutScreenConfiguration.fonts) self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) } From ba55ae60cb07e21fef38781cd1a23e55c2742c40 Mon Sep 17 00:00:00 2001 From: James Frost Date: Fri, 26 Nov 2021 15:46:30 +0000 Subject: [PATCH 321/371] Rename About Screen configuration --- ...ation.swift => AppAboutScreenConfiguration.swift} | 2 +- .../ViewRelated/Me/Me Main/MeViewController.swift | 6 +++--- WordPress/WordPress.xcodeproj/project.pbxproj | 12 ++++++------ 3 files changed, 10 insertions(+), 10 deletions(-) rename WordPress/Classes/ViewRelated/Me/App Settings/About/{WordPressAboutScreenConfiguration.swift => AppAboutScreenConfiguration.swift} (99%) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AppAboutScreenConfiguration.swift similarity index 99% rename from WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift rename to WordPress/Classes/ViewRelated/Me/App Settings/About/AppAboutScreenConfiguration.swift index 58802bfbc11e..7a22661502dd 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/WordPressAboutScreenConfiguration.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AppAboutScreenConfiguration.swift @@ -11,7 +11,7 @@ struct WebViewPresenter { } } -class WordPressAboutScreenConfiguration: AboutScreenConfiguration { +class AppAboutScreenConfiguration: AboutScreenConfiguration { static let appInfo = AboutScreenAppInfo(name: (Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String) ?? "", version: Bundle.main.detailedVersionNumber() ?? "", icon: UIImage(named: AppIcon.currentOrDefault.imageName) ?? UIImage()) diff --git a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift index ab1a4aa6e92d..24aaaecf6c04 100644 --- a/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift +++ b/WordPress/Classes/ViewRelated/Me/Me Main/MeViewController.swift @@ -253,10 +253,10 @@ class MeViewController: UITableViewController { private func pushAbout() -> ImmuTableAction { return { [unowned self] _ in - let configuration = WordPressAboutScreenConfiguration(sharePresenter: self.sharePresenter) - let controller = AutomatticAboutScreen.controller(appInfo: WordPressAboutScreenConfiguration.appInfo, + let configuration = AppAboutScreenConfiguration(sharePresenter: self.sharePresenter) + let controller = AutomatticAboutScreen.controller(appInfo: AppAboutScreenConfiguration.appInfo, configuration: configuration, - fonts: WordPressAboutScreenConfiguration.fonts) + fonts: AppAboutScreenConfiguration.fonts) self.present(controller, animated: true) { self.tableView.deselectSelectedRowWithAnimation(true) } diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index 95c760aec245..ecb1b4de4784 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -223,8 +223,8 @@ 173DF289274294DB007C64B5 /* OrientationLimited.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF287274294DB007C64B5 /* OrientationLimited.swift */; }; 173DF28E274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */; }; 173DF28F274513E1007C64B5 /* AboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */; }; - 173DF291274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */; }; - 173DF292274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */; }; + 173DF291274522A1007C64B5 /* AppAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* AppAboutScreenConfiguration.swift */; }; + 173DF292274522A1007C64B5 /* AppAboutScreenConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 173DF290274522A1007C64B5 /* AppAboutScreenConfiguration.swift */; }; 1746D7771D2165AE00B11D77 /* ForcePopoverPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */; }; 1749965F2271BF08007021BD /* WordPressAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */; }; 174C116F2624603400346EC6 /* MBarRouteTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 174C116E2624603400346EC6 /* MBarRouteTests.swift */; }; @@ -4833,7 +4833,7 @@ 173D82E6238EE2A7008432DA /* FeatureFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureFlagTests.swift; sourceTree = ""; }; 173DF287274294DB007C64B5 /* OrientationLimited.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OrientationLimited.swift; sourceTree = ""; }; 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutScreenConfiguration.swift; sourceTree = ""; }; - 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressAboutScreenConfiguration.swift; sourceTree = ""; }; + 173DF290274522A1007C64B5 /* AppAboutScreenConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppAboutScreenConfiguration.swift; sourceTree = ""; }; 1746D7761D2165AE00B11D77 /* ForcePopoverPresenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ForcePopoverPresenter.swift; sourceTree = ""; }; 1749965E2271BF08007021BD /* WordPressAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordPressAppDelegate.swift; sourceTree = ""; }; 174C116E2624603400346EC6 /* MBarRouteTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MBarRouteTests.swift; sourceTree = ""; }; @@ -9072,7 +9072,7 @@ 17017EF42731983B0023A674 /* AutomatticAppLogosCell.swift */, F15EEF802731FF9000B73E38 /* AboutHeaderView.swift */, 173DF28D274513E1007C64B5 /* AboutScreenConfiguration.swift */, - 173DF290274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift */, + 173DF290274522A1007C64B5 /* AppAboutScreenConfiguration.swift */, ); path = About; sourceTree = ""; @@ -17833,7 +17833,7 @@ E15644EB1CE0E4C500D96E64 /* FeatureItemRow.swift in Sources */, F5A738BF244DF7E400EDE065 /* ReaderTagsTableViewController+Cells.swift in Sources */, 8B0732E9242BA1F000E7FBD3 /* PrepublishingHeaderView.swift in Sources */, - 173DF291274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */, + 173DF291274522A1007C64B5 /* AppAboutScreenConfiguration.swift in Sources */, 3F3CA65025D3003C00642A89 /* StatsWidgetsStore.swift in Sources */, 0857C2791CE5375F0014AE99 /* MenuItemsVisualOrderingView.m in Sources */, C700F9EE257FD64E0090938E /* JetpackScanViewController.swift in Sources */, @@ -20612,7 +20612,7 @@ FABB25A52602FC2C00C8785C /* BlogToJetpackAccount.m in Sources */, FABB25A62602FC2C00C8785C /* NotificationSettingsViewController.swift in Sources */, FABB25A72602FC2C00C8785C /* ChangeUsernameViewController.swift in Sources */, - 173DF292274522A1007C64B5 /* WordPressAboutScreenConfiguration.swift in Sources */, + 173DF292274522A1007C64B5 /* AppAboutScreenConfiguration.swift in Sources */, FABB25A82602FC2C00C8785C /* RichTextView.swift in Sources */, FABB25A92602FC2C00C8785C /* ScenePresenter.swift in Sources */, FABB25AA2602FC2C00C8785C /* AccountSettingsStore.swift in Sources */, From c9a17abff9f398e716f6be80b341d7859df0cdb9 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 26 Nov 2021 15:07:19 +0000 Subject: [PATCH 322/371] Revert Epilogue no sites layout variation w skip button --- .../ViewRelated/NUX/LoginEpilogue.storyboard | 105 ++++++------------ ...LoginEpilogueChooseSiteTableViewCell.swift | 15 +-- .../LoginEpilogueTableViewController.swift | 38 ++----- .../NUX/LoginEpilogueViewController.swift | 75 +++---------- .../NUX/WordPressAuthenticationManager.swift | 5 - 5 files changed, 66 insertions(+), 172 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard index e7e525e39d5f..93c3f7cbf5bd 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogue.storyboard @@ -1,9 +1,9 @@ - + - + @@ -17,18 +17,18 @@ - + - + - + - + @@ -40,95 +40,62 @@ - - - - - - - - + - + + - - + - + + + - - - - - - - - - - + + @@ -144,7 +111,7 @@ - + diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift index f8684282e230..8849559f7e7a 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueChooseSiteTableViewCell.swift @@ -14,19 +14,6 @@ final class LoginEpilogueChooseSiteTableViewCell: UITableViewCell { required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } - - func configure(hasSites: Bool) { - let title = hasSites - ? NSLocalizedString("Choose a site to open.", comment: "A text for title label on Login epilogue screen") - : NSLocalizedString("You don't have any sites yet.", comment: "A text for title label on Login epilogue screen when the user doesn't have any site yet") - - let subtitle = hasSites - ? NSLocalizedString("You can switch sites at any time.", comment: "A text for subtitle label on Login epilogue screen") - : nil - - titleLabel.text = title - subtitleLabel.text = subtitle - } } // MARK: - Private Methods @@ -40,10 +27,12 @@ private extension LoginEpilogueChooseSiteTableViewCell { } func setupTitleLabel() { + titleLabel.text = NSLocalizedString("Choose a site to open.", comment: "A text for title label on Login epilogue screen") titleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline, fontWeight: .medium) } func setupSubtitleLabel() { + subtitleLabel.text = NSLocalizedString("You can switch sites at any time.", comment: "A text for subtitle label on Login epilogue screen") subtitleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline, fontWeight: .regular) subtitleLabel.textColor = .secondaryLabel } diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift index d52acfcbb82c..57d00e18db52 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueTableViewController.swift @@ -98,41 +98,28 @@ extension LoginEpilogueTableViewController { return 2 } - let siteCount = numberOfSites() + let correctedSection = section - 1 + let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: correctedSection) // Add one for Create new site cell guard let parent = parent as? LoginEpilogueViewController else { - return siteCount + return siteRows } - switch siteCount { - - case 0: - if !showCreateNewSite { - parent.hideCreateANewSiteButton() - } - parent.configureButtonPanel(showBackground: false) - parent.showSkipButton() - return siteCount - - case 1...Constants.createNewSiteRowThreshold: + if siteRows <= Constants.createNewSiteRowThreshold { parent.hideButtonPanel() - return showCreateNewSite ? siteCount + 1 : siteCount - - default: + return showCreateNewSite ? siteRows + 1 : siteRows + } else { if !showCreateNewSite { parent.hideButtonPanel() } - return siteCount + return siteRows } } override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let siteCount = numberOfSites() - let hasSites = siteCount > 0 - // User Info Row if indexPath.section == Sections.userInfoSection { if indexPath.row == 0 { @@ -152,16 +139,17 @@ extension LoginEpilogueTableViewController { guard let cell = tableView.dequeueReusableCell(withIdentifier: Settings.chooseSiteReuseIdentifier, for: indexPath) as? LoginEpilogueChooseSiteTableViewCell else { return UITableViewCell() } - cell.configure(hasSites: hasSites) removeSeparatorFor(cell) return cell } } // Create new site row + let siteRows = blogDataSource.tableView(tableView, numberOfRowsInSection: indexPath.section - 1) + let isCreateNewSiteRow = showCreateNewSite && - siteCount <= Constants.createNewSiteRowThreshold && + siteRows <= Constants.createNewSiteRowThreshold && indexPath.row == lastRowInSection(indexPath.section) if isCreateNewSiteRow { @@ -235,14 +223,8 @@ private extension LoginEpilogueTableViewController { cell.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: .greatestFiniteMagnitude) } - func numberOfSites() -> Int { - let adjustedBlogSection = Sections.blogSection - 1 - return blogDataSource.tableView(tableView, numberOfRowsInSection: adjustedBlogSection) - } - enum Sections { static let userInfoSection = 0 - static let blogSection = 1 } enum Settings { diff --git a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift index 4e8fbee90a90..4d674935580d 100644 --- a/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/LoginEpilogueViewController.swift @@ -19,18 +19,13 @@ class LoginEpilogueViewController: UIViewController { /// Create a new site button. /// - @IBOutlet weak var createANewSiteButton: FancyButton! - - /// Skip button. - /// - @IBOutlet weak var skipButton: FancyButton! + @IBOutlet var createANewSiteButton: UIButton! /// Constraints on the table view container. /// Used to adjust the width on iPad. @IBOutlet var tableViewLeadingConstraint: NSLayoutConstraint! @IBOutlet var tableViewTrailingConstraint: NSLayoutConstraint! - @IBOutlet weak var tableViewBottomConstraintToSafeArea: NSLayoutConstraint! - @IBOutlet weak var tableViewBottomConstraintToButtonPanel: NSLayoutConstraint! + @IBOutlet weak var tableViewBottomContraint: NSLayoutConstraint! private var defaultTableViewMargin: CGFloat = 0 @@ -58,10 +53,6 @@ class LoginEpilogueViewController: UIViewController { /// var onCreateNewSite: (() -> Void)? - /// Closure to be executed upon dismissal. - /// - var onDismiss: (() -> Void)? - /// Site that was just connected to our awesome app. /// var credentials: AuthenticatorCredentials? { @@ -89,7 +80,6 @@ class LoginEpilogueViewController: UIViewController { defaultTableViewMargin = tableViewLeadingConstraint.constant setTableViewMargins(forWidth: view.frame.width) refreshInterface(with: credentials) - configureButtonPanel() WordPressAuthenticator.track(.loginEpilogueViewed) // If the user just signed in, refresh the A/B assignments @@ -120,6 +110,11 @@ class LoginEpilogueViewController: UIViewController { return UIDevice.isPad() ? .all : .portrait } + override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + configureButtonPanel() + } + override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) { super.viewWillTransition(to: size, with: coordinator) setTableViewMargins(forWidth: size.width) @@ -130,36 +125,10 @@ class LoginEpilogueViewController: UIViewController { setTableViewMargins(forWidth: view.frame.width) } - /// Setup: Button Panel - /// - func configureButtonPanel(showBackground: Bool = true) { - if showBackground { - topLineHeightConstraint.constant = .hairlineBorderWidth - buttonPanel.backgroundColor = .quaternaryBackground - topLine.isHidden = false - blurEffectView.effect = UIBlurEffect(style: blurEffect) - blurEffectView.isHidden = false - setupDividerLineIfNeeded() - } else { - buttonPanel.backgroundColor = .basicBackground - topLine.isHidden = true - blurEffectView.isHidden = true - dividerView?.isHidden = true - } - } - func hideButtonPanel() { buttonPanel.isHidden = true - tableViewBottomConstraintToButtonPanel.isActive = false - tableViewBottomConstraintToSafeArea.isActive = true - } - - func hideCreateANewSiteButton() { createANewSiteButton.isHidden = true - } - - func showSkipButton() { - skipButton.isHidden = false + tableViewBottomContraint.constant = 0 } // MARK: - Actions @@ -183,26 +152,24 @@ private extension LoginEpilogueViewController { /// func refreshInterface(with credentials: AuthenticatorCredentials) { configureCreateANewSiteButton() - configureSkipButton() } - /// Setup: Create a new site button + /// Setup: Buttons /// func configureCreateANewSiteButton() { - createANewSiteButton.isPrimary = false - createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "Title for the button that will show a prompt to create a new site."), for: .normal) + createANewSiteButton.setTitle(NSLocalizedString("Create a new site", comment: "A button title"), for: .normal) createANewSiteButton.accessibilityIdentifier = "Create a new site" } - /// Setup: Skip button + /// Setup: Button Panel /// - func configureSkipButton() { - skipButton.isPrimary = true - skipButton.setTitle(NSLocalizedString("Skip", comment: "Title for the button that will skip creating a site and display the logged in view"), for: .normal) - skipButton.accessibilityIdentifier = "Skip" - - // Skip button should be hidden by default - skipButton.isHidden = true + func configureButtonPanel() { + topLineHeightConstraint.constant = .hairlineBorderWidth + buttonPanel.backgroundColor = .quaternaryBackground + topLine.isHidden = false + blurEffectView.effect = UIBlurEffect(style: blurEffect) + blurEffectView.isHidden = false + setupDividerLineIfNeeded() } func setTableViewMargins(forWidth viewWidth: CGFloat) { @@ -251,10 +218,4 @@ private extension LoginEpilogueViewController { @IBAction func createANewSite() { createNewSite() } - - @IBAction func dismissEpilogue() { - tracker.track(click: .continue) - onDismiss?() - navigationController?.dismiss(animated: true) - } } diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index ab9a922e4dc3..09a5f016ea99 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -391,11 +391,6 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { navigationController.present(wizard, animated: true) } - epilogueViewController.onDismiss = { [weak self] in - onDismiss() - self?.windowManager.dismissFullscreenSignIn() - } - navigationController.pushViewController(epilogueViewController, animated: true) } From 0967e3c54784411fddcf17c36e950d2f2e0892d3 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 26 Nov 2021 15:47:09 +0000 Subject: [PATCH 323/371] Refactor: always display the PSI if there's 0 blogs --- .../PostSignUpInterstitialViewController.swift | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialViewController.swift b/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialViewController.swift index 521e214e202c..f33135f7ed49 100644 --- a/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialViewController.swift +++ b/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialViewController.swift @@ -68,9 +68,6 @@ class PostSignUpInterstitialViewController: UIViewController { configureI18N() - let coordinator = PostSignUpInterstitialCoordinator() - coordinator.markAsSeen() - WPAnalytics.track(.welcomeNoSitesInterstitialShown) } @@ -125,10 +122,7 @@ class PostSignUpInterstitialViewController: UIViewController { return false } - let numberOfBlogs = self.numberOfBlogs() - - let coordinator = PostSignUpInterstitialCoordinator() - return coordinator.shouldDisplay(numberOfBlogs: numberOfBlogs) + return self.numberOfBlogs() == 0 } private class func numberOfBlogs() -> Int { From c96b595b656e347367a8ed47ab8c9ba79042722b Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Fri, 26 Nov 2021 15:21:35 +0000 Subject: [PATCH 324/371] Delete: PostSignUpInterstitialCoordinator --- .../PostSignUpInterstitialCoordinator.swift | 63 ------------------- WordPress/WordPress.xcodeproj/project.pbxproj | 26 -------- ...stSignUpInterstitialCoordinatorTests.swift | 54 ---------------- 3 files changed, 143 deletions(-) delete mode 100644 WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinator.swift delete mode 100644 WordPress/WordPressTest/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinatorTests.swift diff --git a/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinator.swift b/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinator.swift deleted file mode 100644 index f44063157eaa..000000000000 --- a/WordPress/Classes/ViewRelated/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinator.swift +++ /dev/null @@ -1,63 +0,0 @@ -import Foundation - -private struct Constants { - static let userDefaultsKeyFormat = "PostSignUpInterstitial.hasSeenBefore.%@" -} - -class PostSignUpInterstitialCoordinator { - private let database: KeyValueDatabase - private let userId: NSNumber? - - init(database: KeyValueDatabase = UserDefaults.standard, userId: NSNumber? = nil ) { - self.database = database - - self.userId = userId ?? { - let context = ContextManager.sharedInstance().mainContext - let acctServ = AccountService(managedObjectContext: context) - let account = acctServ.defaultWordPressComAccount() - - return account?.userID - }() - } - - /// Generates the user defaults key for the logged in user - /// Returns nil if we can not get the default WP.com account - private var userDefaultsKey: String? { - get { - guard let userId = self.userId else { - return nil - } - - return String(format: Constants.userDefaultsKeyFormat, userId) - } - } - - /// Determines whether or not the PSI should be displayed for the logged in user - /// - Parameters: - /// - numberOfBlogs: The number of blogs the account has - @objc func shouldDisplay(numberOfBlogs: Int) -> Bool { - if hasSeenBefore() { - return false - } - - return numberOfBlogs == 0 - } - - /// Determines whether the PSI has been displayed to the logged in user - func hasSeenBefore() -> Bool { - guard let key = userDefaultsKey else { - return false - } - - return database.bool(forKey: key) - } - - /// Marks the PSI as seen for the logged in user - func markAsSeen() { - guard let key = userDefaultsKey else { - return - } - - database.set(true, forKey: key) - } -} diff --git a/WordPress/WordPress.xcodeproj/project.pbxproj b/WordPress/WordPress.xcodeproj/project.pbxproj index f17d5b71a823..64a4cc45df3d 100644 --- a/WordPress/WordPress.xcodeproj/project.pbxproj +++ b/WordPress/WordPress.xcodeproj/project.pbxproj @@ -456,8 +456,6 @@ 329F8E5624DDAC61002A5311 /* DynamicHeightCollectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 329F8E5524DDAC61002A5311 /* DynamicHeightCollectionView.swift */; }; 329F8E5824DDBD11002A5311 /* ReaderTopicCollectionViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 329F8E5724DDBD11002A5311 /* ReaderTopicCollectionViewCoordinator.swift */; }; 32A218D8251109DB00D1AE6C /* ReaderReportPostAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32A218D7251109DB00D1AE6C /* ReaderReportPostAction.swift */; }; - 32C765BA23F715E4000A7F11 /* PostSignUpInterstitialCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F1A6CE23F7083500AB8CA9 /* PostSignUpInterstitialCoordinator.swift */; }; - 32C765BB23F7170C000A7F11 /* PostSignUpInterstitialCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F1A6D323F7111800AB8CA9 /* PostSignUpInterstitialCoordinatorTests.swift */; }; 32CA6EC02390C61F00B51347 /* PostListEditorPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32CA6EBF2390C61F00B51347 /* PostListEditorPresenter.swift */; }; 32E1BFDA24A66F2A007A08F0 /* ReaderInterestsCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E1BFD924A66F2A007A08F0 /* ReaderInterestsCollectionViewFlowLayout.swift */; }; 32E1BFFD24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32E1BFFB24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift */; }; @@ -3716,7 +3714,6 @@ FABB23E42602FC2C00C8785C /* ReaderPostService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3D559618F88C3500782892 /* ReaderPostService.m */; }; FABB23E52602FC2C00C8785C /* EditorMediaUtility.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EA30DB321ADA20F0092F894 /* EditorMediaUtility.swift */; }; FABB23E62602FC2C00C8785C /* ShareMediaFileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7430C4481F97F23600E2673E /* ShareMediaFileManager.swift */; }; - FABB23E72602FC2C00C8785C /* PostSignUpInterstitialCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32F1A6CE23F7083500AB8CA9 /* PostSignUpInterstitialCoordinator.swift */; }; FABB23E82602FC2C00C8785C /* ReaderCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17A4A36B20EE55320071C2CA /* ReaderCoordinator.swift */; }; FABB23E92602FC2C00C8785C /* RestoreCompleteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAB800B125AEE3C600D5D54A /* RestoreCompleteView.swift */; }; FABB23EA2602FC2C00C8785C /* NoteBlockImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B532D4ED199D4418006E4DF6 /* NoteBlockImageTableViewCell.swift */; }; @@ -5110,8 +5107,6 @@ 32E1BFD924A66F2A007A08F0 /* ReaderInterestsCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ReaderInterestsCollectionViewFlowLayout.swift; sourceTree = ""; }; 32E1BFFB24AB9D28007A08F0 /* ReaderSelectInterestsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReaderSelectInterestsViewController.swift; sourceTree = ""; }; 32E1BFFC24AB9D28007A08F0 /* ReaderSelectInterestsViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ReaderSelectInterestsViewController.xib; sourceTree = ""; }; - 32F1A6CE23F7083500AB8CA9 /* PostSignUpInterstitialCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostSignUpInterstitialCoordinator.swift; sourceTree = ""; }; - 32F1A6D323F7111800AB8CA9 /* PostSignUpInterstitialCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostSignUpInterstitialCoordinatorTests.swift; sourceTree = ""; }; 32F2565F25012D3F006B8BC4 /* LinearGradientView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinearGradientView.swift; sourceTree = ""; }; 33D5016BDA00B45DFCAF3818 /* Pods-WordPressNotificationServiceExtension.release-internal.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressNotificationServiceExtension/Pods-WordPressNotificationServiceExtension.release-internal.xcconfig"; sourceTree = ""; }; 368127CE6F1CA15EC198147D /* Pods-WordPressTodayWidget.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WordPressTodayWidget.debug.xcconfig"; path = "../Pods/Target Support Files/Pods-WordPressTodayWidget/Pods-WordPressTodayWidget.debug.xcconfig"; sourceTree = ""; }; @@ -8909,7 +8904,6 @@ 3249615523F2013B004C7733 /* Post Signup Interstitial */ = { isa = PBXGroup; children = ( - 32F1A6CE23F7083500AB8CA9 /* PostSignUpInterstitialCoordinator.swift */, 3249615023F20111004C7733 /* PostSignUpInterstitialViewController.swift */, 3249615123F20111004C7733 /* PostSignUpInterstitialViewController.xib */, ); @@ -8965,22 +8959,6 @@ path = "Select Interests"; sourceTree = ""; }; - 32F1A6D123F710A300AB8CA9 /* NUX */ = { - isa = PBXGroup; - children = ( - 32F1A6D223F710A900AB8CA9 /* Post Signup Interstitial */, - ); - path = NUX; - sourceTree = ""; - }; - 32F1A6D223F710A900AB8CA9 /* Post Signup Interstitial */ = { - isa = PBXGroup; - children = ( - 32F1A6D323F7111800AB8CA9 /* PostSignUpInterstitialCoordinatorTests.swift */, - ); - path = "Post Signup Interstitial"; - sourceTree = ""; - }; 3792259E12F6DBCC00F2176A /* Stats */ = { isa = PBXGroup; children = ( @@ -13075,7 +13053,6 @@ isa = PBXGroup; children = ( 8B69F0E2255C2BC0006B1CEF /* Activity */, - 32F1A6D123F710A300AB8CA9 /* NUX */, 8BD36E042395CC2F00EFFF1C /* Aztec */, 325D3B3A23A8372500766DF6 /* Comments */, BEC8A3FD1B4BAA08001CB8C3 /* Blog */, @@ -17873,7 +17850,6 @@ 5D3D559718F88C3500782892 /* ReaderPostService.m in Sources */, 7EA30DB521ADA20F0092F894 /* EditorMediaUtility.swift in Sources */, 7492F78E1F9BD94500B5A04A /* ShareMediaFileManager.swift in Sources */, - 32C765BA23F715E4000A7F11 /* PostSignUpInterstitialCoordinator.swift in Sources */, 17A4A36C20EE55320071C2CA /* ReaderCoordinator.swift in Sources */, FAB800B225AEE3C600D5D54A /* RestoreCompleteView.swift in Sources */, B532D4EE199D4418006E4DF6 /* NoteBlockImageTableViewCell.swift in Sources */, @@ -19171,7 +19147,6 @@ 933D1F471EA64108009FB462 /* TestingAppDelegate.m in Sources */, 5789E5C822D7D40800333698 /* AztecPostViewControllerAttachmentTests.swift in Sources */, 400199AB222590E100EB0906 /* AllTimeStatsRecordValueTests.swift in Sources */, - 32C765BB23F7170C000A7F11 /* PostSignUpInterstitialCoordinatorTests.swift in Sources */, C8567498243F41CA001A995E /* MockTenorService.swift in Sources */, 4054F4642214F94D00D261AB /* StreakStatsRecordValueTests.swift in Sources */, 85B125411B028E34008A3D95 /* PushAuthenticationManagerTests.swift in Sources */, @@ -20118,7 +20093,6 @@ FABB23E42602FC2C00C8785C /* ReaderPostService.m in Sources */, FABB23E52602FC2C00C8785C /* EditorMediaUtility.swift in Sources */, FABB23E62602FC2C00C8785C /* ShareMediaFileManager.swift in Sources */, - FABB23E72602FC2C00C8785C /* PostSignUpInterstitialCoordinator.swift in Sources */, FABB23E82602FC2C00C8785C /* ReaderCoordinator.swift in Sources */, FABB23E92602FC2C00C8785C /* RestoreCompleteView.swift in Sources */, FABB23EA2602FC2C00C8785C /* NoteBlockImageTableViewCell.swift in Sources */, diff --git a/WordPress/WordPressTest/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinatorTests.swift b/WordPress/WordPressTest/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinatorTests.swift deleted file mode 100644 index 7d3c2fbf9634..000000000000 --- a/WordPress/WordPressTest/NUX/Post Signup Interstitial/PostSignUpInterstitialCoordinatorTests.swift +++ /dev/null @@ -1,54 +0,0 @@ -import XCTest - -@testable import WordPress - -class PostSignUpInterstitialCoordinatorTests: XCTestCase { - let testUserId = 12345 as NSNumber - let userDefaultsKeyFormat = "PostSignUpInterstitial.hasSeenBefore.%@" - - func testShouldNotDisplay() { - let database = EphemeralKeyValueDatabase() - let coordinator = PostSignUpInterstitialCoordinator(database: database, userId: testUserId) - - XCTAssertFalse(coordinator.shouldDisplay(numberOfBlogs: 10)) - } - - func testShouldDisplay() { - let database = EphemeralKeyValueDatabase() - let coordinator = PostSignUpInterstitialCoordinator(database: database, userId: testUserId) - - XCTAssertTrue(coordinator.shouldDisplay(numberOfBlogs: 0)) - } - - func testHasSeenBeforeTrue() { - let database = EphemeralKeyValueDatabase() - let userId = testUserId - let key = String(format: userDefaultsKeyFormat, userId) - database.set(true, forKey: key) - - let coordinator = PostSignUpInterstitialCoordinator(database: database, userId: userId) - - XCTAssertTrue(coordinator.hasSeenBefore()) - } - - func testHasSeenBeforeFalse() { - let database = EphemeralKeyValueDatabase() - let userId = testUserId - let coordinator = PostSignUpInterstitialCoordinator(database: database, userId: userId) - - XCTAssertFalse(coordinator.hasSeenBefore()) - } - - func testMarkAsSeen() { - let database = EphemeralKeyValueDatabase() - let userId = testUserId - - let coordinator = PostSignUpInterstitialCoordinator(database: database, userId: userId) - coordinator.markAsSeen() - - let key = String(format: userDefaultsKeyFormat, userId) - let value = database.bool(forKey: key) - - XCTAssertTrue(value) - } -} From c9fdc73f5ed084fe18f67250c944ec1545730d31 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 09:46:53 +1100 Subject: [PATCH 325/371] Bump version number --- config/Version.internal.xcconfig | 4 ++-- config/Version.public.xcconfig | 4 ++-- fastlane/download_metadata.swift | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/config/Version.internal.xcconfig b/config/Version.internal.xcconfig index d71013b4fd68..41b142ac01b7 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -1,4 +1,4 @@ -VERSION_SHORT=18.7 +VERSION_SHORT=18.8 // Internal long version example: VERSION_LONG=9.9.0.20180423 // @@ -6,4 +6,4 @@ VERSION_SHORT=18.7 // build for the day so I bumped it to 10/02. On 10/04 we'll code freeze 18.4 // and this should be the very last build for 18.3, so we should be fine. // – Gio -VERSION_LONG=18.7.0.20211126 +VERSION_LONG=18.8.0.20211129 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index cfd768b57069..56b928646988 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ -VERSION_SHORT=18.7 +VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.7.0.2 +VERSION_LONG=18.8.0.0 diff --git a/fastlane/download_metadata.swift b/fastlane/download_metadata.swift index e4391a14f684..289b30e9d5b3 100755 --- a/fastlane/download_metadata.swift +++ b/fastlane/download_metadata.swift @@ -3,7 +3,7 @@ import Foundation let glotPressSubtitleKey = "app_store_subtitle" -let glotPressWhatsNewKey = "v18.7-whats-new" +let glotPressWhatsNewKey = "v18.8-whats-new" let glotPressDescriptionKey = "app_store_desc" let glotPressKeywordsKey = "app_store_keywords" From 438ee422960e49c18c8906eae84e645265c349fe Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 09:46:57 +1100 Subject: [PATCH 326/371] Update draft release notes for 18.8. --- WordPress/Resources/release_notes.txt | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index f5c06a64d170..87b43737f178 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,13 +1,12 @@ -Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications. -We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option. -We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word. +* [*] Added a new About screen, with links to rate the app, share it with others, visit our Twitter profile, view our other apps, and more. [https://github.com/orgs/wordpress-mobile/projects/107] +* [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] +* [*] Onboarding Improvements: Need a little help after login? We're here for you. We've made a few changes to the login flow that will make it easier for you to start managing your site or create a new one. [#17564] +* [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] +* [***] Fixed crash that was sometimes triggered when deleting media. [#17559] +* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. [#17529] +* [**] Block editor: Add clipboard link suggestion to image block and button block. [https://github.com/WordPress/gutenberg/pull/35972] +* [*] Block editor: Embed block: Include link in block settings. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4189] +* [**] Block editor: Fix tab titles translation of inserter menu. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4248] +* [**] Block editor: Gallery block: When a gallery block is added, the media options are auto opened for v2 of the Gallery block. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4277] +* [*] Block editor: Media & Text block: Fix an issue where the text font size would be bigger than expected in some cases. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4252] -When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including: - -- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment. -- Rich content so you can see each comment just as the author wrote it. -- A share button for approved comments. -- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses. -- Tappable web address to visit the author's URL (instead of their avatar image). - -Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp! From e55ad8a7940f4af8382fa7958ac90cda7d0cbdbf Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 09:46:58 +1100 Subject: [PATCH 327/371] Release Notes: add new section for next version (18.9) --- RELEASE-NOTES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 43e23b4e2699..a9f3704e4cf4 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,3 +1,7 @@ +18.9 +----- + + 18.8 ----- * [*] Added a new About screen, with links to rate the app, share it with others, visit our Twitter profile, view our other apps, and more. [https://github.com/orgs/wordpress-mobile/projects/107] From ce978a32670de428f4805ab4103482840c0643d1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 13:37:09 +1100 Subject: [PATCH 328/371] Use production versions of internal pods for release 18.8 --- Podfile | 4 ++-- Podfile.lock | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Podfile b/Podfile index 1cec246e9c0e..a3f70f6943c0 100644 --- a/Podfile +++ b/Podfile @@ -20,7 +20,7 @@ workspace 'WordPress.xcworkspace' ## =================================== ## def wordpress_shared - pod 'WordPressShared', '~> 1.17.0-beta.1' + pod 'WordPressShared', '~> 1.17.0' #pod 'WordPressShared', :git => 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', :tag => '' #pod 'WordPressShared', :git => 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', :branch => '' #pod 'WordPressShared', :git => 'https://github.com/wordpress-mobile/WordPress-iOS-Shared.git', :commit => '' @@ -47,7 +47,7 @@ def wordpress_ui end def wordpress_kit - pod 'WordPressKit', '~> 4.44.0-beta' + pod 'WordPressKit', '~> 4.44.0' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :tag => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :branch => '' # pod 'WordPressKit', :git => 'https://github.com/wordpress-mobile/WordPressKit-iOS.git', :commit => '' diff --git a/Podfile.lock b/Podfile.lock index 608c3c85823d..8e4586f2be6b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -452,7 +452,7 @@ PODS: - WordPressKit (~> 4.18-beta) - WordPressShared (~> 1.12-beta) - WordPressUI (~> 1.7-beta) - - WordPressKit (4.44.0-beta.1): + - WordPressKit (4.44.0): - Alamofire (~> 4.8.0) - CocoaLumberjack (~> 3.4) - NSObject-SafeExpectations (= 0.0.4) @@ -460,7 +460,7 @@ PODS: - WordPressShared (~> 1.15-beta) - wpxmlrpc (~> 0.9) - WordPressMocks (0.0.15) - - WordPressShared (1.17.0-beta.1): + - WordPressShared (1.17.0): - CocoaLumberjack (~> 3.4) - FormatterKit/TimeIntervalFormatter (~> 1.8) - WordPressUI (1.12.2) @@ -553,9 +553,9 @@ DEPENDENCIES: - SVProgressHUD (= 2.2.5) - WordPress-Editor-iOS (~> 1.19.5) - WordPressAuthenticator (~> 1.42.1) - - WordPressKit (~> 4.44.0-beta) + - WordPressKit (~> 4.44.0) - WordPressMocks (~> 0.0.15) - - WordPressShared (~> 1.17.0-beta.1) + - WordPressShared (~> 1.17.0) - WordPressUI (~> 1.12.2) - WPMediaPicker (~> 1.7.2) - Yoga (from `https://raw.githubusercontent.com/wordpress-mobile/gutenberg-mobile/v1.67.0/third-party-podspecs/Yoga.podspec.json`) @@ -565,8 +565,6 @@ DEPENDENCIES: SPEC REPOS: https://github.com/wordpress-mobile/cocoapods-specs.git: - WordPressAuthenticator - - WordPressKit - - WordPressShared - WordPressUI trunk: - 1PasswordExtension @@ -607,7 +605,9 @@ SPEC REPOS: - UIDeviceIdentifier - WordPress-Aztec-iOS - WordPress-Editor-iOS + - WordPressKit - WordPressMocks + - WordPressShared - WPMediaPicker - wpxmlrpc - ZendeskCommonUISDK @@ -810,9 +810,9 @@ SPEC CHECKSUMS: WordPress-Aztec-iOS: af36d9cb86a0109b568f516874870e2801ba1bd9 WordPress-Editor-iOS: 446be349b94707c1a82a83d525b86dbcf18cf2c7 WordPressAuthenticator: 111793c08fa8e9d9a72aed5b33a094c91ff4fd82 - WordPressKit: 7fe46752fe65808f80163ae135bb5c3f081d108b + WordPressKit: 9ba5691ebe42f7bee2d0032386c7c8ee27c20c32 WordPressMocks: 6b52b0764d9939408151367dd9c6e8a910877f4d - WordPressShared: 3f365c6d5ae8fc1615f7f30aac7f9f78f1dd70fb + WordPressShared: a4b0308a6345d4dda20c8f7ad9317df4246b4a00 WordPressUI: c573f4b5c2e5d0ffcebe69ecf86ae75ab7b6ff4d WPMediaPicker: d5ae9a83cd5cc0e4de46bfc1c59120aa86658bc3 wpxmlrpc: bf55a43a7e710bd2a4fb8c02dfe83b1246f14f13 @@ -826,6 +826,6 @@ SPEC CHECKSUMS: ZendeskSupportSDK: 3a8e508ab1d9dd22dc038df6c694466414e037ba ZIPFoundation: e27423c004a5a1410c15933407747374e7c6cb6e -PODFILE CHECKSUM: 63d141eadcb0ceade9f10349e2f5534f0f3e950b +PODFILE CHECKSUM: 60352df76a9f4471bd7766984cd37ca07c5705ed COCOAPODS: 1.10.1 From 4251fe5a6a577edd94f1d5477aed0fbb83c48d07 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 14:02:28 +1100 Subject: [PATCH 329/371] Update strings for localization --- .../Resources/en.lproj/Localizable.strings | Bin 859894 -> 862726 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/Resources/en.lproj/Localizable.strings b/WordPress/Resources/en.lproj/Localizable.strings index 8b67516b9d8ed59b34ced8efacdc475d5b630e79..72fa4f6136b6c4ec84bd26e72f18f7a571d6e093 100644 GIT binary patch delta 3451 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 From a2014213187089679671ad13e1f147aee3369597 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Mon, 29 Nov 2021 15:15:14 +1100 Subject: [PATCH 330/371] Manually bump build n. to start a new deployment The `complete_code_freeze` lane failed on my end because of this error: ``` /Users/gio/Developer/a8c/wpios/vendor/bundle/ruby/2.7.0/gems/fastlane-2.195.0/fastlane_core/lib/fastlane_core/ui/interface.rb:153:in `shell_error!': \e[0;31;49m[!] Exit status of command 'git push origin release/18.8:release/18.8 --tags' was 1 instead of 0. (FastlaneCore::Interface::FastlaneShellError) remote: This repository moved. Please use the new location: remote: git@github.com:wordpress-mobile/WordPress-iOS.git To github.com:wordpress-mobile/wordpress-ios ce978a3267..4251fe5a6a release/18.8 -> release/18.8 ! [rejected] 16.6 -> 16.6 (already exists) error: failed to push some refs to 'github.com:wordpress-mobile/wordpress-ios' ``` I pushed manually, then run the remaining command in the lane: starting the CI release build. Unfortunately, I used my shell history completion and didn't realize I called the lane to trigger a production release, not a beta. I noticed that only when looking at the releases in GitHub and seeing `18.8` instead of the expected `18.8.0.0`. By then, a build had already been submitted to App Store Connect for WordPress, making it necessary to bump the number here. See: https://app.circleci.com/pipelines/github/wordpress-mobile/WordPress-iOS/26003/workflows/e1b2ebbd-5345-4e7e-8181-62669b7238b4 --- config/Version.public.xcconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index 56b928646988..ed27db44d379 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.8.0.0 +VERSION_LONG=18.8.0.1 From c7f10edcb63114fc44de589738d7570c58dc2eb5 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 29 Nov 2021 11:45:36 -0300 Subject: [PATCH 331/371] Refactor: increase the low site views threshold to 3000 --- .../ViewRelated/Stats/Insights/SiteStatsPinnedItemStore.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/Stats/Insights/SiteStatsPinnedItemStore.swift b/WordPress/Classes/ViewRelated/Stats/Insights/SiteStatsPinnedItemStore.swift index 93f104061d6f..20030db384dd 100644 --- a/WordPress/Classes/ViewRelated/Stats/Insights/SiteStatsPinnedItemStore.swift +++ b/WordPress/Classes/ViewRelated/Stats/Insights/SiteStatsPinnedItemStore.swift @@ -12,7 +12,7 @@ final class SiteStatsPinnedItemStore { InsightType.customize ] }() - private let lowSiteViewsCountThreshold = 30 + private let lowSiteViewsCountThreshold = 3000 private let siteId: NSNumber private(set) var currentItem: SiteStatsPinnable? From d4a57242f332ad828509029953bda1a32c827117 Mon Sep 17 00:00:00 2001 From: Stephenie Harris Date: Mon, 29 Nov 2021 16:48:10 -0700 Subject: [PATCH 332/371] Don't set background colors in xib, don't manually set textView background color. Just let contentView background color show through. --- .../ReplyTextView/ReplyTextView.swift | 1 - .../ReplyTextView/ReplyTextView.xib | 17 ++++------------- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift index 504d971fd6b1..9e490ea53004 100644 --- a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift +++ b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.swift @@ -271,7 +271,6 @@ import Gridicons textView.contentInset = .zero textView.textContainerInset = .zero textView.autocorrectionType = .yes - textView.backgroundColor = Style.backgroundColor textView.textColor = Style.textColor textView.textContainer.lineFragmentPadding = 0 textView.layoutManager.allowsNonContiguousLayout = false diff --git a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.xib b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.xib index 0787185f4880..50cfdbe8522b 100644 --- a/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.xib +++ b/WordPress/Classes/ViewRelated/Notifications/ReplyTextView/ReplyTextView.xib @@ -4,7 +4,6 @@ - @@ -56,7 +55,6 @@ - @@ -69,30 +67,27 @@ - - - - + + + - + - @@ -114,7 +109,6 @@ - @@ -142,8 +136,5 @@ - - - From 1cc066cf811bbfe28130bec261a37e3a377993c1 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 1 Dec 2021 12:38:55 +1100 Subject: [PATCH 333/371] Update translations --- .../Resources/ar.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/bg.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/cs.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/cy.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/da.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/de.lproj/Localizable.strings | 229 +++++++++++------ .../Resources/en-AU.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/en-CA.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/en-GB.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/es.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/fr.lproj/Localizable.strings | 220 ++++++++++------ .../Resources/he.lproj/Localizable.strings | 229 +++++++++++------ .../Resources/hr.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/hu.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/id.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/is.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/it.lproj/Localizable.strings | 233 +++++++++++------ .../Resources/ja.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/ko.lproj/Localizable.strings | 221 ++++++++++------ .../Resources/nb.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/nl.lproj/Localizable.strings | 231 +++++++++++------ .../Resources/pl.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/pt-BR.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/pt.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/ro.lproj/Localizable.strings | 241 ++++++++++++------ .../Resources/ru.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/sk.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/sq.lproj/Localizable.strings | 219 ++++++++++------ .../Resources/sv.lproj/Localizable.strings | 221 ++++++++++------ .../Resources/th.lproj/Localizable.strings | 218 ++++++++++------ .../Resources/tr.lproj/Localizable.strings | 223 ++++++++++------ .../zh-Hans.lproj/Localizable.strings | 221 ++++++++++------ .../zh-Hant.lproj/Localizable.strings | 219 ++++++++++------ .../ar.lproj/Localizable.strings | Bin 4619 -> 4619 bytes .../bg.lproj/Localizable.strings | Bin 3614 -> 3614 bytes .../cs.lproj/Localizable.strings | Bin 4887 -> 4887 bytes .../cy.lproj/Localizable.strings | Bin 3239 -> 3239 bytes .../da.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../de.lproj/Localizable.strings | Bin 5020 -> 5070 bytes .../en-AU.lproj/Localizable.strings | Bin 3057 -> 3057 bytes .../en-CA.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../en-GB.lproj/Localizable.strings | Bin 3067 -> 3067 bytes .../es.lproj/Localizable.strings | Bin 4114 -> 4114 bytes .../fr.lproj/Localizable.strings | Bin 5336 -> 5336 bytes .../he.lproj/Localizable.strings | Bin 4586 -> 4586 bytes .../hr.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../hu.lproj/Localizable.strings | Bin 3297 -> 3297 bytes .../id.lproj/Localizable.strings | Bin 3469 -> 3469 bytes .../is.lproj/Localizable.strings | Bin 3414 -> 3414 bytes .../it.lproj/Localizable.strings | Bin 3926 -> 3926 bytes .../ja.lproj/Localizable.strings | Bin 3632 -> 3632 bytes .../ko.lproj/Localizable.strings | Bin 3476 -> 3476 bytes .../nb.lproj/Localizable.strings | Bin 3832 -> 3832 bytes .../nl.lproj/Localizable.strings | Bin 3690 -> 3691 bytes .../pl.lproj/Localizable.strings | Bin 3214 -> 3214 bytes .../pt-BR.lproj/Localizable.strings | Bin 4574 -> 4574 bytes .../pt.lproj/Localizable.strings | Bin 3712 -> 3712 bytes .../ro.lproj/Localizable.strings | Bin 4930 -> 4930 bytes .../ru.lproj/Localizable.strings | Bin 5105 -> 5105 bytes .../sk.lproj/Localizable.strings | Bin 4899 -> 4899 bytes .../sq.lproj/Localizable.strings | Bin 4927 -> 4927 bytes .../sv.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../th.lproj/Localizable.strings | Bin 3316 -> 3316 bytes .../tr.lproj/Localizable.strings | Bin 4905 -> 4905 bytes .../zh-Hans.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../zh-Hant.lproj/Localizable.strings | Bin 3102 -> 3102 bytes .../ar.lproj/Localizable.strings | Bin 146 -> 146 bytes .../bg.lproj/Localizable.strings | Bin 174 -> 174 bytes .../cs.lproj/Localizable.strings | Bin 176 -> 176 bytes .../cy.lproj/Localizable.strings | Bin 118 -> 118 bytes .../da.lproj/Localizable.strings | Bin 128 -> 128 bytes .../de.lproj/Localizable.strings | Bin 139 -> 139 bytes .../en-AU.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-CA.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-GB.lproj/Localizable.strings | Bin 84 -> 84 bytes .../es.lproj/Localizable.strings | Bin 128 -> 128 bytes .../fr.lproj/Localizable.strings | Bin 129 -> 129 bytes .../he.lproj/Localizable.strings | Bin 150 -> 150 bytes .../hr.lproj/Localizable.strings | Bin 119 -> 119 bytes .../hu.lproj/Localizable.strings | Bin 160 -> 160 bytes .../id.lproj/Localizable.strings | Bin 134 -> 134 bytes .../is.lproj/Localizable.strings | Bin 138 -> 138 bytes .../it.lproj/Localizable.strings | Bin 120 -> 131 bytes .../ja.lproj/Localizable.strings | Bin 118 -> 118 bytes .../ko.lproj/Localizable.strings | Bin 110 -> 110 bytes .../nb.lproj/Localizable.strings | Bin 133 -> 133 bytes .../nl.lproj/Localizable.strings | Bin 116 -> 116 bytes .../pl.lproj/Localizable.strings | Bin 96 -> 96 bytes .../pt-BR.lproj/Localizable.strings | Bin 158 -> 158 bytes .../pt.lproj/Localizable.strings | Bin 156 -> 156 bytes .../ro.lproj/Localizable.strings | Bin 148 -> 148 bytes .../ru.lproj/Localizable.strings | Bin 166 -> 166 bytes .../sk.lproj/Localizable.strings | Bin 140 -> 140 bytes .../sq.lproj/Localizable.strings | Bin 134 -> 134 bytes .../sv.lproj/Localizable.strings | Bin 146 -> 146 bytes .../th.lproj/Localizable.strings | Bin 154 -> 154 bytes .../tr.lproj/Localizable.strings | Bin 170 -> 170 bytes .../zh-Hans.lproj/Localizable.strings | Bin 110 -> 110 bytes .../zh-Hant.lproj/Localizable.strings | Bin 112 -> 112 bytes 99 files changed, 4890 insertions(+), 2405 deletions(-) diff --git a/WordPress/Resources/ar.lproj/Localizable.strings b/WordPress/Resources/ar.lproj/Localizable.strings index 5b6d6ecd6a72..dc26f0a69102 100644 --- a/WordPress/Resources/ar.lproj/Localizable.strings +++ b/WordPress/Resources/ar.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-17 23:27:59+0000 */ +/* Translation-Revision-Date: 2021-11-29 16:54:07+0000 */ /* Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n % 100 >= 3 && n % 100 <= 10) ? 3 : ((n % 100 >= 11 && n % 100 <= 99) ? 4 : 5)))); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ar */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ لإصلاح التهديدات."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d إعجاب"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "يحتوي أحد الملفات على نمط أكواد برمجية ضارة"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "قائمة المواقع الموجودة على هذا الحساب."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "طريقة جديدة لإنشاء ونشر محتوى جذّاب على موقعك."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "تم إغلاق الحساب"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "شكر وتقدير"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "قم بمشاركة المقالات الجديدة تلقائيًا على شبكات التواصل الاجتماعي الخاصة بك لبدء لجلب ذلك الجمهور مباشرةً إلى موقعك."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "تحديثات تلقائية"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "المكوِّنات عبارة عن أجزاء من المحتوى التي يمكنك إدراجها وإعادة ترتيبها وتصميمها من دون الحاجة إلى معرفة كيفية ترميزها. المكوِّنات عبارة عن طريقة سهلة وعصرية لك لإنشاء تخطيطات جميلة."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "مدونة"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "التحقّق من إحصاءات موقعك"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "جاري التحقق من عمليات الشراء…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "اختيار أيقونة تطبيق جديدة"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "اختيار قالب"; /* Label for Publish time picker */ "Choose a time" = "اختيار وقت"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "اختيار الصوت"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "مُنجَز: التحقّق من إحصاءات موقعك"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "مُنجَز: اختيار قالب"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "مُنجَز: الاستمرار في إعداد الموقع"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "مُنجَز: تحرير صفحتك الرئيسية"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "مُنجَز: تمكين مشاركة المقالة"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "مُنجَز: استكشاف الخطط"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "مُنجَز: مراجعة صفحات الموقع"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "مكتمل: تعيين عنوان موقعك"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "مُنجَز: رفع أيقونة الموقع"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "مُنجَز: مشاهدة موقعك"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "الاتصال باستخدام حساب آخر"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "الاتصال بموقع"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "الاتصال بموقع آخر"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "ربط المزيد من الشبكات"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "نسخ الرابط إلى التعليق"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "نسخ المكوِّن"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "إنشاء وسم"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "إنشاء موقع جديد"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "ليس لديك حساب؟ _تسجيل_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "مسودة"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "المسودات"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "قم بتمكين الوصول إلى الميكروفون لتسجيل الصوت في فيديوهاتك."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "تمكين مشاركة المقالة"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "من جهاز آخر"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "من هذا الجهاز"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "حان الوقت للتدوين!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "حان الوقت! يمكنك عمل مسودة لمقالتك الأولي ونشرها."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "مائل"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "سيُحسّن Jetpack صورك ويوفِّرها من موقع الخادم الأقرب إلى زائريك. سيؤدي استخدام شبكة توصيل المحتوى العالمية إلى تعزيز سرعة التحميل في موقعك."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "الانضمام إلى محادثة: التعليق على المقالات من المدونات التي تتابعها."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "اعرف المزيد..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "يسار"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "الأيقونات القديمة"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "دعنا نساعدك"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "ملفي الشخصي"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "موقعي"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "مواقعي"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "لا توجد وسوم مطابقة لبحثك"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "لا شكرًا"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "لم يتم التعيين"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "ليس في هذه المرة"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "لا توجد مساحة كافية للرفع"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "الخصوصية"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "سياسة الخصوصية"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "البدء السريع"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "ضع تصنيفًا لنا على متجر التطبيقات"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "نص الرد"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "الرد على %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "تعيين تذكيرات التدوين الخاصة بك"; -/* Title of a Quick Start Tour */ -"Set your site title" = "تعيين عنوان موقعك"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "إعداد القالب"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "رابط المشاركة"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "شارك قصتك هنا..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "عرض المقالات ذات الصلة"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "عرض كلمة المرور"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "معروض"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "يظهر للعامة عندما تعلِّق على المدونات."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "اجتماعي"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "تتضمن بعض المكوِّنات إعدادات إضافية. انقر على أيقونة الإعدادات الموجودة في أسفل يمين المكوِّن لعرض مزيد من الخيارات."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "الفرز والتصفية"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "التعليمات البرمجية المصدر"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "التبديل إلى مُحرر المكوّنات"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "التبديل إلى حجم الخط 1 في العنوان"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "الشروط والأحكام"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "شروط الخدمة"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "تم تشغيل إشعارات الموقع"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "تويتر"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "رفع الوسائط"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "رفع أيقونة الموقع"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "فشل الرفع"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "عرض الكل"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "مشاهدة المقالة"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "جاري الانتظار..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "هل تريد بعض المساعدة للبدء؟"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "سنستمر في محاولة استعادة موقعك."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "سنرشدك إلى أساسيات بناء موقعك وتنميته"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "نعمل بجد على إضافة الدعم ميزة معاينات %s. وفي هذه الأثناء، يمكنك معاينة المحتوى المضمَّن في الصفحة."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "نعمل بجد على إضافة دعم ميزة معاينات %s. وفي هذه الأثناء، يمكنك معاينة المحتوى المضمَّن في المقالة."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "لقد أضفنا المزيد من المهام لمساعدتك على تنمية جمهورك."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "لقد أجرينا بعض التغييرات على قائمة الاختيار checklist الخاصة بك"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "لقد حدَّثنا أيقونات التطبيقات المخصصة بمظهر جديد وعصري. هناك 10 أنماط جديدة للاختيار من بينها، أو يمكنك ببساطة الاحتفاظ بالأيقونة الحالية إذا كنت تُفضل ذلك."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "صفحة الإضافة على WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "تُظهر خريطة العالم المشاهدات حسب البلد."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "نعم"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "نعم، ساعدني"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "نعم، وضِّح لي"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "يمكنك إعادة ترتيب المكوِّنات عن طريق النقر على مكوِّن، ثم النقر على الأسهم المتجهة إلى الأعلى والأسفل التي تظهر أسفل يسار المكوِّن لنقله فوق المكوِّنات الأخرى أو أسفلها."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "يمكن تحديث هذا في أي وقت من خلال موقعي > إعدادات الموقع"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "لن يُرسل موقعك بيانات بعد الآن إلى WordPress.com وستتوقف ميزات Jetpack عن العمل. ستفقد الوصول إلى الموقع على التطبيق وستضطر إلى إضافة بيانات اعتماد الموقع مرة أخرى."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "سيرى زائروك أيقونتك في متصفحهم. أضف أيقونة مخصصة للحصول على مظهر جذّاب واحترافي."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "لن يتم تخزين بيانات اعتمادك وستُستخدم فقط بغرض تنصيب Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "زيارة صفحة الوثائق الخاصة بنا"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "أفضل المشاهدات على الإطلاق"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "مقالات"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "أبق على اطلاع بنشاط كل الأوقات على موقع ووردبريس الخاص بك."; + +/* Title of all time widget */ +"widget.alltime.title" = "كل الأوقات"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "قم بتسجيل الدخول إلى ووردبريس للاطلاع على إحصاءات كل الأوقات."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "أبق على اطلاع بنشاط هذا الأسبوع على موقع ووردبريس الخاص بك."; + +/* Title of this week widget */ +"widget.thisweek.title" = "هذا الأسبوع"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "قم بتسجيل الدخول إلى ووردبريس للاطلاع على إحصاءات هذا الأسبوع."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "تعليقات"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "إعجابات"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "يتعذر تحميل إحصاءات الموقع."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "أبق على اطلاع بنشاط اليوم على موقع ووردبريس الخاص بك."; + +/* Title of today widget */ +"widget.today.title" = "اليوم"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "قم بتسجيل الدخول إلى ووردبريس للاطلاع على إحصاءات اليوم."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "العرض غير متاح"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "مشاهدات"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "الزوار"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "لن يكون متوفرًا في المستقبل."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• المستخدمون والكاتبون"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "أفضل المشاهدات على الإطلاق"; -"widget.alltime.posts.label" = "مقالات"; -"widget.today.comments.label" = "تعليقات"; -"widget.today.likes.label" = "إعجابات"; -"widget.today.title" = "اليوم"; -"widget.today.views.label" = "مشاهدات"; -"widget.today.visitors.label" = "الزوار"; diff --git a/WordPress/Resources/bg.lproj/Localizable.strings b/WordPress/Resources/bg.lproj/Localizable.strings index ded6cc3d3a61..69629274d288 100644 --- a/WordPress/Resources/bg.lproj/Localizable.strings +++ b/WordPress/Resources/bg.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2017-11-20 08:04:59+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:31:27+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: bg */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Блог"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Изтегляне на покупките..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Свързване на друг профил"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Свързване на сайт"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Свързване на друг сайт"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Чернова"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Курсив"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Научете повече..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Подравняване вляво"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Нека ви помогнем"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Моят профил"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Моят сайт"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Моите сайтове"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Поверителност"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Поверителност"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Гласувайте за нас в App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Текст на отговора"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Споделете вашата история тук..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Показване на подобни публикации"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Показва се публично когато коментирате на някой блог."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Изходен код"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Превключва размера на шрифта на Заглавие 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Условия за ползване"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Неуспешно качване"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Покажи всички"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Да"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Публикации"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Коментари"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Харесвания"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Днес"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Преглеждания"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Посетители"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Потребители и автори"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Публикации"; -"widget.today.comments.label" = "Коментари"; -"widget.today.likes.label" = "Харесвания"; -"widget.today.title" = "Днес"; -"widget.today.views.label" = "Преглеждания"; -"widget.today.visitors.label" = "Посетители"; diff --git a/WordPress/Resources/cs.lproj/Localizable.strings b/WordPress/Resources/cs.lproj/Localizable.strings index a2eb185cfe4c..eefc46ac3666 100644 --- a/WordPress/Resources/cs.lproj/Localizable.strings +++ b/WordPress/Resources/cs.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-18 22:58:22+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:47:14+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: cs_CZ */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ k opravě hrozeb."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d komentář"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d komentářů"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d to se mi líbí"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Soubor obsahuje vzor škodlivého kódu"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Seznam webů v tomto účtu."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Nový způsob vytváření a publikování poutavého obsahu na vašem webu."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Účet uzavřen"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Poděkování"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automaticky sdílejte nové příspěvky na svých sociálních médiích a začněte přivádět toto publikum na váš web."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automatická rodina"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatické aktualizace"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Bloky jsou části obsahu, které můžete vkládat, přeskupovat a upravovat, aniž byste museli vědět, jak kódovat. Bloky představují snadný a moderní způsob, jak vytvořit krásná rozvržení."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Zkontrolujte statistiky svého webu"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Zadejte název svého webu"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Kontrola nákupů..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Vyberte novou ikonu aplikace"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Vyberte web, který chcete otevřít."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Vybrat šablonu"; /* Label for Publish time picker */ "Choose a time" = "Vyberte čas"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Nahrát ikonu webu"; + /* No comment provided by engineer. */ "Choose audio" = "Zvolit audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Dokončeno: Zkontrolujte statistiky svého webu"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Dokončeno: Nastavte název svého webu"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Dokončeno: Vyberte šablonu"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Dokončeno: Vyberte jedinečnou ikonu webu"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Dokončeno: Pokračujte v nastavení webu"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Dokončeno: Upravte svou domovskou stránku"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Dokončeno: Povolit sdílení příspěvků"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Dokončeno: Prozkoumejte plány"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Dokončeno: Zkontrolujte stránky webu"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Dokončeno: Nastavte název svého webu"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Dokončeno: Nahrajte ikonu webu"; +"Completed: Social sharing" = "Dokončeno: Sdílení na sociálních sítích"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Dokončeno: Zobrazte svůj web"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Připojit k jinému účtu"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Připojit se k webu"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Připojit se k jinému webu"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Připojte více sítí"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Zkopírovat odkaz na komentář"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Zkopírujte URL adresu ze schránky, %s"; + /* No comment provided by engineer. */ "Copy block" = "Kopírovat blok"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Vytvořit štítek"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Vytvořte nový web"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Nemáte účet? _Přihlásit se_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Koncept"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Navrhněte a publikujte svůj první příspěvek."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Koncepty"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Povolte přístup k mikrofonům pro záznam zvuku ve videích."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Povolit sdílení příspěvků"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Z jiného zařízení"; +/* No comment provided by engineer. */ +"From clipboard" = "Ze schránky"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Z tohoto zařízení"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Je čas na blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Je čas! Vytvořte a zveřejněte svůj první příspěvek."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kurzíva"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimalizuje vaše obrázky a podává je z umístění serveru nejblíže vašim návštěvníkům. Používání naší globální sítě pro doručování obsahu zvýší rychlost načítání vašeho webu."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Připojte se odkudkoli"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Připojte se ke konverzaci: komentujte příspěvky z blogů, které sledujete."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Další informace..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Naučte se základy pomocí rychlé procházky."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Vlevo"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Starší ikony"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Právní a další"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Pomůžeme"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Můj profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Moje weby"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Moje weby"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Žádné štítky neodpovídají hledanému výrazu"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Ne, děkuji"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Nenastaveno"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Tentokrát ne"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Nedostatek místa k nahrání"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Soukromé"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Zásady ochrany osobních údajů"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Rychlý start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Ohodnoťte nás!"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Ohodnoťte nás na App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Text odpovědi"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Odpovědět na %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Nastavte si připomenutí blogů"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Zadejte název svého webu"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Nastavení šablony"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Sdílet odkaz"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Sdílet s přáteli"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Podělte se o svůj příběh..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Zobrazit podobné příspěvky"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Ukaž mi to"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Zobrazit heslo"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Zobrazeno"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Zobrazuje se na kartě prohlížeče návštěvníka a na dalších místech online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Zobrazit publikované komentáře na vašem blogu."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sociální"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Povolit sdílení"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Některé bloky mají další nastavení. Klepnutím na ikonu nastavení v pravém dolním rohu bloku zobrazíte další možnosti."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Filtry a řazení"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Zdrojový kód"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Přepnout na blokový editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Přepnout na HTML mód"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Přepnuto do vizuálního režimu."; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Přepne na velikost písma Nadpis 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Pravidla a podmínky"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Podmínky služby"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Notifikace webu jsou zapnuty"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Nahrát média"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Nahrát ikonu webu"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Nahrávání selhalo"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Zobrazit vše"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "Zobrazit všechny komentáře"; + /* Button label for viewing a post */ "View Post" = "Zobrazit příspěvek"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Čekejte, prosím..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Chcete pomoci se základním nastavením?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Chcete trochu pomoci se správou tohoto webu pomocí aplikace?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Stále se pokoušíme obnovit váš web."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Provedeme vás základy budování a rozšiřování vašeho webu"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Usilovně pracujeme na přidání podpory pro náhledy %s. Mezitím si můžete prohlédnout náhled vloženého obsahu na stránce."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Usilovně pracujeme na přidání podpory pro náhledy %s. Mezitím si můžete prohlédnout vložený obsah příspěvku."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Přidali jsme další úkoly, abychom vám pomohli rozšířit publikum."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Ve vašem kontrolním seznamu jsme provedli několik změn"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Aktualizovali jsme naše vlastní ikony aplikací o nový vzhled. K dispozici je 10 nových stylů, ze kterých si můžete vybrat, nebo si můžete jednoduše ponechat stávající ikonu, pokud chcete."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Stránka plugin na WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Pracuj s námi"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mapa světa zobrazující zobrazení podle země."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ano"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ano, prosím pomoct"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ano, ukažte mi to"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Bloky můžete přeskupit klepnutím na blok a následným klepnutím na šipky nahoru a dolů, které se zobrazují na levé spodní straně bloku, abyste jej přesunuli nad nebo pod jiné bloky."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "Stránky můžete kdykoli změnit."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Toto můžete kdykoli aktualizovat přes Můj web > Nastavení webu"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Váš web již nebude odesílat data na WordPress.com a funkce Jetpack přestanou fungovat. Ztratíte přístup k webu v aplikaci a budete jej muset znovu přidat pomocí pověření webu."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Návštěvníci uvidí vaši ikonu ve svém prohlížeči. Přidejte vlastní ikonu pro vyleštěný profesionální vzhled."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Pověření na vašem webu nebudou uložena a budou použita pouze za účelem instalace Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "navštivte naši stránku s dokumentací"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Nejlepší pohledy ze všech"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Příspěvky"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Zůstaňte v obraze o všech aktivitách na vašem WordPress webu."; + +/* Title of all time widget */ +"widget.alltime.title" = "Za celou dobu"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Přihlaste se do WordPressu, abyste viděli všechny časové statistiky."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Zůstaňte v obraze o aktivitě tohoto týdne na vašem WordPress webu."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Tento týden"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Přihlaste se do WordPressu a podívejte se na statistiky tohoto týdne."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komentáře"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "To se mi líbí"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Nelze načíst statistiky webu."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Zůstaňte v obraze o dnešních aktivitách na vašem WordPress webu."; + +/* Title of today widget */ +"widget.today.title" = "Dnes"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Chcete-li zobrazit dnešní statistiky, přihlaste se do WordPressu."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Zobrazení není k dispozici"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Zobrazení"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Návštěvníci"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "nebude v budoucnu k dispozici."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Uživatelé a autoři"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Nejlepší pohledy ze všech"; -"widget.alltime.posts.label" = "Příspěvky"; -"widget.today.comments.label" = "Komentáře"; -"widget.today.likes.label" = "To se mi líbí"; -"widget.today.title" = "Dnes"; -"widget.today.views.label" = "Zobrazení"; -"widget.today.visitors.label" = "Návštěvníci"; diff --git a/WordPress/Resources/cy.lproj/Localizable.strings b/WordPress/Resources/cy.lproj/Localizable.strings index e6260e2e9932..ec9e35053013 100644 --- a/WordPress/Resources/cy.lproj/Localizable.strings +++ b/WordPress/Resources/cy.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2017-07-15 16:42:01+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:33:39+0000 */ /* Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: cy_GB */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Gwirio'r nwyddau â brynwyd..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Cysylltu â Chyfrif Arall"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Drafft"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italig"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Chwith"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Gadewch i ni Helpu"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Fy Mhroffil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Gwefannau"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Preifatrwydd"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Polisi Preifatrwydd"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Barnwch ni yn yr App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Testun Ateb"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Rhanwch eich stori yma..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Dangos Cofnodion sy'n Perthyn"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Dangos yn gyhoeddus pan fyddwch yn gwneud sylwadau ar flogiau."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Cod Ffynhonnell"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Amodau Gwasanaeth"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Gweld y Cyfan"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Iawn"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Cofnodion"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Nodiadau"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Hoffi"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Heddiw"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Golwg"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Ymwelwyr"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Cofnodion"; -"widget.today.comments.label" = "Nodiadau"; -"widget.today.likes.label" = "Hoffi"; -"widget.today.title" = "Heddiw"; -"widget.today.views.label" = "Golwg"; -"widget.today.visitors.label" = "Ymwelwyr"; diff --git a/WordPress/Resources/da.lproj/Localizable.strings b/WordPress/Resources/da.lproj/Localizable.strings index ab873dd576bf..c7bb2733dcf8 100644 --- a/WordPress/Resources/da.lproj/Localizable.strings +++ b/WordPress/Resources/da.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-01 09:15:45+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:32:50+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: da_DK */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Kladde"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kursiv"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Venstre"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Mit websted"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mine websteder"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privatlivspolitik"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sortering og filtrering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Servicevilkår"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload fejlede"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Vis alle"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Se indlæg"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ja"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Indlæg"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Kommentarer"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "I dag"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visninger"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Besøgende"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Indlæg"; -"widget.today.comments.label" = "Kommentarer"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "I dag"; -"widget.today.views.label" = "Visninger"; -"widget.today.visitors.label" = "Besøgende"; diff --git a/WordPress/Resources/de.lproj/Localizable.strings b/WordPress/Resources/de.lproj/Localizable.strings index 1d7738e22cf3..1b6e0ea72e68 100644 --- a/WordPress/Resources/de.lproj/Localizable.strings +++ b/WordPress/Resources/de.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-23 15:54:07+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: de */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@, um Bedrohungen zu beheben."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Gefällt mir"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Eine Datei enthält ein bösartiges Codemuster"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Eine Liste der Websites in diesem Konto."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Eine neue Möglichkeit zum Erstellen und Veröffentlichen ansprechender Inhalte auf deiner Website."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Konto geschlossen"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Hinweise"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Teile neue Beiträge automatisch in deinen sozialen Medien, um diese Zielgruppe auf deine Website zu holen."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatische Updates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks sind Teile deines Inhalts, die du ganz ohne Coding-Kenntnisse einfügen, neu anordnen und gestalten kannst. Blocks sind eine einfache und moderne Art und Weise, wunderschöne Layouts zu erstellen."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Überprüfe deine Website-Statistiken"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Überprüfe Käufe …"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Wähle ein neues App-Icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Wähle ein Theme"; /* Label for Publish time picker */ "Choose a time" = "Uhrzeit auswählen"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Audio-Datei wählen"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Abgeschlossen: Deine Website-Statistiken prüfen"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Abgeschlossen: Ein Theme auswählen"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Abgeschlossen: Mit der Website-Einrichtung fortfahren"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Abgeschlossen: Startseite bearbeiten"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Abgeschlossen: Teilen von Beiträgen aktivieren"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Abgeschlossen: Tarife ansehen"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Abgeschlossen: Website-Seiten prüfen"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Abgeschlossen: Deinen Website-Titel festlegen"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Abgeschlossen: Ein Website-Icon hochladen"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Abgeschlossen: Anzeigen deiner Website"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Mit einem weiteren Konto verbinden"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Website verbinden"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Andere Website verbinden"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Mehr Netzwerke verbinden"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Link in Kommentar kopieren"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Block kopieren"; @@ -1889,7 +1903,7 @@ translators: Block name. %s: The localized block name */ "Couldn't load tags. Tap to retry." = "Schlagwörter konnten nicht geladen werden. Tippe, um es erneut zu versuchen."; /* Indicating that referrer couldn't be marked as spam */ -"Couldn't mark as spam" = "Couldn't mark as spam"; +"Couldn't mark as spam" = "Konnte nicht als Spam markieren"; /* Indicating that referrer couldn't be unmarked as spam */ "Couldn't unmark as spam" = "Spam-Markierung konnte nicht entfernt werden"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Ein Schlagwort erstellen"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Eine neue Website erstellen"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Du hast noch kein Konto? _Registrieren_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Entwurf"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Entwürfe"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Aktiviere den Mikrofonzugriff, um in deinen Videos Ton aufzeichnen zu können."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Teilen von Beiträgen aktivieren"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Von einem anderen Gerät"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Von diesem Gerät"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Es ist Zeit, einen Beitrag zu veröffentlichen!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Es ist Zeit! Entwirf und veröffentliche deinen allerersten Beitrag."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kursiv"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimiert deine Bilder und stellt sie über den Server-Standort bereit, der am nächsten an deinen Website-Besuchern liegt. Unser globales Netzwerk für Content-Auslieferung verkürzt die Ladezeiten deiner Website."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Einer Unterhaltung beitreten: Kommentiere Beiträge aus Blogs, denen du folgst."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Mehr erfahren…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Links"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Veraltete Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Wir helfen dir"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Mein Profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Meine Webseite"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Meine Websites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Keine Schlagwörter entsprechen deiner Suche"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nein, danke"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Nicht eingestellt"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Nicht jetzt"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Nicht genug Platz zum Hochladen"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privatsphäre"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Datenschutzerklärung"; /* Register Domain - Privacy Protection section header title */ @@ -5550,7 +5571,7 @@ translators: Block name. %s: The localized block name */ "Publish immediately" = "Sofort veröffentlichen"; /* Text displayed in the share extension's summary view. It describes the publish page action. */ -"Publish page on:" = "Publish page on:"; +"Publish page on:" = "Seite veröffentlichen auf:"; /* Text displayed in the share extension's summary view. It describes the publish post action. */ "Publish post on:" = "Beitrag veröffentlichen auf:"; @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Schnellstart"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Bewerte uns im App-Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Antworttext"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "%1$@ antworten"; @@ -5998,7 +6023,7 @@ translators: Block name. %s: The localized block name */ "Save as Draft" = "Als Entwurf speichern"; /* Text displayed in the share extension's summary view that describes the save draft page action. */ -"Save draft page on:" = "Save draft page on:"; +"Save draft page on:" = "Seitenentwurf speichern unter:"; /* Text displayed in the share extension's summary view that describes the save draft post action. */ "Save draft post on:" = "Beitragsentwurf speichern unter:"; @@ -6024,7 +6049,7 @@ translators: Block name. %s: The localized block name */ "Saves this post for later." = "Speichert diesen Beitrag für später."; /* A short message that informs the user a draft page is being saved to the server from the share extension. */ -"Saving page…" = "Saving page…"; +"Saving page…" = "Seite wird gespeichert..."; /* A short message that informs the user a draft post is being saved to the server from the share extension. */ "Saving post…" = "Beitrag wird gespeichert …"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Lege deine Blog-Erinnerungen fest"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Lege deinen Website-Titel fest"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Das Theme wird eingerichtet"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Link teilen"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Teile deine Geschichte hier ..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Ähnliche Beiträge anzeigen"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Passwort anzeigen"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Wird angezeigt"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Wird öffentlich angezeigt, wenn du auf Blogs kommentierst."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social Media"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Einige Blöcke verfügen über zusätzliche Einstellungen. Tippe auf das Einstellungs-Icon unten rechts im Block, um dir die Optionen anzusehen."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sortierung und Filter"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Quelltext"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Zum Block-Editor wechseln"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Wechselt zur Schriftgröße der Überschrift 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Allgemeine Geschäftsbedingungen"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Allgemeine Geschäftsbedingungen"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Website-Benachrichtigungen aktiviert"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Medieninhalt hochladen"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Eine Website-Icon hochladen"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Hochladen fehlgeschlagen"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Alles anzeigen"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Beitrag anzeigen"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Warten …"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Benötigst du ein wenig Hilfe beim Start?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Wir versuchen trotzdem, deine Website wiederherzustellen."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Wir führen dich durch die Grundlagen des Aufbaus und der Erweiterung deiner Website"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Wir arbeiten daran, Unterstützung für %s-Vorschauen hinzuzufügen. In der Zwischenzeit kannst du den eingebetteten Inhalt auf deiner Seite als Vorschau sehen."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Wir arbeiten daran, Unterstützung für %s-Vorschauen hinzuzufügen. In der Zwischenzeit kannst du den eingebetteten Inhalt auf deinem Beitrag als Vorschau sehen."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Wir haben weitere Aufgaben hinzugefügt, um dir zu helfen, dein Publikum zu vergrößern."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Wir haben einige Änderungen an deiner Checkliste vorgenommen."; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Wir haben unseren benutzerdefinierten App-Icons einen frischen, neuen Look verpasst. Du kannst aus 10 neuen Stilen wählen oder auch einfach dein aktuelles Icon behalten."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Plugin-Seite von WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Weltkarte mit Aufrufen pro Land."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ja"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ja, hilf mir"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ja, anzeigen"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Du kannst Blocks neu anordnen, indem du auf einen Block tippst und ihn dann mit den Pfeilen nach oben und unten, die unten links auf dem Block erscheinen, an die passende Stelle navigieren."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Unter „Meine Website“ → „Einstellungen“ kannst du dies jederzeit aktualisieren."; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Deine Website wird keine Daten mehr an WordPress.com senden und Jetpack-Funktionen werden nicht mehr ausgeführt werden. Du verlierst den Zugriff auf deine Website aus der App und musst diese erneut mit deinen Website-Zugangsdaten hinzufügen."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Deine Besucher sehen dein Symbol in ihrem Browser. Füge ein benutzerdefiniertes Symbol für einen eleganten, professionellen Look hinzu."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Deine Zugangsdaten werden nicht gespeichert und werden nur für die Installation von Jetpack verwendet."; @@ -9105,7 +9139,7 @@ translators: Block name. %s: The localized block name */ "unknown url" = "Unbekannte URL"; /* Indicating that referrer was unmarked as spam */ -"unmarked as spam" = "unmarked as spam"; +"unmarked as spam" = "Spam-Markierung aufgehoben"; /* Noun. Describes a site's user. */ "user" = "Benutzer"; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "besuche unsere Dokumentationsseite"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Bisher bestes Aufrufergebnis"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Artikel"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Bleibe auf dem Laufenden über die Aktivitäten des Gesamtzeitraums auf deiner WordPress-Website."; + +/* Title of all time widget */ +"widget.alltime.title" = "Gesamtzeitraum"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Melde dich in WordPress an, um dir alle Statistiken des Gesamtzeitraums anzusehen."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Bleibe auf dem Laufenden über die Aktivitäten dieser Woche auf deiner WordPress-Website."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Diese Woche"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Melde dich in WordPress an, um dir die Statistiken dieser Woche anzusehen."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Kommentare"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Gefällt mir"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Website-Statistiken konnten nicht geladen werden."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Bleibe auf dem Laufenden über die heutigen Aktivitäten auf deiner WordPress-Website."; + +/* Title of today widget */ +"widget.today.title" = "Heute"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Melde dich in WordPress an, um dir die heutigen Statistiken anzusehen."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Ansicht ist nicht verfügbar"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Aufrufe"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Besucher"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "wird zukünftig deaktiviert sein"; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Benutzer und Autoren"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Bisher bestes Aufrufergebnis"; -"widget.alltime.posts.label" = "Artikel"; -"widget.today.comments.label" = "Kommentare"; -"widget.today.likes.label" = "Gefällt mir"; -"widget.today.title" = "Heute"; -"widget.today.views.label" = "Aufrufe"; -"widget.today.visitors.label" = "Besucher"; diff --git a/WordPress/Resources/en-AU.lproj/Localizable.strings b/WordPress/Resources/en-AU.lproj/Localizable.strings index f850a326cb50..f836babfba39 100644 --- a/WordPress/Resources/en-AU.lproj/Localizable.strings +++ b/WordPress/Resources/en-AU.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-08-24 04:59:52+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:28:47+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: en_AU */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Draft"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italic"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimise your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Left"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Terms of Service"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Yes"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Best views ever"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Posts"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comments"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Today"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Views"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitors"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Best views ever"; -"widget.alltime.posts.label" = "Posts"; -"widget.today.comments.label" = "Comments"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Today"; -"widget.today.views.label" = "Views"; -"widget.today.visitors.label" = "Visitors"; diff --git a/WordPress/Resources/en-CA.lproj/Localizable.strings b/WordPress/Resources/en-CA.lproj/Localizable.strings index 6651f5e2e5c9..1986dada3bf5 100644 --- a/WordPress/Resources/en-CA.lproj/Localizable.strings +++ b/WordPress/Resources/en-CA.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 12:10:30+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:24:53+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: en_CA */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgments"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: view your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Draft"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italic"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Left"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here…"; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Terms of Service"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are ten new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Yes"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Best views ever"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Posts"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comments"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Today"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Views"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitors"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Best views ever"; -"widget.alltime.posts.label" = "Posts"; -"widget.today.comments.label" = "Comments"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Today"; -"widget.today.views.label" = "Views"; -"widget.today.visitors.label" = "Visitors"; diff --git a/WordPress/Resources/en-GB.lproj/Localizable.strings b/WordPress/Resources/en-GB.lproj/Localizable.strings index 7a3d80ed8395..bf58d73693e6 100644 --- a/WordPress/Resources/en-GB.lproj/Localizable.strings +++ b/WordPress/Resources/en-GB.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 11:35:33+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:43:48+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: en_GB */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Auto Updates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: upload a site icon"; +"Completed: Social sharing" = "Completed: social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: view your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Draft"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italic"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimise your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join from anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk-through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Left"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and more"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Terms of Service"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View all comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are ten new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work with us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Yes"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Best views ever"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Posts"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Stay up to date with all time activity on your WordPress site."; + +/* Title of all time widget */ +"widget.alltime.title" = "All time"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Log in to WordPress to see all time stats."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Stay up to date with this week activity on your WordPress site."; + +/* Title of this week widget */ +"widget.thisweek.title" = "This week"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Log in to WordPress to see this week's stats."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comments"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Unable to load site stats."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Stay up to date with today's activity on your WordPress site."; + +/* Title of today widget */ +"widget.today.title" = "Today"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Log in to WordPress to see today's stats."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "View is unavailable"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Views"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitors"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Best views ever"; -"widget.alltime.posts.label" = "Posts"; -"widget.today.comments.label" = "Comments"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Today"; -"widget.today.views.label" = "Views"; -"widget.today.visitors.label" = "Visitors"; diff --git a/WordPress/Resources/es.lproj/Localizable.strings b/WordPress/Resources/es.lproj/Localizable.strings index 641cbf6c1794..403c9f15d5b1 100644 --- a/WordPress/Resources/es.lproj/Localizable.strings +++ b/WordPress/Resources/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 12:53:53+0000 */ +/* Translation-Revision-Date: 2021-11-30 17:53:39+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: es */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ para corregir las amenazas."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d me gusta"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Un archivo contiene un patrón de código malicioso"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Una lista de sitios en esta cuenta."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Una nueva forma de crear y publicar contenidos atrayentes en tu sitio."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Cuenta cerrada"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Agradecimientos"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Comparte automáticamente las nuevas entradas en tus medios sociales para empezar a atraer esa audiencia a tu sitio."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Actualizaciones automáticas"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Los bloques son piezas de contenido que puedes insertar, reorganizar y dar estilo sin necesidad de saber programar. Los bloques son una forma fácil y moderna para que crees bonitos diseños."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Revisa las estadísticas de tu sitio"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Comprueba el título de tu sitio"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Comprobando compras..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Elige un nuevo icono para la aplicación"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Elige un tema"; /* Label for Publish time picker */ "Choose a time" = "Elige una hora"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Elegir audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completado: Revisar las estadísticas del sitio"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completado: Comprobar el título de tu sitio"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completado: Elegir un tema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completado: Continúa con la configuración del sitio"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completado: editar la página de inicio"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completado: Activar compartir entradas"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completado: Consultar planes"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completado: revisar las páginas del sitio"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completado: Configurar el título de tu sitio"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completado: Subir un icono para el sitio"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completado: Ver tu sitio"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Conectar otra cuenta"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Conecta un sitio"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Conectar con otro sitio"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Conecta con más redes"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copiar enlace al comentario"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copiar bloque"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Crea una etiqueta"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Crear un nuevo sitio"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "¿No tienes una cuenta? _Regístrate_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Borrador"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Borradores"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Habilita el acceso al micrófono para poder grabar sonido en tus vídeos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Activar compartir entradas"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Desde otro dispositivo"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Desde este dispositivo"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "¡Es hora de bloguear!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "¡Ya toca! Haz un borrador y publica tu primera entrada."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Cursiva"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimizará tus imágenes y las servirá desde la ubicación del servidor más cercano a tus visitantes. Usar nuestra red de entrega de contenidos global mejorará la velocidad de carga de tu sitio."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Únete a la conversación: comenta las entradas de los blogs que sigues."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Aprende más…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Izquierda"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Iconos heredados"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Deja que te ayudemos"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Mi perfil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Mi sitio"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mis sitios"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No hay etiquetas que coincidan con tu búsqueda"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No gracias"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Sin configurar"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Ahora no"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "No hay espacio suficiente para subidas"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacidad"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Política de privacidad"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Inicio rápido"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Puntúanos en la App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Texto de respuesta"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Responder a %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Configura tus recordatorios de blogueo"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Configura el título de tu sitio"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Configurar el tema"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Compartir enlace"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Comparte tu historia aquí..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Mostrar entradas relacionadas"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Mostrar la contraseña"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Mostrado"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Se muestra públicamente cuando comentas en blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Algunos bloques tienen ajustes adicionales. Toca el icono de los ajustes en la parte inferior derecha del bloque para ver más opciones."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Orden y filtros"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Código fuente"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Cambiar al editor de bloques"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Cambia al tamaño de fuente Cabecera 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Términos y condiciones"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Términos del servicio"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Avisos del sitio activados"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Subir archivos multimedia"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Sube un icono para el sitio"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Carga fallida"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Ver todo"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Ver entrada"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Esperando..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "¿Quiere ayuda para empezar?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Volveremos a intentar restaurar tu sitio."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Te llevaremos a través de los básicos de creación y crecimiento de tu sitio"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Estamos trabajando duro para añadir compatibilidad para vistas previas de %s. Mientras tanto, puedes previsualizar el contenido incrustado en la página."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Estamos trabajando duro para añadir compatibilidad para vistas previas de %s. Mientras tanto, puedes previsualizar el contenido incrustado en la entrada."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Hemos añadido más tareas para ayudarte a hacer crecer tu audiencia."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Hemos realizado algunos cambios en tu lista de comprobación"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Hemos actualizado los iconos personalizados de nuestra aplicación con un nuevo y fresco aspecto. Hay 10 nuevos estilos entre los que elegir, o puedes simplemente dejar tu icono existente si lo prefieres."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Página del plugin en WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mapa del mundo que muestra las visualizaciones por país."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Sí"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Sí, ayúdame"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Sí, muéstrame cómo"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Puedes reorganizar los bloques tocando un bloque y luego tocando las flechas arriba y abajo que aparecen en la parte inferior izquierda del bloque para moverlo encima o debajo de otros bloques."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puedes actualizar esto en cualquier momento desde Mi sitio > Ajustes del sitio"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Tu sitio ya no enviará datos a WordPress.com y las características de Jetpack dejarán de funcionar. Perderás acceso al sitio en la aplicación y tendrás que volver a añadirla con las credenciales del sitio."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Tus visitantes verán tu icono en su navegador. Añade un icono personalizado para tener un aspecto profesional y destacado."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Las credenciales de tu web no se almacenarán y solo se usarán para instalar Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visita nuestra página de documentación"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Mayor número de visitas"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Entradas"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Mantente al día con la actividad de todo el tiempo en tu sitio WordPress."; + +/* Title of all time widget */ +"widget.alltime.title" = "Todo el tiempo"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Accede a WordPress para ver las estadísticas de todo el tiempo."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Mantente al día con la actividad de esta semana en tu sitio WordPress."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Esta semana"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Accede a WordPress para ver las estadísticas de esta semana."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comentarios"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Me gusta"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "No se han podido cargar las estadísticas del sitio."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Mantente al día con la actividad de hoy en tu sitio WordPress."; + +/* Title of today widget */ +"widget.today.title" = "Hoy"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Accede a WordPress para ver las estadísticas de hoy."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "La vista no está disponible"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visitas"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitantes"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "no estará disponible en el futuro."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Usuarios y autores"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Mayor número de visitas"; -"widget.alltime.posts.label" = "Entradas"; -"widget.today.comments.label" = "Comentarios"; -"widget.today.likes.label" = "Me gusta"; -"widget.today.title" = "Hoy"; -"widget.today.views.label" = "Visitas"; -"widget.today.visitors.label" = "Visitantes"; diff --git a/WordPress/Resources/fr.lproj/Localizable.strings b/WordPress/Resources/fr.lproj/Localizable.strings index 0b7c2592a039..1c2fb30ff2ac 100644 --- a/WordPress/Resources/fr.lproj/Localizable.strings +++ b/WordPress/Resources/fr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-16 09:03:35+0000 */ +/* Translation-Revision-Date: 2021-11-29 09:26:53+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: fr */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ pour corriger les menaces."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d mention J’aime"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Un fichier contient un modèle de code malveillant"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Un liste de sites de ce compte"; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Une nouvelle façon de publier du contenu attrayant sur votre site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Compte clôturé"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Remerciements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Partagez automatiquement les nouveaux articles sur vos médias sociaux pour attirer ce public sur votre site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Mises à jour automatiques"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Les blocs sont des éléments de contenu que vous pouvez insérer, réorganiser et styliser sans avoir besoin de savoir coder. Les blocs sont un moyen simple et moderne de créer de belles mises en page."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Vérifiez les statistiques de votre site"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Vérification des achats…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choisir une nouvelle icône d’application"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choisissez un thème"; /* Label for Publish time picker */ "Choose a time" = "Choisir une heure"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choisir un fichier sonore"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Terminé : vérifiez vos statistiques"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Terminé : choisissez votre thème"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Terminé : continuez vers les réglages du site"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Terminé : Modifier votre page d’accueil"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Terminé : activez le partage d’article"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Terminé : explorez les offres"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Terminé : Passer en revue les pages du site"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Terminé : définir le titre de votre site"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Terminé : Téléversez une icône de site"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Terminé : affichez votre site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connecter un autre compte"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connectez un site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connectez un autre site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connecter d’autres réseaux"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copier le lien dans le commentaire."; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copier le bloc"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Créer une étiquette"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Créer un nouveau site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Vous n'avez pas encore de compte ? _S'inscrire_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Brouillon"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Brouillons"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Autoriser l’accès au micro pour enregistrer le son dans vos vidéos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Activer le partage d’articles"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Depuis une autre appareil"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Depuis cet appareil"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "C’est l’heure de bloguer !"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "C'est le moment ! Créez votre premier brouillon et publiez votre tout premier article."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italique"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimisera vos images et les servira depuis le serveur le plus proche de vos visiteurs. L’usage de notre réseau de livraison de contenu (CDN) accélérera la vitesse de chargement de votre site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Rejoindre une conversation : commentez sur les articles des blogs auxquels vous êtes abonnés."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "En savoir plus…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Gauche"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Icônes héritées"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Laissez-nous vous aider"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Mon profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Mon site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mes sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Aucune étiquette ne correspond à votre recherche"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Non merci"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Non défini"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Pas cette fois"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Pas assez d’espace disque disponible pour téléverser"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Vie privée"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Politique de confidentialité"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Démarrage rapide"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Évaluez-nous sur l'App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Texte de réponse"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Répondre à %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Définir vos rappels de blog"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Définir le titre de votre site"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Mise en place du thème"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Lien de partage"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Partagez votre histoire ici..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Afficher les articles similaires"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Mot de passe affiché"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Affiché"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Affichée publiquement quand vous commentez sur des blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Certains blocs ont des réglages supplémentaires. Appuyez sur l’icône des réglages en bas à droite du bloc pour afficher plus d’options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Tri et filtrage"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Code source"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Passer à l’éditeur de blocs"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Basculez sur la taille de police du Titre niveau 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Conditions générales"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Conditions d'utilisation"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Notifications de site activées"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Téléverser un média"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Téléverser une icône de site"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Le téléversement a échoué"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Afficher tout"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Voir l’article"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "En attente…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Vous voulez un peu d’aide pour commencer ?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Nous essayerons encore de restaurer votre site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Nous allons vous présenter les bases de la construction et de la croissance de votre site."; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Nous travaillons dur pour ajouter de la prise en charge des aperçus %s. En attendant, vous pouvez prévisualiser le contenu embarqué sur la page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Nous travaillons dur pour ajouter de la prise en charge des aperçus %s. En attendant, vous pouvez prévisualiser le contenu embarqué sur l'article de blog."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Nous avons ajouté d’avantage de tâches pour vous aider à agrandir votre audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Nous avons réalisé quelques modifications à notre checklist."; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Les icônes d’application personnalisées font peau neuve. Dix nouveaux styles sont disponibles. Vous pouvez garder votre icône actuelle si vous préférez."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Page de l’extension WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "La carte du monde affiche les vues par pays."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Oui"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Oui, aidez-moi !"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Oui, montrez-moi"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Vous pouvez réorganiser les blocs en touchant un bloc, puis en touchant les flèches haut et bas qui apparaissent en bas à gauche du bloc pour le déplacer au-dessus ou au-dessous d’autres blocs."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Vous pouvez le mettre à jour à tout moment via Mon site > Réglages du site"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Votre site n’enverra plus de données à WordPress.com et les fonctionnalités de Jetpack cesseront de fonctionner. Vous perdrez l’accès au site depuis l’app et vous devrez l’ajouter à nouveau en vous identifiant."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Vos visiteurs verront votre icône dans leurs navigateurs. Ajoutez une icône personnalisée pour un look plus pro et plus attractif."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Vos informations d’identification sur le site Web ne seront pas conservées. Elles sont utilisées afin d’installer Jetpack uniquement."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visiter notre page de documentation"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Record de vues"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Articles"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Gardez toujours un œil sur l'activité de votre site WordPress depuis sa création."; + +/* Title of all time widget */ +"widget.alltime.title" = "Depuis le début"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Connectez-vous à WordPress pour voir les statistiques depuis la création du site."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Gardez toujours un œil sur l'activité hebdomadaire de votre site WordPress."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Cette Semaine"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Connectez-vous à WordPress pour voir les statistiques de cette semaine."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Commentaires"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "J’aime"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Impossible de charger les statistiques pour le site."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Gardez toujours un œil sur l'activité quotidienne de votre site WordPress."; + +/* Title of today widget */ +"widget.today.title" = "Aujourd'hui"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Connectez-vous à WordPress pour voir les statistiques du jour."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Cette vue n'est pas disponible"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Vues"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visiteurs"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "ne sera plus disponible dans le futur."; @@ -9170,14 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Utilisateurs et auteurs"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Record de vues"; -"widget.alltime.posts.label" = "Articles"; -"widget.today.comments.label" = "Commentaires"; -"widget.today.likes.label" = "J’aime"; -"widget.today.title" = "Aujourd'hui"; -"widget.today.views.label" = "Vues"; -"widget.today.visitors.label" = "Visiteurs"; -"widget.thisweek.title" = "Cette Semaine"; diff --git a/WordPress/Resources/he.lproj/Localizable.strings b/WordPress/Resources/he.lproj/Localizable.strings index e43e22b87109..08473827641f 100644 --- a/WordPress/Resources/he.lproj/Localizable.strings +++ b/WordPress/Resources/he.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-25 10:54:07+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: he_IL */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ כדי לתקן את האיומים."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "לייק ⁦%1$d⁩"; @@ -315,7 +321,7 @@ translators: Block name. %s: The localized block name */ "%d<\/strong> times a week" = "%d<\/strong> פעמים בשבוע"; /* A short description of how many times a week the user will receive a blogging reminder. The '%d' placeholder will be populated with a count of the number of times a week they'll be reminded, and should be surrounded by HTML tags. */ -"%d<\/strong> times a week at %@" = "%d<\/strong> times a week at %@"; +"%d<\/strong> times a week at %@" = "%1$d<\/strong> פעמים בשבוע בשעה %2$@"; /* Short title telling the user they will receive a blogging reminder once per week. The word for 'once' should be surrounded by HTML tags. */ "Once<\/strong> a week" = "פעם<\/strong> בשבוע"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "קובץ שמכיל תבנית של קוד זדוני"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "רשימה של אתרים בחשבון זה."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "דרך חדשה ליצור ולפרסם תוכן מעניין באתר שלך."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "החשבון נסגר"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "בשיתוף"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "ניתן לשתף באופן אוטומטי פוסטים חדשים ברשתות החברתיות כדי להביא עוד קהל לאתר שלך."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "עדכונים אוטומטיים"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "הבלוקים הם חלקים של תוכן שאפשר להוסיף, לארגן ולעצב ללא צורך בניסיון עם כתיבת קודים. בלוקים הם אפשרות פשוטה ומודרנית ליצור פריסות יפות."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "אתר"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "בדיקת הנתונים הסטטיסטיים של האתר שלך"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "בודק רכישות…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "לבחור סמל חדש לאפליקציה"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "בחירת ערכת עיצוב"; /* Label for Publish time picker */ "Choose a time" = "לבחור שעה"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "לבחור אודיו"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "הושלם: לבדיקת הנתונים הסטטיסטיים של האתר שלך"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "הושלם: לבחירה של ערכת עיצוב"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "הושלם: להמשך הגדרת האתר"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "הושלם: לערוך את עמוד הבית"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "הושלם: להפעלת השיתוף של הפוסטים"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "הושלם: לעיון בתוכניות"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "הושלם: לבדוק עמודים באתר"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "הושלם: להגדיר את שם האתר שלך"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "הושלם: להעלאת סמל האתר"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "הושלם: להצגת האתר שלך"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "חיבור חשבון נוסף"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "חיבור אתר"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "חיבור אתר נוסף"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "לחבר רשתות נוספות"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "העתקת הקישור לתגובה"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "להעתיק בלוק"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "יצירת תגית"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "ליצור אתר חדש"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "אין לך חשבון עדיין? _הרשמה_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "טיוטה"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "טיוטות"; @@ -2499,7 +2516,7 @@ translators: Block name. %s: The localized block name */ "EDIT LINK" = "ערוך קישור"; /* No comment provided by engineer. */ -"Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen."; +"Each block has its own settings. To find them, tap on a block. Its settings will appear on the toolbar at the bottom of the screen." = "לכל בלוק יש הגדרות משלו. כדי למצוא אותן, יש להקיש על הבלוק. ההגדרות שלו יופיעו בסרגל הכלים שנמצא בתחתית המסך."; /* Edit the post. Editing GIF alert default action button. @@ -2627,7 +2644,7 @@ translators: Block name. %s: The localized block name */ "Email sent!" = "האימייל נשלח!"; /* No comment provided by engineer. */ -"Embed block previews are coming soon" = "Embed block previews are coming soon"; +"Embed block previews are coming soon" = "תצוגות מקדימות של בלוק מוטמע יהיו אפשריות בקרוב"; /* translators: accessibility text. %s: Embed caption. */ "Embed caption. %s" = "כיתוב התמונה מוטמע. %s"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "אליך לאפשר גישה למיקרופון כדי להקליט סאונד בקובצי ווידאו."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "הפעלת השיתוף של הפוסטים"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "ממכשיר אחר"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "מהמכשיר הזה"; @@ -3269,7 +3288,7 @@ translators: Block name. %s: The localized block name */ "Gmail" = "Gmail"; /* No comment provided by engineer. */ -"Go back" = "Go back"; +"Go back" = "חזרה"; /* Button title. Tapping lets the user view the sites they follow. */ "Go to Following" = "מעבר לעוקבים"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "הגיע הזמן לכתוב בלוג!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "הגיע הזמן! אפשר לכתוב טיוטה ולפרסם את הפוסט הראשון שלך."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "כתב נטוי"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack ימטב את התמונות שלך ויציג אותם ממיקום השרת הקרוב ביותר למבקרים שלך. שימוש ברשת שליחת התוכן העולמית שלנו ישפר את מהירות הטעינה של האתר שלך."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "הצטרפות לדיון: הוספת תגובה על פוסטים בבלוגים תחת מעקב שלך."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "מידע נוסף..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "שמאל"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "סמלים ישנים"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "תנו לנו לעזור"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "הפרופיל שלי"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "אתר שלי"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "האתרים שלי"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "לא נמצאו תגיות שמתאימות לחיפוש שלך"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "לא תודה"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "לא הוגדר"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "לא הפעם"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "אין מספיק מקום לבצע העלאה"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5453,14 +5473,15 @@ translators: Block name. %s: The localized block name */ "Primary Site" = "אתר ראשי"; /* Primary site address label, used in the site address section of the Domains Dashboard. */ -"Primary site address" = "Primary site address"; +"Primary site address" = "כתובת האתר הראשי"; /* Label for the privacy setting Privacy settings section header Title for screen to select the privacy options for a blog */ "Privacy" = "פרטיות"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "מדיניות פרטיות"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "התחלה מהירה"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "נשמח לקבל ממך דירוג בחנות האפליקציות"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "טקסט תגובה"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "לענות ל-%1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "להגדיר את התזכורות שלך לכתוב בלוג"; -/* Title of a Quick Start Tour */ -"Set your site title" = "להגדיר את שם האתר שלך"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "להגדיר ערכת עיצוב"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "שיתוף הקישור"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "מומלץ לשתף את הסיפור שלך כאן..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "הצג תכנים באותו נושא"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "להציג סיסמה"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "מוצג"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "תוצג באופן ציבורי כשתגיב על בלוגים."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "רשתות חברתיות"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "בבלוקים מסוימים יש הגדרות נוספות. יש להקיש על סמל ההגדרות בפינה הימנית התחתונה של הבלוק כדי להציג את האפשרויות הנוספות."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "מיון וסימון"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "קוד מקור"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "להחליף לעורך הבלוקים"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "מבצע החלפה לגודל גופן 1 בכותרת"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "תנאים והתניות"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "תנאי שימוש"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "ההודעות של האתר הופעלו"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "טוויטר"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "העלאת מדיה"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "העלאה של סמל לאתר"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "העלאה נכשלה"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "להציג הכול"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "הצג פוסט"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "ממתין..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "נדרשת לך עזרה כדי לצאת לדרך?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "אנחנו עדיין ננסה לשחזר את האתר שלך."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "אנחנו נלווה אותך בביצוע הפעולות הבסיסיות לבנייה של האתר שלך ולהגדלתו"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "אנחנו משקיעים מאמצים כדי להוסיף תמיכה בתצוגות מקדימות של %s. בינתיים אפשר לראות תצוגה מקדימה של התוכן המוטמע בעמוד."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "אנחנו משקיעים מאמצים כדי להוסיף תמיכה בתצוגות מקדימות של %s. בינתיים אפשר לראות תצוגה מקדימה של התוכן המוטמע בפוסט."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "הוספנו עוד משימות כדי לעזור לך להגדיל את הקהל."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "ביצענו מספר שינויים לרשימת המשימות שלך"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "עדכנו את הסמלים המותאמים באפליקציה עם סגנון חדש ומרענן. יש עשרה סגנונות חדשים שמהם ניתן לבחור ואפשר גם להשאיר את הסמלים שקיימים אצלך, לבחירתך."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "עמוד התוספים של WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "מפת העולם שמציגה צפיות לפי מדינה."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "כן"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "כן, נדרשת לי עזרה"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "כן, אני רוצה לראות"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "כדי לשנות את סדר הבלוקים, יש להקיש על הבלוק ולאחר מכן להקיש על החצים למעלה ולמטה שמופיעים בפינה השמאלית התחתונה כדי להזיז את הבלוק מעל הבלוקים האחרים או מתחתיהם."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "אפשר לעדכן את ההגדרה הזאת בכל עת דרך 'האתר שלי' > 'הגדרות אתר'"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "לא יישלחו עוד נתונים מהאתר שלך ל-WordPress.com ותכונות של Jetpack יפסיקו לעבוד. לא תהיה לך עוד גישה לאתר באפליקציה ויהיה עליך להוסיף אותו מחדש ולהזין את שם המשתמש והסיסמה של האתר."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "המבקרים באתר יראו את הסמל שלך בדפדפן שלהם. ניתן להוסיף סמל מותאם אישית למראה נקי ומקצועי."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "פרטי הכניסה שלך לאתר לא יאוחסנו. אנחנו משתמשים בהם כדי להתקין את Jetpack בלבד."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "היכנס לעמוד המסמכים שלנו"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "כמות הצפיות הגבוהה בכל הזמנים"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "פוסטים"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "אפשר להתעדכן לגבי הפעילות מכל הזמנים באתר שלך ב-WordPress."; + +/* Title of all time widget */ +"widget.alltime.title" = "כל הזמנים"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "יש להתחבר לחשבון ב-WordPress כדי להציג את הנתונים הסטטיסטיים מכל הזמנים."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "אפשר להתעדכן לגבי כל הפעילות החדשה השבוע באתר שלך ב-WordPress."; + +/* Title of this week widget */ +"widget.thisweek.title" = "השבוע"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "יש להתחבר לחשבון ב-WordPress כדי להציג את הנתונים הסטטיסטיים של השבוע."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "תגובות"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = " לייקים"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "אין אפשרות לטעון את הנתונים הסטטיסטיים של האתר."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "אפשר להתעדכן לגבי כל הפעילות החדשה היום באתר שלך ב-WordPress."; + +/* Title of today widget */ +"widget.today.title" = "היום"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "יש להתחבר לחשבון ב-WordPress כדי להציג את הנתונים הסטטיסטיים של היום."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "התצוגה לא זמינה"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "דפים נצפים"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "מבקרים"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "לא יהיה זמין בעתיד."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• משתמשים ומחברים"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "כמות הצפיות הגבוהה בכל הזמנים"; -"widget.alltime.posts.label" = "פוסטים"; -"widget.today.comments.label" = "תגובות"; -"widget.today.likes.label" = " לייקים"; -"widget.today.title" = "היום"; -"widget.today.views.label" = "דפים נצפים"; -"widget.today.visitors.label" = "מבקרים"; diff --git a/WordPress/Resources/hr.lproj/Localizable.strings b/WordPress/Resources/hr.lproj/Localizable.strings index 7442824939bf..49923cbb6b87 100644 --- a/WordPress/Resources/hr.lproj/Localizable.strings +++ b/WordPress/Resources/hr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-09-15 09:48:33+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:34:02+0000 */ /* Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: hr */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d sviđanje"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Skica"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Ukošeno"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Lijevo"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Pravila privatnosti"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Uvjeti korištenja"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Da"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Ovo možete ažurirati bilo kada preko Moje sjedište > Postavke sjedišta"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Postovi"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komentari"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Danas"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Pregledi"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Posjetitelji"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Postovi"; -"widget.today.comments.label" = "Komentari"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Danas"; -"widget.today.views.label" = "Pregledi"; -"widget.today.visitors.label" = "Posjetitelji"; diff --git a/WordPress/Resources/hu.lproj/Localizable.strings b/WordPress/Resources/hu.lproj/Localizable.strings index 6a5f58732ea6..813e76e3b40d 100644 --- a/WordPress/Resources/hu.lproj/Localizable.strings +++ b/WordPress/Resources/hu.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-02-17 12:53:31+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:34:26+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: hu */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Vázlat"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Dőlt"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Left"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Webhelyem"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Adatvédelmi irányelvek"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Általános Szerződési Feltételek"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Sikertelen feltöltés"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Igen"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Bejegyzések"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Hozzászólások"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Ma"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Megtekintések"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Látogatók"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Bejegyzések"; -"widget.today.comments.label" = "Hozzászólások"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Ma"; -"widget.today.views.label" = "Megtekintések"; -"widget.today.visitors.label" = "Látogatók"; diff --git a/WordPress/Resources/id.lproj/Localizable.strings b/WordPress/Resources/id.lproj/Localizable.strings index 5ebfced9696a..5bc826eb5292 100644 --- a/WordPress/Resources/id.lproj/Localizable.strings +++ b/WordPress/Resources/id.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-24 17:54:06+0000 */ +/* Translation-Revision-Date: 2021-11-30 11:54:07+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: id */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ untuk memperbaiki ancaman."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Suka"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Sebuah file mengandung pola kode berbahaya"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Daftar situs di akun ini."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Cara baru untuk membuat dan memposkan konten menarik di situs Anda."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Akun ditutup"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Pernyataan"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Secara otomatis bagikan pos baru ke media sosial Anda untuk menarik perhatian audiens di media sosial ke situs Anda."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Pembaruan otomatis"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blok adalah bagian konten yang dapat Anda sisipkan, atur ulang, dan gaya tanpa perlu mengetahui cara membuat kode. Blok adalah cara mudah dan modern bagi Anda untuk membuat tata letak yang indah."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Periksa statistik situs Anda"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Memeriksa pembelian..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Pilih ikon aplikasi baru"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Pilih tema"; /* Label for Publish time picker */ "Choose a time" = "Pilih waktu"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Pilih audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Selesai: Periksa statistik situs Anda"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Selesai: Pilih tema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Selesai: Lanjutkan penyiapan situs"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Selesai: Sunting halaman beranda"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Selesai: Aktifkan berbagi pos"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Selesai: Jelajahi paket"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Selesai: Tinjau laman situs"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Selesai: Buat judul situs Anda"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Selesai: Unggah ikon situs"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Selesai: Lihat situs Anda"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Sambungkan Akun Lainnya"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Hubungkan situs"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Hubungkan situs lainnya"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Hubungkan lebih banyak jaringan"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Salin Tautan ke Komentar"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Salin blok"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Buat Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Buat situs baru"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Belum memiliki akun? _Daftar_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Naskah"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Konsep"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Izinkan akses mikrofon untuk merekam suara di video Anda."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Aktifkan berbagi pos"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Dari perangkat lain"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Dari perangkat ini"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Waktunya menulis pos!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Sekarang waktunya! Buat konsep dan publikasikan pos pertama Anda."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Miring"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack akan mengoptimalkan gambar Anda dan menyajikannya dari lokasi server yang terdekat dengan pengunjung situs. Dengan menggunakan jaringan pengiriman konten global kami, kecepatan pemuatan situs Anda akan menjadi lebih cepat."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Bergabung dengan percakapan: komentari pos dari blog yang Anda ikuti."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Pelajari selengkapnya..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Rata Kiri"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Ikon Lawas"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Mari Kami Bantu"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Profil Saya"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Situs Saya"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Situs Saya"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Tidak ada tag yang cocok dengan pencarian Anda"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Tidak, terima kasih"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Belum Ditetapkan"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Tidak Sekarang"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Tidak cukup ruang untuk unggah."; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privasi"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Kebijakan Privasi"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Mulai Cepat"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Beri nilai kami di App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Teks Jawab"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Balas ke %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Setel pengingat blogging Anda"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Buat judul situs Anda"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Menyiapkan tema"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Bagikan tautan"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Bagikan kisah Anda di sini..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Tampilkan Pos Terkait"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Tampilkan kata sandi"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Ditampilkan"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Ditampilkan secara publik saat Anda mengomentari blog."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sosial"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Beberapa blok memiliki pengaturan tambahan. Ketuk ikon pengaturan di kanan bawah blok untuk melihat pilihan lainnya."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Pengurutan dan penyaringan"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Kode Sumber"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Beralih ke penyunting blok"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Beralih ke Judul ukuran font 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Syarat dan Ketentuan"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Pernyataan Layanan"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Mengaktifkan pemberitahuan situs"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Unggah Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Unggah ikon situs"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Unggah gagal"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Lihat Semua"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Lihat Pos"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Menunggu..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Perlu sedikit bantuan untuk memulai?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Kami masih mencoba memulihkan situs Anda."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Kami akan memandu Anda dalam memahami dasar-dasar membuat dan mengembangkan situs"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Kami bekerja keras dalam menambahkan fitur pratinjau %s. Saat ini, Anda dapat melakukan pratinjau konten sematan di halaman."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Kami bekerja keras dalam menambahkan fitur pratinjau %s. Saat ini, Anda dapat melakukan pratinjau konten sematan di artikel."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Kami telah menambahkan lebih banyak tugas untuk membantu Anda menumbuhkan audiens."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Kami telah melakukan beberapa perubahan pada daftar periksa Anda"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Kami telah memperbarui ikon aplikasi kustom dengan tampilan baru yang lebih segar. Ada 10 gaya baru yang dapat dipilih, tapi Anda tetap bisa menggunakan ikon yang ada jika lebih menyukainya."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Halaman Plugin WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Peta dunia menampilkan kunjungan berdasarkan negara."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ya"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ya, Bantu Saya"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ya, tunjukkan"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Anda dapat mengatur ulang blok dengan mengetuk satu blok lalu mengetuk panah atas dan bawah yang muncul di sisi kiri bawah blok untuk memindahkannya ke atas atau ke bawah blok lain."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Anda dapat melakukan pembaruan ini kapan saja melalui Situs Saya > Pengaturan Situs"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Situs Anda akan berhenti mengirim data ke WordPress.com dan fitur Jetpack akan berhenti berfungsi. Anda akan kehilangan akses ke situs di aplikasi dan harus menambahkannya lagi dengan kredensial situs."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Pengunjung akan melihat ikon Anda di perambah mereka. Tambahkan ikon kustom untuk tampilan yang lebih pro dan elegan."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Kredensial situs web Anda tidak akan disimpan dan hanya akan digunakan untuk tujuan penginstalan Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "kunjungi halaman dokumentasi kami"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Terbanyak dilihat"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Tulisan-tulisan"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Dapatkan kabar terbaru tentang seluruh aktivitas hingga hari ini di situs WordPress Anda."; + +/* Title of all time widget */ +"widget.alltime.title" = "Semua Waktu"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Login ke WordPress untuk melihat statistik hingga hari ini."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Dapatkan kabar terbaru tentang aktivitas minggu ini di situs WordPress Anda."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Minggu Ini"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Login ke WordPress untuk melihat statistik minggu ini."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komentar-komentar"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Suka"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Tidak dapat memuat statistik situs."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Dapatkan kabar terbaru tentang aktivitas hari ini di situs WordPress Anda."; + +/* Title of today widget */ +"widget.today.title" = "Hari ini"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Login ke WordPress untuk melihat statistik hari ini."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Pratinjau tidak tersedia"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Kunjungan"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Pengunjung"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "akan tidak tersedia di waktu mendatang."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Pengguna & Penulis"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Terbanyak dilihat"; -"widget.alltime.posts.label" = "Tulisan-tulisan"; -"widget.today.comments.label" = "Komentar-komentar"; -"widget.today.likes.label" = "Suka"; -"widget.today.title" = "Hari ini"; -"widget.today.views.label" = "Kunjungan"; -"widget.today.visitors.label" = "Pengunjung"; diff --git a/WordPress/Resources/is.lproj/Localizable.strings b/WordPress/Resources/is.lproj/Localizable.strings index 3ebbcafd8e72..3a9c0ea8ddc4 100644 --- a/WordPress/Resources/is.lproj/Localizable.strings +++ b/WordPress/Resources/is.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2017-05-01 23:05:05+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:32:05+0000 */ /* Plural-Forms: nplurals=2; plural=n % 10 != 1 || n % 100 == 11; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: is */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blogg"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Athuga kaup…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Tengja við annan aðgang"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Drög"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Skáletra"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Taktu þátt í samræðum: ritaðu athugasemd eða færslur af bloggunum sem þú fylgist með."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Vinstri"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Leyfðu okkur að aðstoða"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Minn prófíll"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Vefirnir mínir"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Friðhelgi"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Persónuverndarstefna"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Gefðu okkur einkunn í App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Svartexti"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Deildu sögunni þinn hér..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Birta tengdar færslur"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Birta opinberlega þegar þú ritar athugasemdir við blogg."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Kóði"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Notendaskilmálar"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Halaðu upp skrá"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Skoða allt"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Skoða færslu"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Já"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Færslur"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Athugasemdir"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Líkar við"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Í dag"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Flettingar"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Gestir"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "verður ekki í boði í framtíðinni."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Notendur og höfundar"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Færslur"; -"widget.today.comments.label" = "Athugasemdir"; -"widget.today.likes.label" = "Líkar við"; -"widget.today.title" = "Í dag"; -"widget.today.views.label" = "Flettingar"; -"widget.today.visitors.label" = "Gestir"; diff --git a/WordPress/Resources/it.lproj/Localizable.strings b/WordPress/Resources/it.lproj/Localizable.strings index 7f890435236d..b0a85d96d7f1 100644 --- a/WordPress/Resources/it.lproj/Localizable.strings +++ b/WordPress/Resources/it.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-11 21:05:20+0000 */ +/* Translation-Revision-Date: 2021-11-29 19:04:10+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: it */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ per risolvere le minacce."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Mi piace"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Un file contiene un modello di codice dannoso"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Un elenco dei siti su questo account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Un nuovo modo di creare e pubblicare contenuti coinvolgenti sul tuo sito."; @@ -402,7 +405,7 @@ translators: Block name. %s: The localized block name */ "About Me" = "Su di me"; /* Link to About screen for WordPress for iOS */ -"About WordPress" = "About WordPress"; +"About WordPress" = "Informazioni su WordPress"; /* Link to About screen for WordPress for iOS */ "About WordPress for iOS" = "Informazioni su WordPress per iOS"; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account chiuso"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Ringraziamenti"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Condividi automaticamente nuovi articoli sui tuoi social media per iniziare ad attirare quel pubblico sul tuo sito."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Aggiornamenti automatici"; @@ -963,7 +970,7 @@ translators: Block name. %s: The localized block name */ "Avg Words \/ Post" = "Parole in media per articolo"; /* Post Stats average views per day header. */ -"Avg. Views Per Day" = "Visite medie al giorno"; +"Avg. Views Per Day" = "Visualizzazioni medie al giorno"; /* Back action on share extension site picker screen. Takes the user to the share extension editor screen. Back button title. @@ -996,7 +1003,7 @@ translators: Block name. %s: The localized block name */ "Bar Chart depicting Likes for the selected period." = "Barra del grafico che indica i Mi piace per il periodo selezionato."; /* This description is used to set the accessibility label for the Period chart, with Views selected. */ -"Bar Chart depicting Views for selected period, Visitors superimposed" = "Barra del grafico che indica le Visite per il periodo selezionato, i visitatori sovrapposti"; +"Bar Chart depicting Views for selected period, Visitors superimposed" = "Grafico a barre che indica le visualizzazioni per il periodo selezionato, visitatori sovrapposti"; /* This description is used to set the accessibility label for the Period chart, with Visitors selected. */ "Bar Chart depicting Visitors for the selected period." = "Barra del grafico che indica i Visitatori per il periodo selezionato."; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "I blocchi sono contenuti da poter inserire, organizzare e modellare senza dover conoscere alcun codice. I blocchi rappresentano un modo semplice e moderno per creare meravigliosi layout."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Controlla le statistiche del sito"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Ricerca di elementi acqistati in corso ..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Scegli una nuova icona dell'app"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Scegli un tema"; /* Label for Publish time picker */ "Choose a time" = "Scegli un'ora"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Scegli audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completato: controlla le statistiche del sito"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completato: scegli un tema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completato: continua con la configurazione del sito"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completato: Modifica la tua homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completato: abilita la condivisione dell'articolo"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completato: esplora i piani"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completato: Verifica le pagine del sito"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completato: imposta il titolo del sito"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completato: carica un'icona del sito"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completato: visualizza il tuo sito"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connetti un altro account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connettiti ad un sito"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connettiti ad un altro sito"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connetti più reti"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copia il link per commentare"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copia il blocco"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Crea una tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Crea un nuovo sito"; /* Text shown when the account has no sites. */ @@ -2050,7 +2065,7 @@ translators: Block name. %s: The localized block name */ "Currently restoring: %1$@" = "Ripristino in corso: %1$@"; /* No comment provided by engineer. */ -"Custom URL" = "Custom URL"; +"Custom URL" = "URL personalizzato"; /* Placeholder for Invite People message field. */ "Custom message…" = "Messaggio personalizzato…"; @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Non hai un account? _Registrati_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Bozza"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Bozze"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Abilita l'accesso al microfono per registrare l'audio nei tuoi video."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Abilita la condivisione dell'articolo"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Da un altro dispositivo"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Da questo dispositivo"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "È ora di pubblicare sul blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "È ora! Fai una bozza e pubblica ogni nuovo articolo."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Corsivo"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack ottimizzerà le tue immagini e le servirà dalla posizione del server più vicina ai visitatori. L'utilizzo della nostra rete di distribuzione dei contenuti migliorerà la velocità di caricamento del tuo sito."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Unisciti a una conversazione: commenta gli articoli dei blog che segui."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Scopri di più…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Sinistra"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Icone legacy"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Permettici di aiutare"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Il mio profilo"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Il mio sito"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "I miei siti"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Nessun tag corrispondente alla tua ricerca"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No, grazie"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Non impostato"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Non questa volta"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Spazio di upload insufficiente."; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Tour iniziale"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Valutaci sull'App Store"; @@ -5812,11 +5836,12 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Testo di risposta"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Rispondi a %1$@"; /* Placeholder text for replying to a post */ -"Reply to post" = "Reply to post"; +"Reply to post" = "Rispondi all'articolo"; /* The title of a button that triggers reporting of a post from the user's reader. */ "Report this post" = "Segnala questo articolo"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Imposta i promemoria relativi al blog"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Imposta il titolo del sito"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Impostazione del tema"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Condividi il link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Condividi qui la tua storia..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Mostra gli articoli correlati"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Mostra password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Mostrata"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Mostrato pubblicamente quando commenti sui blog."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Alcuni blocchi presentano impostazioni aggiuntive. Tocca l'icona delle impostazioni nella parte inferiore destra del blocco per visualizzare altre opzioni."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Ordinamento e filtro"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Codice sorgente"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Passa all'editor a blocchi"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Passa alla dimensione carattere Heading 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Termini e condizioni"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Termini del Servizio"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Notifiche del sito attivate"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Carica media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Carica un'icona del sito"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload fallito"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Visualizza tutto"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Visualizza articolo"; @@ -8128,7 +8171,7 @@ translators: Block name. %s: The localized block name */ Label for post views count. Stats Views Label Today's Stats 'Views' label */ -"Views" = "Visite"; +"Views" = "Visualizzazioni"; /* Description for view count. Singular. */ "Views to your site so far" = "Visualizzazioni del tuo sito finora"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "In attesa..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Vuoi un aiuto per partire?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Siamo ancora tentando di ripristinare il sito."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Ti insegneremo le basi per creare e far crescere il tuo sito"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Stiamo lavorando sodo per aggiungere il supporto per le anteprime di %s. Nel frattempo, puoi visualizzare in anteprima il contenuto incorporato nella pagina."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Stiamo lavorando sodo per aggiungere il supporto per le anteprime di %s. Nel frattempo, puoi visualizzare in anteprima il contenuto incorporato nell'articolo."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Abbiamo aggiunto più attività per aiutarti ad aumentare il tuo pubblico."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Abbiamo apportato delle modifiche alla checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Abbiamo aggiornato le icone delle nostre app personalizzate con un nuovo aspetto. Esistono 10 nuovi stili tra cui scegliere oppure, se preferisci, puoi semplicemente mantenere la tua icona esistente."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Pagina del plugin di WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mappa del mondo che mostra le visualizzazioni per Paese."; @@ -8681,7 +8718,7 @@ translators: Block name. %s: The localized block name */ "Write Post" = "Scrivi articolo"; /* Placeholder text for inline compose view */ -"Write a reply" = "Write a reply"; +"Write a reply" = "Scrivi una risposta"; /* Placeholder text for inline compose view */ "Write a reply…" = "Rispondi..."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Si"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Sì, aiutatemi"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Sì, visualizza"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Puoi riorganizzare i blocchi toccando un blocco, quindi le frecce su e giù che compaiono nella parte inferiore sinistra del blocco per spostarlo sopra o sotto altri blocchi."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puoi aggiornare in qualsiasi momento tramite Il mio sito > Impostazioni del sito"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Il tuo sito non invierà più dati a WordPress.com e le funzionalità di Jetpack smetteranno di funzionare. Perderai l’accesso al sito nell’applicazione e potrai aggiungerlo nuovamente utilizzando le credenziali del sito."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "I tuoi visitatori vedranno la tua icona nei loro browser. Aggiungi un'icona personalizzata per un aspetto professionale e raffinato."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Le credenziali del tuo sito web non verranno archiviate e saranno utilizzate solamente per installare Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visita la pagina della documentazione"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Record di visualizzazioni"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Articoli"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Rimani aggiornato sulle attività del tuo sito WordPress dalla sua creazione."; + +/* Title of all time widget */ +"widget.alltime.title" = "Dall'inizio"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Accedi a WordPress per vedere le statistiche dalla creazione del sito."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Rimani aggiornato sulle attività settimanali del tuo sito WordPress."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Questa settimana"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Accedi a WordPress per vedere le statistiche settimanali."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Commenti"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Like"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Impossibile caricare le statistiche."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Rimani aggiornato sulle attività odierne del tuo sito WordPress."; + +/* Title of today widget */ +"widget.today.title" = "Oggi"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Accedi a WordPress per vedere le statistiche odierne."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Questa vista non è disponibile"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visualizzazioni"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitatori"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "non sarà più disponibile."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Utenti e autori"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Record di visite"; -"widget.alltime.posts.label" = "Articoli"; -"widget.today.comments.label" = "Commenti"; -"widget.today.likes.label" = "Like"; -"widget.today.title" = "Oggi"; -"widget.today.views.label" = "Visite"; -"widget.today.visitors.label" = "Visitatori"; diff --git a/WordPress/Resources/ja.lproj/Localizable.strings b/WordPress/Resources/ja.lproj/Localizable.strings index 7a66c0d29b85..babe0584b8a6 100644 --- a/WordPress/Resources/ja.lproj/Localizable.strings +++ b/WordPress/Resources/ja.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-24 09:54:06+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:23:23+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ja_JP */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "脅威を修正するには、%1$@。"; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d個の「いいね」"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "ファイルには、悪意のあるコードが含まれています"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "このアカウントのサイトのリストです。"; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "心をつかむコンテンツを作り、サイトで公開する新しい方法。"; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "アカウントが閉鎖されました"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "謝辞"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "新しい投稿をソーシャルメディアに自動的に共有し、読者をサイトに誘導します。"; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自動更新"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "ブロックとは、コーディングについて知らなくても挿入、配置変更、スタイル設定が実行できる、コンテンツの集まりです。 ブロックを使うことで、簡単かつ洗練された方法で美しいレイアウトに仕上げることができます。"; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "ブログ"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "サイト統計情報を確認"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "購入を確認中…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "新しいアイコンを選択"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "テーマを選択"; /* Label for Publish time picker */ "Choose a time" = "時間を選択"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "音声ファイルを選択"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "完了 : サイトの統計情報を確認"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "完了 : テーマを選択"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "完了 : サイトの設定を続ける"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "完了: ホームページを編集"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "完了 : 投稿の共有を有効化"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "完了 : プランを詳しく見る"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "完了: サイトページを確認"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "完了 : サイトのタイトルを設定"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "完了 : サイトアイコンをアップロード"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "完了 : サイトを確認"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "別のアカウントを連携"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "サイトと連携"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "別のサイトと連携"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "さらにネットワークと連携"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "コメントへのリンクをコピー"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "ブロックをコピー"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "タグの作成"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "新規サイトを作成"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "アカウントをお持ちでない場合は_登録_してください"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "下書き"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "下書き"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "動画の音を録音するためにマイクを有効にしてください。"; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "投稿の共有を有効にする"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "ほかのデバイスから"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "この端末から"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "ブログに投稿する日です !"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "いよいよスタートです ! 最初の投稿の下書きを作成し、公開しましょう。"; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "イタリック"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack が画像を最適化し、訪問者に最も近いところにあるサーバーから画像を提供します。WordPress.com のグローバルコンテンツ配信ネットワークを使用すると、サイトの読み込み速度が向上します。"; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "フォロー中のブログの記事にコメントを書き、ディスカッションに参加してみましょう。"; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "さらに詳しく ..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "左"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "レガシーアイコン"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "お手伝いさせてください"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "プロフィール"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "マイサイト"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "自分のサイト"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "検索と一致するタグがありません"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "結構です"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "未設定"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "今は結構です"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "アップロードするスペース容量が足りません"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "プライバシー"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "プライバシーポリシー"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "クイックスタート"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store で評価"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "返信テキスト"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "%1$@ への返信"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "ブログ投稿のリマインダーを設定"; -/* Title of a Quick Start Tour */ -"Set your site title" = "サイトのタイトルを設定"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "テーマを設定する"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "リンクを共有"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "ここに文章を入力…"; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "関連記事を表示"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "パスワードを表示"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "表示内容"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "ブログにコメントする際に公開表示されます。"; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "ソーシャル"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "一部のブロックには追加の設定があります。 ブロックの右下にある設定アイコンをタップしてその他のオプションを表示します。"; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "並べ替えと絞り込み"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "ソースコード"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "ブロックエディターに切り替える"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "見出し1のフォントサイズに変更する"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "利用規約"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "利用規約"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "サイト通知を有効にしました"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "メディアをアップロード"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "サイトのアイコンをアップロード"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "アップロードに失敗しました"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "すべて表示"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "投稿を表示"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "待機中…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "スタートのお手伝いが必要ですか ?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "引き続きサイトの復元を試みています。"; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "サイトの構築と訪問者を増やす方法の基本について紹介します"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "%sプレビューのサポートの追加に取り組んでいます。 それまでの間、固定ページで埋め込まれたコンテンツをプレビューできます。"; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "%sプレビューのサポートの追加に取り組んでいます。 それまでの間、ブログ投稿で埋め込まれたコンテンツをプレビューできます。"; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "訪問者を増やすためのタスクをさらに追加しました。"; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "チェックリストを修正しました"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "カスタムアプリのアイコンを新しく更新しました。新しいスタイル10個から選択できますが、もしこれまでのアイコンのほうがお好みでしたらそのまま使用することもできます。"; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org プラグインページ"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "国別表示数の世界地図。"; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "はい"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "はい、お願いします"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "はい、見てみます"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "ブロックをタップし、ブロックの左下に表示される上下矢印をタップして他のブロックの上下に移動させることで、ブロックの配置を変更できます。"; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "この設定は、「参加サイト」→「サイト設定」でいつでも変更できます。"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "お使いのサイトから WordPress.com にデータが送信されなくなり、Jetpack の機能は停止します。アプリでサイトにアクセスできなくなり、サイトログイン情報を再度追加する必要があります。"; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "訪問者のブラウザーにアイコンが表示されます。センスの良いカスタムアイコンを追加しましょう。"; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "サイトの証明書は保存されず、Jetpack インストールの目的のみに使用されます。"; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "ドキュメントページに移動する"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "過去最高の表示数"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "投稿"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "コメント"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "いいね"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "今日"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "表示数"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "訪問者"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "は、いずれ利用できなくなります。"; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "•ユーザーと投稿者"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "過去最高の表示数"; -"widget.alltime.posts.label" = "投稿"; -"widget.today.comments.label" = "コメント"; -"widget.today.likes.label" = "いいね"; -"widget.today.title" = "今日"; -"widget.today.views.label" = "表示数"; -"widget.today.visitors.label" = "訪問者"; diff --git a/WordPress/Resources/ko.lproj/Localizable.strings b/WordPress/Resources/ko.lproj/Localizable.strings index f5e308ae5678..c0a3b3977a86 100644 --- a/WordPress/Resources/ko.lproj/Localizable.strings +++ b/WordPress/Resources/ko.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-23 15:54:06+0000 */ +/* Translation-Revision-Date: 2021-11-30 15:54:07+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ko_KR */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "위협을 해결할 %1$@입니다."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "좋아요 %1$d개"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "파일에 악성 코드 패턴이 있음"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "이 계정의 사이트 목록"; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "사이트에서 매력적인 콘텐츠를 만들고 공개하는 새로운 방법입니다."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "계정 종료됨"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "인증"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "자동으로 새 글을 소셜 미디어와 공유하여 해당 방문자를 사이트에 유치하기 시작합니다."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "자동 업데이트"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "블록은 코드를 작성하는 방법을 몰라도 삽입, 재정렬 및 스타일 지정이 가능한 콘텐츠 조각입니다. 블록은 아름다운 레이아웃을 생성할 수 있는 쉽고 현대적인 방법입니다."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "블로그"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "사이트 통계 확인"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "구매 확인 중…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "새 앱 아이콘 선택"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "테마 선택"; /* Label for Publish time picker */ "Choose a time" = "시간을 선택하세요."; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "오디오 선택"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "완료: 사이트 통계 확인"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "완료: 테마 선택"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "완료: 사이트 설정 진행"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "완료됨: 홈페이지 편집"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "완료: 글 공유 설정"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "완료: 요금제 살펴보기"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "완료됨: 사이트 페이지 검토"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "완료됨: 사이트 제목 정하기"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "완료: 사이트 아이콘 업로드"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "완료: 사이트 보기"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "다른 계정과 연결"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "사이트 연결"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "다른 사이트 연결"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "추가 네트워크 연결"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "댓글로 링크 복사"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "블록 복사하기"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "태그 만들기"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "새 사이트 생성"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "아직 계정이 없으신가요? _가입_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "임시 글"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "임시글"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "비디오에 소리를 녹음하려면 마이크 액세스를 허용하세요."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "글 공유 설정"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "다른 기기에서"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "이 기기에서"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "블로깅 시간입니다."; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "이제 시간이 되었습니다! 임시글을 작성하여 첫 번째 글을 게시하세요."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "이탤릭"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "젯팩은 회원님의 이미지를 최적화하며 방문자에게 가장 가까운 서버 위치에서 이미지를 제공합니다. 글로벌 콘텐츠 제공 네트워크를 사용하면 사이트의 로드 속도가 향상됩니다."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "대화 참여: 팔로우하는 블로그의 글에 댓글을 달아보세요."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "더 알아보기..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "좌측"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "기존 아이콘"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "지원"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "내 프로필"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "내 사이트"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "내 사이트"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "검색과 일치하는 태그 없음"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "괜찮습니다."; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "설정 안 함"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "나중에"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "업로드할 수 있는 충분한 공간이 없음"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "개인 정보"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "개인 정보 보호 정책"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "퀵 스타트"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store에서 워드프레스닷컴 평가"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "회신 메시지"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "%1$@에 회신"; @@ -6106,7 +6131,7 @@ translators: Block name. %s: The localized block name */ "Search button. Current button text is" = "검색 버튼입니다. 현재 버튼 텍스트는"; /* Search domain - Title for the Suggested domains screen */ -"Search domains" = "Search domains"; +"Search domains" = "도메인 검색"; /* title of the button that searches the first domain. */ "Search for a domain" = "도메인 검색"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "블로깅 알림 설정"; -/* Title of a Quick Start Tour */ -"Set your site title" = "사이트 제목 정하기"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "테마 설정"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "공유 링크"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "여기서 스토리 공유..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "관련 글 표시"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "비밀번호 보이기"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "표시됨"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "블로그에 댓글을 달 때 공개됩니다."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "소셜"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "일부 블록에는 추가 설정이 있습니다. 블록의 오른쪽 하단에 있는 설정 아이콘을 눌러 추가 옵션을 봅니다."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "정렬 및 필터링"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "소스 코드"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "블록 편집기로 전환"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "제목 1 글꼴 크기로 전환"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "이용 약관"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "서비스 약관"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "사이트 알림을 켰음"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "트위터"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "미디어 업로드"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "사이트 아이콘 업로드"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "업로드 실패"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "모두 보기"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "글 보기"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "기다리는 중..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "시작하는 데 도움이 필요하십니까?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "그래도 사이트 복원은 시도됩니다."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "사이트 빌드 및 성장에 대한 기본 사항을 안내해 드립니다."; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "%s 미리 보기에 대한 지원을 추가하려고 노력하고 있습니다. 그동안에는 페이지에 임베드된 콘텐츠를 미리 볼 수 있습니다."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "%s 미리 보기에 대한 지원을 추가하려고 노력하고 있습니다. 그동안에는 글에 임베드된 콘텐츠를 미리 볼 수 있습니다."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "방문자 수를 늘리는 데 도움이 되는 작업이 추가되었습니다."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "회원님의 체크리스트에 몇 가지 변경 사항이 있습니다."; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "사용자 정의 앱 아이콘을 신선한 새 모양으로 업데이트했습니다. 새로운 10가지 스타일 중에서 선택하거나 원하면 기존 아이콘을 간단히 유지하실 수 있습니다."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org 플러그인 페이지"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "국가별 조회 수가 표시된 세계 지도"; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "네"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "예, 도와주세요."; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "예, 보여 주세요."; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "블록을 누른 다음에 블록의 왼쪽 하단에 표시되는 위쪽 및 아래쪽 화살표를 눌러 다른 블록 위쪽 또는 아래쪽으로 이동하면서 블록을 다시 정렬할 수 있습니다."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "내 사이트 > 사이트 설정에서 언제든지 업데이트할 수 있습니다."; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "사이트에서 데이터를 워드프레스닷컴에 더 이상 보내지 않고 젯팩 기능의 작동이 멈춥니다. 앱에서 사이트에 액세스할 수 없으므로 사이트 자격 증명을 사용하여 다시 추가해야 합니다."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "방문자의 브라우저에 아이콘이 표시됩니다. 깔끔하고 전문적인 모양을 만들려면 사용자 정의 아이콘을 추가하세요."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "웹사이트 자격 증명은 저장되지 않으며 젯팩을 설치하는 용도로만 사용됩니다."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "설명서 페이지 방문"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "최고 조회수"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "글"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "워드프레스닷컴 사이트의 전체 활동을 최신 상태로 유지하세요."; + +/* Title of all time widget */ +"widget.alltime.title" = "전체"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "워드프레스에 로그인하여 전체 통계를 참조하세요."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "워드프레스닷컴 사이트의 이번 주 활동을 최신 상태로 유지하세요."; + +/* Title of this week widget */ +"widget.thisweek.title" = "이번 주"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "워드프레스에 로그인하여 이번 주 통계를 참조하세요."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "댓글"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "좋아요"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "사이트 통계를 로드할 수 없습니다."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "워드프레스닷컴 사이트의 오늘 활동을 최신 상태로 유지하세요."; + +/* Title of today widget */ +"widget.today.title" = "오늘"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "워드프레스에 로그인하여 오늘 통계를 참조하세요."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "미리보기 사용할 수 없음"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "뷰"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "방문자"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "을(를) 이후에 사용할 수 없게 됩니다."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• 사용자 및 글쓴이"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "최고 조회수"; -"widget.alltime.posts.label" = "글"; -"widget.today.comments.label" = "댓글"; -"widget.today.likes.label" = "좋아요"; -"widget.today.title" = "오늘"; -"widget.today.views.label" = "뷰"; -"widget.today.visitors.label" = "방문자"; diff --git a/WordPress/Resources/nb.lproj/Localizable.strings b/WordPress/Resources/nb.lproj/Localizable.strings index 3565c9899d73..c8ecb38509dd 100644 --- a/WordPress/Resources/nb.lproj/Localizable.strings +++ b/WordPress/Resources/nb.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-08-10 14:16:12+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:27:59+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: nb_NO */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d liking"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "En oversiktover nettsteder under denne kontoen."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Takk til"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatiske oppdateringer"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blogg"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Sjekk din nettstedstatistikk"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Sjekker kjøp..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Velg et tema"; /* Label for Publish time picker */ "Choose a time" = "Velg en tid"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Fullført: Sett nettstedstittelen"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Koble til en annen konto"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Koble til en side"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Koble til en annen side"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Kopier lenke til kommentar"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Kopier blokk"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Lag et stikkord"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Lag et nytt nettsted"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Har du ikke en konto? _Registrer deg_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Kladd"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Kladder"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Aktiver mikrofontilgang for å ta opp lyd i videoene dine."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Skru på deling av innlegg"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Fra en annen enhet"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Fra denne enheten"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Det er på tide! Kladd og publiser ditt første innlegg."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kursiv"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack vil optimalisere innleggene dine og servere dem fra en server i nærheten av brukerne dine. Ved hjelp av vårt globale innholdsleveringsnettverk vil innlastingshastigheten på siden din få en boost."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Bli med i en samtale: kommenter på innlegg fra blogger du følger."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Lær mer …"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Venstre"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Klassiske ikoner"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "La oss hjelpe"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Min profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Mitt nettsted"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mine nettsteder"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Ingen stikkord matcher ditt søk"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nei takk"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Ikke satt"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Ikke nå"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Ikke nok lagringsplass for å laste opp"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Personvern"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Personvern"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Hurtigstart"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Vurder oss på App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Svartekst"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Bestem tittel på nettstedet ditt"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setter opp tema"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Del din historie her..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Vis relaterte innlegg"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Vis passord"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Vist"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Vises offentlig når du kommenterer på blogger."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sosialt"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Kildekode"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Bytt til blokkredigering"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Bytter til Heading 1-skrifttypestørrelsen"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Vilkår for bruk"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Bruksregler"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Last opp medier"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Last opp et nettstedsikon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Opplasting feilet"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Vis alle"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Vis innlegg"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Venter..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Trenger du litt hjelp for å komme igang?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Sammen med deg går vi gjennom det grunnleggende når det gjelder å bygge et nettsted og få det til å gro."; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Vi har lagt til flere oppgaver for å hjelpe deg med å øke publikumet ditt."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Vi har gjort noen endringer i sjekklisten din"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org-utvidelsesside"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Verdenskart som viser visninger etter land."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ja"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ja, hjelp meg"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ja, vis meg"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Siden din vil ikke lenger sende data til WordPress.com og Jetpack-funksjoner vil ikke lenger virke. Du vil ikke lenger ha tilgang til siden fra appen, og du må legge den til på nytt med sidens innlogging."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Dine besøkende vil se ditt ikon i nettleseren. Legg til et tilpasset ikon for et skinnende og proft utseende."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Brukernavn og passord til siden din blir ikke lagret, og brukes bare for å installere Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Beste visninger noensinne"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Innlegg"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Kommentarer"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Liker"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "I dag"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visninger"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Besøkere"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "vil være utilgjengelig i fremtiden."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Brukere og forfattere"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Beste visninger noensinne"; -"widget.alltime.posts.label" = "Innlegg"; -"widget.today.comments.label" = "Kommentarer"; -"widget.today.likes.label" = "Liker"; -"widget.today.title" = "I dag"; -"widget.today.views.label" = "Visninger"; -"widget.today.visitors.label" = "Besøkere"; diff --git a/WordPress/Resources/nl.lproj/Localizable.strings b/WordPress/Resources/nl.lproj/Localizable.strings index 41bcb5e3711b..24244c0d5bac 100644 --- a/WordPress/Resources/nl.lproj/Localizable.strings +++ b/WordPress/Resources/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 21:43:46+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:42:39+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: nl */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ om bedreigingen op te lossen."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d reactie"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d reacties"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Een bestand bevat een kwaadaardig codepatroon"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Een lijst van sites op dit account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Een nieuwe manier om boeiende inhoud op je site te maken en te publiceren."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account gesloten"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Referenties"; /* Theme Activate action title */ @@ -607,7 +611,7 @@ translators: Block name. %s: The localized block name */ "Address line %@" = "Adresregel %@"; /* Adds a post to My Likes. Spoken Hint. */ -"Adds this post to My Likes" = "Voegt dit bericht toe aan 'Mijn Likes'"; +"Adds this post to My Likes" = "Voegt dit bericht toe aan 'Mijn likes'"; /* Title for the advanced section in site settings screen */ "Advanced" = "Geavanceerd"; @@ -779,7 +783,7 @@ translators: Block name. %s: The localized block name */ "Applies the setting" = "Past de instelling toe"; /* Apply action on the app extension tags picker screen. Saves the selected tags for the post. */ -"Apply" = "Bevestig"; +"Apply" = "Toepassen"; /* Approve action. Verb Approve comment (verb) @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Deel nieuwe berichten automatisch op je social media, om te starten met het brengen van dat publiek naar je site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic familie"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatische updates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blokken zijn stukjes inhoud die je kunt invoegen, herschikken en stylen zonder dat je hoeft te weten hoe je moet coderen. Blokken zijn een gemakkelijke en moderne manier voor je om mooie lay-outs te maken."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Controleer je site-statistieken"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Bekijk je site titel"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Aankopen worden gecontroleerd..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Kies een nieuw app pictogram"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Kies een site om te openen."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Kies een thema"; /* Label for Publish time picker */ "Choose a time" = "Kies een tijd"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Kies een unieke site pictogram"; + /* No comment provided by engineer. */ "Choose audio" = "Kies audio"; @@ -1538,7 +1555,7 @@ translators: Block name. %s: The localized block name */ "Comment" = "Reactie"; /* Title for the `comment likes` setting */ -"Comment Likes" = "Reactie Likes"; +"Comment Likes" = "Reactie likes"; /* Message displayed when approving a comment succeeds. */ "Comment approved." = "Reactie goedgekeurd."; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Afgerond: Kies je site statistieken"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Afgerond: bekijk je sitetitel"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Afgerond: Kies een thema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Afgerond: kies een unieke site pictogram"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Afgerond: Ga verder met de site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Afgerond: Bewerk je homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Afgerond: Schakel berichten delen in"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Afgerond: Verken abonnementen"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Afgerond: Beoordeel site pagina's"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Afgerond: Stel je sitetitel in"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Afgerond: Upload een site pictogram"; +"Completed: Social sharing" = "Afgerond: sociaal delen"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Afgerond: Bekijk je site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Verbind een account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Verbind een site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Verbinden met een andere site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Verbind met meer netwerken"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Kopieer link naar reactie"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Kopieer URL van het klembord, %s"; + /* No comment provided by engineer. */ "Copy block" = "Blok kopieren"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Maak een tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Maak een nieuwe site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Heb je geen account? _Aanmelden_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Concept"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Stel een bericht op en publiceer het."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Concepten"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Toegang tot microfoon inschakelen om geluid op te nemen in je video's."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Berichten delen inschakelen"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Van ander apparaat"; +/* No comment provided by engineer. */ +"From clipboard" = "Van klembord"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Van dit apparaat"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Het is tijd om te bloggen!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "De tijd is aangebroken! Stel je allereerste bericht op en publiceer het."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Cursief"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack zal jouw afbeeldingen optimaliseren en serveren van een server locatie het dichtstbij jouw bezoekers. Ons globale content delivery network zal de laadtijd van jouw site verkorten."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Doe mee van overal"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Deelnemen aan een gesprek: reageer op berichten uit blogs die je volgt."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Meer informatie..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Leer de grondbeginselen met een snelle wandeling door het programma."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Links"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Verouderde pictogrammen"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Wettelijk en meer"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Laat ons je helpen"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Mijn profiel"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Mijn site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mijn sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Er komen geen tags overeen met je zoekopdracht"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nee, liever niet"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Niet ingesteld"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Niet nu"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Niet genoeg ruimte om te uploaden"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacybeleid"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Snel start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Waardeer ons"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Beoordeel ons in de App Store"; @@ -5766,7 +5790,7 @@ translators: Block name. %s: The localized block name */ "Removes location metadata from photos before uploading them to your site." = "Verwijdert locatiegegevens uit foto's alvorens ze naar je site te uploaden."; /* Removes a post from My Likes. Spoken Hint. */ -"Removes this post from My Likes" = "Verwijder dit bericht uit 'Mijn Likes'"; +"Removes this post from My Likes" = "Verwijder dit bericht uit 'Mijn likes'"; /* Explanation of what will happen if the user confirms this alert. */ "Removing Next Steps will hide all tours on this site. This action cannot be undone." = "Door 'Volgende stappen' te verwijderen, worden alle rondleidingen op deze site verborgen. Deze actie kan niet ongedaan worden gemaakt."; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Antwoordtekst"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Antwoord aan %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Stel je blogging herinneringen in"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Stel je site titel in"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Thema instellen"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Deel link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Deel met vrienden"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Deel hier je verhaal..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Toon gerelateerde berichten"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Leid me rond"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Toon wachtwoord"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Getoond"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Wordt getoond in de browser tab van je bezoeker en op andere plaatsen online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Wordt openbaar getoond als je reageert op blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sociaal"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Sociaal delen"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Sommige blokken hebben extra instellingen. Tik op het instellingen-pictogram rechts onderaan het blok om meer opties te zien."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sortering en filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Broncode"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Overschakelen naar de blok-editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Overgeschakeld naar HTML modus"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Overgeschakeld naar visuele modus"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Wisselt naar de Heading 1 lettergrootte"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Algemene voorwaarden"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Servicevoorwaarden"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Site meldingen zijn ingeschakeld"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7911,7 +7954,7 @@ translators: Block name. %s: The localized block name */ "Updates the bar chart to show comments." = "Staafgrafiek wordt bijgewerkt om reacties te tonen."; /* Accessibility hint for the Likes button in Stats Overview. */ -"Updates the bar chart to show likes." = "Staafgrafiek wordt bijgewerkt om likes te tonen."; +"Updates the bar chart to show likes." = "Staafgrafiek wordt geūpdate om likes te tonen."; /* Accessibility hint for the Views button in Stats Overview. */ "Updates the bar chart to show views." = "Staafgrafiek wordt bijgewerkt om weergaven te tonen."; @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Media uploaden"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload een favicon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Uploaden mislukt"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Alles weergeven"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "Bekijk alle reacties"; + /* Button label for viewing a post */ "View Post" = "Bekijk bericht"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Wachten..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Heb je hulp nodig om aan de slag te kunnen gaan?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Wil je een beetje hulp bij het beheren van deze site met de app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8372,7 +8415,7 @@ translators: Block name. %s: The localized block name */ "We'll notify you when you get followers, comments, and likes." = "We sturen je een melding bij nieuwe volgers, reacties en vind-ik-leuks."; /* Body text of the first alert preparing users to grant permission for us to send them push notifications. */ -"We'll notify you when you get new followers, comments, and likes. Would you like to allow push notifications?" = "We brengen je op de hoogte als je nieuwe volgers, reacties en vind-ik-leuks krijgt. Wil je pushberichten toestaan?"; +"We'll notify you when you get new followers, comments, and likes. Would you like to allow push notifications?" = "We brengen je op de hoogte als je nieuwe volgers, reacties en likes krijgt. Wil je pushberichten toestaan?"; /* Text displayed in notice after a page if published while offline. */ "We'll publish the page when your device is back online." = "We publiceren de pagina wanneer je apparaat weer online is."; @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We proberen nog steeds om je site terug te zetten."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We lopen je door de basis om je site te bouwen en te laten groeien"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We werken hard aan het toevoegen van ondersteuning voor %s voorbeelden. In de tussentijd kan je een voorbeeld van de ingesloten inhoud van de pagina bekijken."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We werken hard aan het toevoegen van ondersteuning voor %s voorbeelden. In de tussentijd kan je een voorbeeld van de ingesloten inhoud van het bericht bekijken."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We hebben meer taken toegevoegd om je te helpen om je publiek te laten groeien."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We hebben enkele wijzigingen gemaakt aan je checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We hebben onze aangepaste app pictogrammen geüpdatet met een frisse nieuwe look. Er zijn 10 nieuwe stijlen om uit te kiezen, of je kunt gewoon je bestaande pictogram behouden als je dat wilt."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org plugin pagina"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Werk met ons samen"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Wereldkaart die het aantal weergaven per land toont."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ja"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ja, help mij"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ja, toon me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Je kunt blokken herschikken door op een blok te tikken en dan op de omhoog en omlaag pijlen te tikken die links onderaan het blok verschijnen om het boven of onder andere blokken te zetten."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "Je kunt op elk moment van site veranderen."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Je kunt dit op elk gewenst moment updaten via Mijn site > site-instellingen"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Je site zal geen gegevens meer versturen naar WordPress.com en Jetpack functies zullen niet meer werken. Je zal geen toegang meer hebben tot de site via de app en je moet deze opnieuw toevoegen met de inloggegevens van de site."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Je bezoekers zien je pictogram in hun browser. Voeg een aangepast pictogram toe voor een stijlvolle, professionele look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "De inloggegevens voor je website zullen niet worden opgeslagen en worden alleen gebruikt om Jetpack te installeren."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "bezoek onze documentatie pagina"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Best bekeken ooit"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Berichten"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Blijf op de hoogte met de activiteit allertijden op je WordPress site."; + +/* Title of all time widget */ +"widget.alltime.title" = "Allertijden"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Log in bij WordPress om de statistieken allertijden te zien."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Blijf op de hoogte met de activiteit van deze week op je WordPress site."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Deze week"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Log in bij WordPress om de statistieken van deze week te zien."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Reacties"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Kan site statistieken niet laden."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Blijf op de hoogte van de activiteiten van vandaag op je WordPress site."; + +/* Title of today widget */ +"widget.today.title" = "Vandaag"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Log in bij WordPress om de statistieken van vandaag te zien."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Weergave is niet beschikbaar"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Weergaven"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Bezoekers"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "is in de toekomst niet meer beschikbaar."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Gebruikers en auteurs"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Best bekeken ooit"; -"widget.alltime.posts.label" = "Berichten"; -"widget.today.comments.label" = "Reacties"; -"widget.today.likes.label" = "Waarderingen"; -"widget.today.title" = "Vandaag"; -"widget.today.views.label" = "Weergaven"; -"widget.today.visitors.label" = "Bezoekers"; diff --git a/WordPress/Resources/pl.lproj/Localizable.strings b/WordPress/Resources/pl.lproj/Localizable.strings index c90806e7e95f..5de7957e5bcc 100644 --- a/WordPress/Resources/pl.lproj/Localizable.strings +++ b/WordPress/Resources/pl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-09-24 11:30:08+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:34:51+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: pl */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Szkic"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Italic"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Left"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "My Profile"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "My Site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "My Sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacy"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Rate us on the App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Share your story here..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Show Related Posts"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Source Code"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Terms of Service"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Upload failed"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "View All"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Tak"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Wpisy"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komentarze"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Dzisiaj"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Views"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitors"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Wpisy"; -"widget.today.comments.label" = "Komentarze"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Dzisiaj"; -"widget.today.views.label" = "Views"; -"widget.today.visitors.label" = "Visitors"; diff --git a/WordPress/Resources/pt-BR.lproj/Localizable.strings b/WordPress/Resources/pt-BR.lproj/Localizable.strings index f3c0e6031e97..cf2979120242 100644 --- a/WordPress/Resources/pt-BR.lproj/Localizable.strings +++ b/WordPress/Resources/pt-BR.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-13 16:48:38+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:26:19+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: pt_BR */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ para corrigir ameaças."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d curtida"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Um arquivo contém um padrão de código malicioso"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Uma lista de sites dessa conta."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Uma nova maneira de criar e publicar conteúdos atraentes em seu site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Conta encerrada"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Agradecimentos"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Atualizações automáticas"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Veja as estatísticas de seu site"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Verificando compras..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Escolher um novo ícone para o aplicativo"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Escolha um tema"; /* Label for Publish time picker */ "Choose a time" = "Escolha um horário"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Escolher áudio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Concluído: Verificar as estatísticas do site"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Concluído: Escolher um tema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Concluído: Continuar com as configurações do site"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Concluído: Edite sua página inicial"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Concluído: Ative compartilhamento de posts"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Concluído: Explorar planos"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Concluído: Revise as páginas do site"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Concluído: Definir o título do site"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Concluído: Envie um ícone do site"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Concluído: Ver seu site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Conectar usando outra conta"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Conectar um site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Conectar outro site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Conectar mais redes"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copiar link para o comentário"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copiar bloco"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Criar uma tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Criar um novo site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Não tem uma conta? _Cadastre-se_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Rascunho"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Rascunhos"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Ative o acesso ao microfone para gravar áudio em seus vídeos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Ative compartilhamento de post"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "De outro dispositivo"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Deste dispositivo"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Está na hora de publicar!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Está na hora! Escreva e publique seu primeiro post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Itálico"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "O Jetpack otimizará as suas imagens e as entregará a partir de um servidor localizado mais perto dos seus visitantes. Usando redes globais de entrega de conteúdo (CDNs) você aumentará a velocidade de carregamento do seu site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Participe de uma conversa: comente em posts de blogs que você segue."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Saiba mais..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "À esquerda"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Ícones antigos"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Podemos ajudar você"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Meu perfil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Meu site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Meus sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Nenhuma tag corresponde à sua pesquisa"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Não obrigado"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Não informado"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Agora não"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Não há espaço suficiente para enviar"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacidade"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Política de Privacidade"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Início rápido"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Avalie-nos na App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Texto de resposta"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Responder para %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Configurar lembretes para publicação"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Defina o título do seu site"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Configurando o tema"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Compartilhar link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Compartilhe sua história aqui..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Exibir posts relacionados"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Mostrar senha"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Mostrando senha"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Exibido publicamente quando você comenta em blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Alguns blocos tem configurações extras. Toque o ícone de configurações no canto inferior direito do bloco para ver mais opções."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Ordenação e filtros"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Código-fonte"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Mudar para o editor de blocos"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Alterna para o tamanho de cabeçalho 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Termos e condições"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Termos de serviço"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Notificações do site ativadas"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Fazer upload de mídia"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Envie um ícone do site"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Falha ao carregar"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Visualizar tudo"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Ver post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Aguardando..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Quer uma ajudinha para começar?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Ainda tentaremos restaurar seu site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Nós te guiaremos pelos passos básicos para construir e melhorar seu site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Estamos trabalhando para adicionar suporte à pré-visualização de %s. Enquanto isso, você pode visualizar a mídia incorporada diretamente no post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Adicionamos mais dicas para ajudar a aumentar sua audiência."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Fizemos algumas alterações na lista"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Atualizamos os ícones personalizados de nosso aplicativo para um visual mais moderno. Agora há 10 novos estilos para escolher ou você pode continuar usando o atual."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Página do plugin no WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mapa do mundo mostrando visualizações por país."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Sim"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Sim, me ajude"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Sim, me mostre"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Você pode reorganizar os blocos tocando em um bloco e, em seguida, nas setas para cima e para baixo que aparecem no canto inferior esquerdo do bloco para movê-lo acima ou abaixo de outros blocos."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Você pode atualizar isso a qualquer momento em Meu site > Configurações do site"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Seu site deixará de enviar dados para o WordPress.com e os recursos do Jetpack pararão de funcionar. Você perderá o acesso ao seu site pelo aplicativo e você terá que adicioná-lo novamente com as credenciais do site."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Seus visitantes verão seu ícone em seus navegadores. Adicione um ícone personalizado para uma melhor aparência."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Os dados de acesso ao seu site não serão armazenados e serão usados unicamente para instalar o Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visite a nossa página de documentação"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Melhores visualizações"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "widget.alltime.posts.label"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comentários"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Curtidas"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Hoje"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visualizações"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitantes"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "ficará indisponível no futuro."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Usuários e autores"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Melhores visualizações"; -"widget.today.comments.label" = "Comentários"; -"widget.today.likes.label" = "Curtidas"; -"widget.today.title" = "Hoje"; -"widget.today.views.label" = "Visualizações"; -"widget.today.visitors.label" = "Visitantes"; diff --git a/WordPress/Resources/pt.lproj/Localizable.strings b/WordPress/Resources/pt.lproj/Localizable.strings index ddcd32b75a3b..02f105eca4a6 100644 --- a/WordPress/Resources/pt.lproj/Localizable.strings +++ b/WordPress/Resources/pt.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2020-12-04 08:57:48+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:31:12+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: pt */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Actualizações automáticas"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Site"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "A verificar compras..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Ligar outra conta"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Ligar um site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Ligar outro site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Rascunho"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Rascunhos"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Itálico"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Saiba mais..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Esquerda"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Deixe-nos ajudar"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "O meu perfil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "O meu site"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Os meus sites"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privacidade"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Política de privacidade"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Classifique-nos na App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Texto de resposta"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Partilhe aqui a sua história..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Mostrar artigos relacionados"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Mostrado publicamente quando comenta em sites."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Código fonte"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Termos do serviço"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Carregar multimédia"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "O carregamento falhou."; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Ver tudo"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Ver artigo"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Página do plugin em WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Sim"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Sim, mostrar-me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Conteúdos"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comentários"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Gostos"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Hoje"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visualizações"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Visitantes"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "irá estar indisponível de futuro."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Utilizadores e autores"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Conteúdos"; -"widget.today.comments.label" = "Comentários"; -"widget.today.likes.label" = "Gostos"; -"widget.today.title" = "Hoje"; -"widget.today.views.label" = "Visualizações"; -"widget.today.visitors.label" = "Visitantes"; diff --git a/WordPress/Resources/ro.lproj/Localizable.strings b/WordPress/Resources/ro.lproj/Localizable.strings index 5d0321b73f86..5d52ee6139f4 100644 --- a/WordPress/Resources/ro.lproj/Localizable.strings +++ b/WordPress/Resources/ro.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-25 14:07:06+0000 */ +/* Translation-Revision-Date: 2021-11-30 16:37:39+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n == 0 || n % 100 >= 2 && n % 100 <= 19) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ro */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ pentru a înlătura amenințările."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d comentariu"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d comentarii"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "O apreciere"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Un fișier conține un model de cod care poate crea vulnerabilități"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "O listă cu site-uri asociate cu acest cont."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Un mod nou de a crea și publica conținut captivant pe site-ul tău."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Cont închis"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Certificări"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Partajează automat articolele noi pe rețelele sociale pentru a începe să atragi public pe site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Familia Automattic"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Actualizări automate"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocurile sunt părți de conținut pe care le poți insera, rearanja și folosi în forma lor fără să scrii sau să modifici vreun cod. Blocurile sunt o modalitate ușoară și modernă de a crea aranjamente frumoase."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Vezi statisticile site-ului"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Verifică titlul site-ului"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Se verifică cumpărăturile..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Alege un icon nou pentru aplicație"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Alege un site pe care să îl deschizi."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Alege o temă"; /* Label for Publish time picker */ "Choose a time" = "Alege o oră"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Alege un icon unic pentru site"; + /* No comment provided by engineer. */ "Choose audio" = "Alege fișierul audio"; @@ -1544,7 +1561,7 @@ translators: Block name. %s: The localized block name */ "Comment approved." = "Comentariul a fost aprobat."; /* Message displayed when deleting a comment succeeds. */ -"Comment deleted." = "Comentariu șters."; +"Comment deleted." = "Comentariul a fost șters."; /* Displayed when a Comment is deleted */ "Comment has been deleted" = "Comentariul a fost șters"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Finalizat: vezi statistici site"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Finalizat: verifică titlul site-ului"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Finalizat: alege o temă"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Finalizat: alege un icon unic pentru site"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Finalizat: continuă cu inițializarea site-ului"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Pas finalizat: Editează prima pagină"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Finalizat: activează partajarea articolelor"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Finalizat: explorează planurile"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Finalizat: revizuiește paginile site-ului"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Finalizat: setează titlul site-ului"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Finalizat: încarcă un icon site"; +"Completed: Social sharing" = "Finalizat: partajare socială"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Finalizat: vezi site-ul"; @@ -1674,7 +1691,7 @@ translators: Block name. %s: The localized block name */ "Congratulations on completing your list. A job well done." = "Felicitări pentru finalizarea listei. Ai făcut o treabă bună."; /* Title of domain name purchase success screen */ -"Congratulations on your purchase!" = "Felicitări pentru achiziția ta!"; +"Congratulations on your purchase!" = "Felicitări, ai cumpărat!"; /* Verb. Tapping connects an account to Publicize. Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Conectează alt cont"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Conectează un site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Conectează un alt site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Conectează mai multe rețele"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copiază legătura în comentariu"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Plasează URL-ul din clipbord, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copiază blocul"; @@ -1923,7 +1937,7 @@ translators: Block name. %s: The localized block name */ "Create" = "Creează"; /* The button title text for creating a new account. */ -"Create Account" = "Creează cont"; +"Create Account" = "Creează un cont"; /* Title for button to make a blank page */ "Create Blank Page" = "Creează o pagină goală"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Creează o etichetă"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Creează un site nou"; /* Text shown when the account has no sites. */ @@ -1984,7 +1999,7 @@ translators: Block name. %s: The localized block name */ "Create downloadable file" = "Creează un fișier care se poate descărca"; /* No comment provided by engineer. */ -"Create embed" = "Creează înglobare"; +"Create embed" = "Creează o înglobare"; /* No comment provided by engineer. */ "Create link" = "Creează o legătură"; @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Nu ai un cont? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Ciornă"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Redactează și publică un articol."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Ciorne"; @@ -2552,7 +2569,7 @@ translators: Block name. %s: The localized block name */ "Edit new posts and pages with the block editor." = "Editează articole și pagini noi cu editorul de blocuri."; /* Title for button that will open up the blogging reminders screen. */ -"Edit reminders" = "Editează reamintiri"; +"Edit reminders" = "Editează reamintirile"; /* Title for the edit sharing buttons section */ "Edit sharing buttons" = "Editare butoane de partajare"; @@ -2663,7 +2680,7 @@ translators: Block name. %s: The localized block name */ "Enable" = "Activează"; /* Text shown when the site doesn't have the Publicize module enabled. */ -"Enable Publicize" = "Activează Publicizare"; +"Enable Publicize" = "Activează Publicitate"; /* Title of a row displayed on the debug screen used in debug builds of the app */ "Enable Quick Start for Site" = "Activează Inițiere rapidă pentru site"; @@ -2680,8 +2697,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Activează accesul la microfon pentru a înregistra sunetul în videourile tale."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Activează partajarea articolelor"; /* Message prompting user to enable site notifications. */ @@ -2814,7 +2830,7 @@ translators: Block name. %s: The localized block name */ "Error marking comment as spam." = "Eroare la marcarea comentariului ca spam."; /* Message displayed when trashing a comment fails. */ -"Error moving comment to trash." = "Eroare la mutarea comentariului la gunoi."; +"Error moving comment to trash." = "Eroare la aruncarea comentariului la gunoi."; /* Text displayed in HUD while a post revision is being loaded. */ "Error occurred\nduring loading" = "A apărut o eroare\nîn timpul încărcării"; @@ -3187,7 +3203,7 @@ translators: Block name. %s: The localized block name */ "Free Photo Library" = "Bibliotecă de fotografii gratuite"; /* Label shown for domains that will be free for the first year due to the user having a premium plan with available domain credit. */ -"Free for the first year " = "Gratuit pentru primul an"; +"Free for the first year " = "Gratuit în primul an"; /* Explanatory text for clearing device media cache. */ "Free up storage space on this device by deleting temporary media files. This will not affect the media on your site." = "Ștergând fișierele media temporare, eliberezi spațiul de stocare pe acest dispozitiv. Acest lucru nu va afecta fișierele media de pe site-ul tău."; @@ -3198,6 +3214,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "De pe alt dispozitiv"; +/* No comment provided by engineer. */ +"From clipboard" = "Din clipbord"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "De pe acest dispozitiv"; @@ -3550,7 +3569,7 @@ translators: Block name. %s: The localized block name */ "In a few words, explain what this site is about." = "Descrie în câteva cuvinte acest site."; /* Title of button to enable publicize. */ -"In order to share your published posts to your social media you need to enable the Publicize module." = "Pentru a partaja articolele publicate pe rețelele de socializare, trebuie să activezi extensia Publicizare."; +"In order to share your published posts to your social media you need to enable the Publicize module." = "Pentru a partaja articolele publicate pe media socială, trebuie să activezi extensia Publicitate."; /* The app successfully disabled notifications for the subscription */ "In-app notifications disabled" = "Notificările în aplicație sunt dezactivate"; @@ -3709,9 +3728,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Azi trebuie să publici!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Acum e momentul! Redactează și publică-ți primul articol."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Cursiv"; @@ -3785,6 +3801,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack îți va optimiza imaginile și le va servi vizitatorilor de la un server situat în apropierea lor. Folosirea rețelei noastre globale de livrare a conținutului îți va crește viteza de încărcare a site-ului."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Alătură-te de oriunde"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Alătură-te unei conversații: comentează la articolele de pe blogurile pe care le urmărești."; @@ -3851,12 +3870,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Află mai mult..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Învață elementele de bază cu o scurtă introducere."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Stânga"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Iconuri vechi"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal și altele"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Lasă-ne să ajutăm"; @@ -3911,7 +3936,7 @@ translators: Block name. %s: The localized block name */ "Link Address (URL)" = "Adresă legătură (URL)"; /* Link copied to clipboard notice title */ -"Link Copied to Clipboard" = "Legătură copiată pe clipbord"; +"Link Copied to Clipboard" = "Am copiat legătura în clipboard"; /* Link name field placeholder */ "Link Name" = "Nume legătură"; @@ -4374,13 +4399,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Profilul meu"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Site-ul meu"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Site-urile mele"; /* Siri Suggestion to open My Sites */ @@ -4690,7 +4713,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Nu s-a potrivit nicio etichetă cu căutarea ta"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nu, mulțumesc"; /* Text displayed when theme name search has no matches */ @@ -4717,9 +4741,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Nesetată"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Nu, de această dată"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Nu există suficient spațiu pentru încărcare"; @@ -4801,7 +4822,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5463,7 +5483,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Confidențialitate"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Politică de confidențialitate"; /* Register Domain - Privacy Protection section header title */ @@ -5511,7 +5532,7 @@ translators: Block name. %s: The localized block name */ "Public" = "Public"; /* Insights 'Publicize' header */ -"Publicize" = "Publicizare"; +"Publicize" = "Publicitate"; /* Message to show when Publicize connection synchronization failed */ "Publicize connection synchronization failed" = "Conexiunea de sincronizare pentru a face publicitate a eșuat"; @@ -5601,6 +5622,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Inițiere rapidă"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Evaluează-ne"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Evaluează-ne în App Store"; @@ -5815,6 +5839,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Text pentru răspuns"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Răspunde-i lui %1$@"; @@ -6345,9 +6370,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Setează reamintirile pentru publicare"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Setează titlul site-ului"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Inițializez tema"; @@ -6392,6 +6414,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Partajează legătura"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Partajează cu prietenii"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Distribuie-ți povestea aici..."; @@ -6433,6 +6458,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Arată articole similare"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Arată-mi ce să fac"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Arată parola"; @@ -6455,6 +6483,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Vizibilă"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Este afișat în fila navigatoarelor vizitatorilor tăi și în alte locuri online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Arată public când comentezi pe bloguri."; @@ -6616,6 +6647,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Partajare socială"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Unele blocuri au setări suplimentare. Atinge iconul setări din dreapta jos a blocului pentru a vedea mai multe opțiuni."; @@ -6705,7 +6739,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sortare și filtrare"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Cod sursă"; /* Label for showing the available disk space quota available for media */ @@ -6846,6 +6881,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Comută la editorul de blocuri"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Am comutat la modul HTML"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Am comutat la modul vizual"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Comută la dimensiune font Subtitlu 1"; @@ -6991,7 +7032,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Termeni și condiții"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Termenii de funcționare a serviciului"; /* Menu item label for linking a testimonial post. */ @@ -7613,7 +7655,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Notificările pe site sunt activate"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7937,9 +7980,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Încarcă media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Încarcă un icon pentru site"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Încărcare eșuată"; @@ -8091,6 +8131,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Vezi toate"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "Vezi toate comentariile"; + /* Button label for viewing a post */ "View Post" = "Vezi articolul"; @@ -8197,8 +8240,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Așteaptă..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Vrei un pic de ajutor pentru a începe?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Vrei puțin ajutor ca să-ți administrezi site-ul cu aplicația?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8490,21 +8533,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Vom încerca oricum să-ți restaurăm site-ul."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Vom parcurge elementele de bază pentru construirea și dezvoltarea site-ului"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Lucrăm din greu ca să adăugăm suport pentru previzualizări %s. Între timp, poți previzualiza conținutul înglobat în pagină."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Lucrăm din greu ca să adăugăm suport pentru previzualizări %s. Între timp, poți previzualiza conținutul înglobat în articol."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Am adăugat mai multe sarcini pentru a te ajuta să-ți crești audiența."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Am făcut câteva modificări în lista de verificări"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Am actualizat iconurile personalizate pentru aplicație, au un alt aspect. Poți alege din 10 stiluri noi sau, dacă nu vrei, poți păstra iconul existent."; @@ -8667,6 +8701,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Pagină modul WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Lucrează cu noi"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Harta lumii care arată vizualizările pe țară."; @@ -8713,9 +8750,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Da"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Da, ajută-mă"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Da, arată-mi"; @@ -8759,6 +8793,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Poți rearanja blocurile prin atingerea unui bloc și apoi a săgeților sus și jos care apar în stânga jos a blocului pentru a-l muta mai sus sau sub alte blocuri."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "Poți comuta între site-uri în orice moment."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Poți actualiza oricând mergând la Site-ul meu > Setări site"; @@ -8985,9 +9022,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Site-ul tău nu va mai trimite date la WordPress.com, iar funcționalitățile Jetpack vor înceta să funcționeze. Vei pierde accesul la site prin aplicație și va trebui să-l adaugi din nou cu datele lui de conectare."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Vizitatorii îți vor vedea iconul în navigatoarele lor. Adaugă un icon personalizat pentru un aspect cizelat și profesionist."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Datele de conectare ale site-ului tău web nu vor fi stocate și sunt folosite numai în scopul de a instala Jetpack."; @@ -9122,6 +9156,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "vizitează pagina cu documentație"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Cele mai multe vizualizări"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Articole"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Ești la curent cu toate activitățile pe site-ul tău WordPress."; + +/* Title of all time widget */ +"widget.alltime.title" = "Total general"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Autentifică-te în WordPress pentru a vedea toate statisticile."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Ești la curent cu activitățile din această săptămână pe site-ul tău WordPress."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Săptămâna aceasta"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Autentifică-te în WordPress pentru a vedea statisticile din această săptămână."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Comentarii"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Aprecieri"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Nu pot să încarc statisticile site-ului."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Ești la curent cu activitățile de azi pe site-ul tău WordPress."; + +/* Title of today widget */ +"widget.today.title" = "Azi"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Autentifică-te în WordPress pentru a vedea statisticile de azi."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Vizualizarea nu este disponibilă"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Vizualizări"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Vizitatori"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "va fi indisponibil în viitor."; @@ -9173,13 +9258,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Utilizatori și autori"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Cele mai multe vizualizări"; -"widget.alltime.posts.label" = "Articole"; -"widget.today.comments.label" = "Comentarii"; -"widget.today.likes.label" = "Plăcute"; -"widget.today.title" = "Azi"; -"widget.today.views.label" = "Vizualizări"; -"widget.today.visitors.label" = "Vizitatori"; diff --git a/WordPress/Resources/ru.lproj/Localizable.strings b/WordPress/Resources/ru.lproj/Localizable.strings index e08f5f62f4d3..26caec7d886c 100644 --- a/WordPress/Resources/ru.lproj/Localizable.strings +++ b/WordPress/Resources/ru.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 11:19:41+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:42:39+0000 */ /* Plural-Forms: nplurals=3; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : ((n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14)) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ru */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "Для устранения этих угроз %1$@."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d комментарий"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "Комментариев: %1$d"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d отметка \"нравится\""; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Файл содержит элемент вредоносного кода"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Список сайтов на этой учётной записи."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Новый способ создавать и публиковать захватывающее содержимое на вашем сайте."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Учётная запись закрыта"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Благодарность"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Автоматически делиться новыми записями в социальных сетях для привлечения аудитории на ваш сайт."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Семейство Automattic"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Автообновления"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Блоки - это части содержимого, которые можно вставлять, переставлять и стилизовать, без необходимости использования кода. Блоки - это простой и современный способ создавать красивые макеты."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Блог"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Проверить статистику сайта"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Проверьте название сайта"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Проверка покупок…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Выберите новый значок приложения"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Выберите сайт, чтобы открыть его."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Выберите тему"; /* Label for Publish time picker */ "Choose a time" = "Выберите время"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Выберите уникальный значок сайта"; + /* No comment provided by engineer. */ "Choose audio" = "Выберите аудио"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Готово: просмотр статистики сайта"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Готово: проверка названия сайта"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Готово: выбор темы"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Готово: Уникальный значок сайта выбран"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Готово: продолжение настроек сайта"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Готово: редактирование главной страницы"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Готово: включение возможности делиться записями"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Готово: ознакомление с тарифами"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Готово: обзор страниц сайта"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Готово: задать название сайта"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Готово: загрузка значка сайта"; +"Completed: Social sharing" = "Готово: Как поделиться в социальных сетях"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Готово: просмотр сайта"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Подключить еще одну учётную запись"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Подключить сайт"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Подключить еще сайт"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Подключить больше социальных сетей"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Скопировать ссылку в комментарий"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Скопировать URL из буфера обмена, %s"; + /* No comment provided by engineer. */ "Copy block" = "Копировать блок"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Создать метку"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Создание нового сайта"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Нет учетной записи? _Зарегистрироваться_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Черновик"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Создайте черновик и опубликуйте запись."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Черновики"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Включите доступ к микрофону для записи звука к вашим видео."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Включить возможность делиться записями"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "С другого устройства"; +/* No comment provided by engineer. */ +"From clipboard" = "Из буфера обмена"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "С этого устройства"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Самое время написать в блог!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Самое время! Создайте черновик и опубликуйте вашу первую запись."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Курсив"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack оптимизирует ваши изображения и отдает их посетителям с ближайшего к ним сервера. Использование нашей глобальной CDN ускорит загрузку вашего сайта."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Присоединяйтесь откуда угодно"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Присоединитесь к обсуждениям: оставьте комментарии к записям в блогах, на которые вы подписаны."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Подробнее..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Изучите основы с помощью быстрого пошагового руководства."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Слева"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Старые значки"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Юридические аспекты и прочее"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Обратитесь к нам за помощью."; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Мой профиль"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Мой сайт"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Мои сайты"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Нет меток по критериям поиска"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Нет, спасибо"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Не установлено"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Не сейчас"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Недостаточно места для загрузки"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Приватность"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Конфиденциальность"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Быстрый старт"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Оцените нас"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Оцените нас в App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Текст ответа"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Ответить на %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Установите напоминания о блоггинге"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Задайте название сайта"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Настройка темы"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Поделиться ссылкой"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Поделитесь с друзьями"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Расскажите свою историю..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Показывать похожие записи"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Давайте оглядимся"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Показать пароль"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Показано"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Показывается посетителям на вкладках браузера и некоторых других местах онлайн."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Отображается для всех пользователей, когда вы добавляете комментарии к блогам."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Соцсети"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Поделиться в социальных сетях"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Некоторые блоки имеют дополнительные настройки. Коснитесь значка настроек в правом нижнем углу блока, чтобы просмотреть дополнительные параметры."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Сортировка и фильтрация"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Исходный код"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Переключиться на редактор блоков"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Переход в режим HTML"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Переход в визуальный режим"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Переход к размеру шрифта Heading 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Правила и условия"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Условия сервиса"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Уведомления сайта включены"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Загрузить медиафайлы"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Загрузить значок сайта"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Ошибка загрузки"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Просмотреть все"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "Посмотреть все комментарии"; + /* Button label for viewing a post */ "View Post" = "Просмотреть запись"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Ожидайте..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Нужна небольшая подсказка как начать?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Нужна помощь по управлению сайтом через приложение?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Мы всё еще пытаемся восстановить ваш сайт."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Мы проведем вас по основам создания и развития вашего сайта"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Мы усердно работаем над добавлением поддержки для просмотра объектов типа %s. А пока вы можете предварительно просмотреть встроенное содержимое на странице."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Мы усердно работаем над добавлением поддержки для просмотра объектов типа %s. А пока вы можете предварительно просмотреть встроенное содержимое в записи."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Мы добавили больше задач для того, чтобы помочь вам увеличить аудиторию."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Мы внесли некоторые изменения в ваш список"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Мы обновили наши пользовательские значки приложений, придав им новый вид. Есть 10 новых стилей на выбор, или вы можете просто сохранить существующий значок, если хотите."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Страница плагина на WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Работа у нас"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Карта мира с представлением просмотров по странам."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Да"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Да, мне нужна помощь"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Да, покажите"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Вы можете переупорядочить блоки, нажав на блок, а затем нажав стрелки вверх и вниз, которые появляются в нижней левой части блока, чтобы переместить его выше или ниже других блоков."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "Вы можете переключить сайт в любое время."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Вы можете обновить это в любое время в Мой сайт > Настройки сайта"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Ваш сайт больше не будет отправлять данные на WordPress.com, и функции плагина Jetpack станут недоступны. Вы потеряете доступ к сайту из приложения и должны будете заново добавить его с учётными данными сайта."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Ваши посетители увидят этот значок в своем браузере. Добавьте пользовательский значок для стильного профессионального вида."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Ваши данные входа на сайт не сохраняются и будут использованы только для установки Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "посетите нашу страницу документации"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Максимальное число просмотров за всё время"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Записи"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Будьте в курсе всех действий на вашем сайте WordPress."; + +/* Title of all time widget */ +"widget.alltime.title" = "За всё время"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Войдите в WordPress для просмотра статистики за всё время."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Будьте в курсе всех действий на вашем сайте WordPress за эту неделю."; + +/* Title of this week widget */ +"widget.thisweek.title" = "На этой неделе"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Войдите в WordPress для просмотра статистики за неделю."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Комментарии"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "\"Нравится\""; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Не удалось загрузить статистику сайта."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Будьте в курсе всех действий за сегодня на вашем сайте WordPress."; + +/* Title of today widget */ +"widget.today.title" = "Cегодня"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Войдите в WordPress для просмотра статистики за сегодняшний день."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Просмотр недоступен"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Просмотры"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Посетители"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "в будущем будет недоступен."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Пользователи и авторы"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Максимальное число просмотров"; -"widget.alltime.posts.label" = "Записи"; -"widget.today.comments.label" = "Комментарии"; -"widget.today.likes.label" = "Любимое"; -"widget.today.title" = "Сегодня"; -"widget.today.views.label" = "Просмотры"; -"widget.today.visitors.label" = "Посетители"; diff --git a/WordPress/Resources/sk.lproj/Localizable.strings b/WordPress/Resources/sk.lproj/Localizable.strings index 1bff6a8519e1..b2d74817d8a2 100644 --- a/WordPress/Resources/sk.lproj/Localizable.strings +++ b/WordPress/Resources/sk.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-02-27 18:14:22+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:30:13+0000 */ /* Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ((n >= 2 && n <= 4) ? 1 : 2); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sk */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatické aktualizácie"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Kontrola nákupov"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Vyberte tému"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Pripojiť iný účet"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Pripojiť webovú stránku"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Pripojiť inú webovú stránku"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Skopírovať odkaz do komentáru"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Vytvoriť značku"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Ešte nemáš účet? _Zaregistruj sa_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Koncept"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Koncepty"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Je čas! Vytvorte a uverejnite svoj prvý príspevok."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kurzíva"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack zoptimalizuje obrázky a poskytne ich zo serveru umiestnenia, ktorý je najbližšie k vašim návštevníkom. Používanie odosielateľa siete všeobecným obsahom zvýšii načítavanie webovej stránky."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Pripojte sa ku konverzácii: komentujte príspevky z blogov, ktoré sledujete."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Naučiť sa viac..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Vľavo"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Pomôžeme"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Môj profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Moja webová stránka"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Moje stránky"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Žiadne značky nezodpovedajú vyhľadávaniu"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nie ďakujem"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Nie je nastavené"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Teraz nie "; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Nedostatok miesta na nahranie"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Súkromné"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Zásady ochrany osobných údajov"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Rýchly štart"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Ohodnoťte nás na App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Text odpovede"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Podeľte sa o svoj príbeh..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Zobraziť súvisiace články"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Zobraziť verejne keď komentujete blogy."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Zdrojový kód"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Prepnúť na veľkosť písma Nadpis 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Zmluvné podmienky"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Nahrať súbor"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Nahrávanie zlyhalo"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Zobraziť všetko"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Zobraziť príspevok"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Potrebujete pomoc na začiatku?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin stránka"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Áno"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Áno, ukázať"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Webová stránka nebude posielať údaje do WordPress.com a Jetpack funkcie prestanú pracovať. Prídete o prístup do webovej stránky cez aplikáciu. Budete ju musieť nanovo pridať s povereniami webovej stránky."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Články"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komentáre"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Likes"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Dnes"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Zobrazenia"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Návštevníci"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "v budúcnosti nebude k dispozícii."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Používatelia a autori"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "Články"; -"widget.today.comments.label" = "Komentáre"; -"widget.today.likes.label" = "Likes"; -"widget.today.title" = "Dnes"; -"widget.today.views.label" = "Zobrazenia"; -"widget.today.visitors.label" = "Návštevníci"; diff --git a/WordPress/Resources/sq.lproj/Localizable.strings b/WordPress/Resources/sq.lproj/Localizable.strings index 9d8cf8355872..5969913afa95 100644 --- a/WordPress/Resources/sq.lproj/Localizable.strings +++ b/WordPress/Resources/sq.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-07 10:04:27+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:24:11+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sq_AL */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "Që të zgjidhen kërcënimet, %1$@."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Pëlqim"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Një kartelë përmban rregullsi kodi dashakeq"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Një listë sajtesh në këtë llogari."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Një rrugë e re për të krijuar dhe botuar lëndë tërheqëse në sajtin tuaj."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Llogari e mbyllur"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Falënderime"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Ndani automatikisht me të tjerë postime të reja në media shoqërore, që të filloni ta sillni atë publik te sajti juaj."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Vetëpërditësime"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blloqet janë pjesë lënde që mund t’i futni, risistemoni dhe stilizoni pa u dashur të dini si të programoni. Blloqet janë një rrugë e lehtë dhe moderne për të krijuar skema të hijshme."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Ndiqni statistikat e sajtit tuaj"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Po kontrollohen blerjet…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Zgjidhni një ikonë të re aplikacioni"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Zgjidhni një temë"; /* Label for Publish time picker */ "Choose a time" = "Zgjidhni një kohë"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Zgjidhni audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "E plotësuar: Shihni statistikat e sajtit tuaj"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "E plotësuar: Zgjidhni një temë"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "E plotësuar: Vazhdoni me rregullimin e sajtit"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "U plotësua: Përpunoni faqen tuaj hyrëse"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "E plotësuar: Aktivizo ndarje postimesh me të tjerët"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "E plotësuar: Eksploroni plane"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "U plotësua: Shqyrtoni faqe sajti"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "E plotësuar: Caktoni titullin e sajtit tuaj"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "E plotësuar: Ngarkoni një ikonë sajti"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "E plotësuar: Shihni sajtin tuaj"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Lidhni Një Llogari Tjetër"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Lidhni një sajt"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Lidhni një sajt tjetër"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Lidhni më shumë rrjete"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Kopjo Lidhjen për te Komenti"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Kopjoje bllokun"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Krijoni një Etiketë"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Krijoni një sajt të ri"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "S’keni llogari? _Regjistrohuni_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Skicë"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Skica"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Aktivizoni përdorim mikrofoni për të incizuar zë në videot tuaja."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Aktivizo ndarje postimesh me të tjerët"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Prej një tjetër pajisje"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Prej kësaj pajisje"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Është koha të blogoni!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Erdhi dita! Hartoni dhe botoni postimin tuaj të parë fare."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Të pjerrëta"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack-u do t’i optimizojë figurat tuaja dhe shërbejë ato nga vendndodhje shërbyesi më afër vizitorëve tuaj. Përdorimi i rrjetit tonë global të shpërndarjes së lëndës do të fuqizojë shpejtësinë e ngarkimit të sajtit tuaj."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Hyni në një bisedë: komentoni postime prej blogjesh që ndiqni."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Mësoni më tepër…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Majtas"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Ikona të Dikurshme"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Le T’ju Ndihmojmë"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Profili Im"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Sajti Im"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Sajtet e Mi"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "S’ka etiketa që përputhen me kërkimin tuaj"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Jo, faleminderit"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "I pacaktuar"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Jo Këtë Herë"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Hapësirë e pamjaftueshme për ngarkim"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Privatësi"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Rregulla Privatësie"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Nisje e Shpejtë"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Vlerësonani në App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Tekst Përgjigjeje"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Përgjigje për %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Ujdisni kujtuesit tuaj për blogimin"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Caktoni titullin e sajtit tuaj"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Ujdisje teme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Ndajeni lidhjen me të tjerët"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Ndajeni shembullin tuaj me të tjerët…"; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Shfaqni Postime të Afërta"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Shfaqe fjalëkalimin"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "I shfaqur"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "E shfaqur publikisht kur komentoni në blogje."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Shoqërore"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Disa blloqe kanë rregullime shtesë. Që të shihni më tepër mundësi, prekni ikonën e rregullimeve poshtë djathtas bllokut."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Renditje dhe filtrim"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Kod Burim"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Kalo te përpunuesi me blloqe"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Kalohet te madhësia Titull 1 për shkronjat"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terma dhe Kushte"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Kushte Shërbimi"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "U aktivizuan njoftime sajti"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Ngarkoni Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Ngarkoni një ikonë sajti"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Ngarkimi dështoi"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Shihini Krejt"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Shiheni Postimin"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Po pritet…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Doni pakëz ndihmë për t’ia filluar?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Do të përpiqemi të rikthejmë sajtin tuaj."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Do t’ju heqim udhën nëpër hapat bazë të ndërtimit dhe fuqizimit të sajtit tuaj"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Po punojmë fort për shtimin e mbulimit të paraparjeve %s. Ndërkohë, lëndës së trupëzuar mund t’i bëni paraparje te faqja."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Po punojmë fort për shtimin e mbulimit të paraparjeve %s. Ndërkohë, lëndës së trupëzuar mund t’i bëni paraparje te postimi."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Kemi shtuar më tepër punë, për t’ju ndihmuar të shtoni publikun tuaj."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Bëmë ca ndryshime te lista juaj"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Kemi përditësuar ikonat tona të aplikacioneve, për një pamje të re. Ka 10 stile të rinj nga të zgjidhet, ose mundeni të mbani ikonën tuaj ekzistuese, nëse parapëlqeni."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Faqja e Shtojcës në WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Hartë e botës që tregon parje sipas vendesh."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Po"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Po, Ndihmomëni"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Po, tregoma"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Blloqet mund t’i risistemoni duke prekur mbi një bllok dhe mandej duke prekur shigjetat sipër dhe poshtë që shfaqen në anën e poshtme majtas bllokut, për t’i kaluar sipër ose poshtë blloqesh të tjerë."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Këtë mund ta përditësoni në çfarëdo kohe që nga Sajti Im > Rregullime Sajti"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Sajti juaj s’do të dërgojë më të dhëna te WordPress.com dhe veçoritë Jetpack do të reshtin së funksionuari. Do të humbni mundësinë e hyrjes në sajt që nga aplikacioni dhe do t’ju duhet ta rishtoni me kredenciale sajti."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Vizitorët tuaj do ta shohin në shfletuesin e tyre ikonën tuaj. Shtoni një ikonë vetjake, për një pamje të rafinuar, profesionale."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Kredencialet tuaja për në sajt nuk do të depozitohen dhe përdoren vetëm për qëllimin e instalimit të Jetpack-ut."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "vizitoni faqen tonë të dokumentimit"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Parjet më të mira ndonjëherë"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Postime"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Komente"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Pëlqime"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "Sot"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Parje"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Vizitorë"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "s’do të jetë më i passhëm në të ardhmen."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Përdorues & Autorë"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Parjet më të mira ndonjëherë"; -"widget.alltime.posts.label" = "Postime"; -"widget.today.comments.label" = "Komente"; -"widget.today.likes.label" = "Pëlqime"; -"widget.today.title" = "Sot"; -"widget.today.views.label" = "Parje"; -"widget.today.visitors.label" = "Vizitorë"; diff --git a/WordPress/Resources/sv.lproj/Localizable.strings b/WordPress/Resources/sv.lproj/Localizable.strings index 7d5cd69c3632..40f0a79b4648 100644 --- a/WordPress/Resources/sv.lproj/Localizable.strings +++ b/WordPress/Resources/sv.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-15 11:03:51+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:48:39+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sv_SE */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ för att åtgärda hoten."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d kommentar"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d kommentarer"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d gillar"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "En fil innehåller ett skadligt kodmönster"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "En lista med webbplatser på detta konto."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Ett nytt sätt att skapa och publicera engagerande innehåll på din webbplats."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Kontot har avslutats"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Erkännanden"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Dela automatiskt nya inlägg på social medier för att locka den publiken till webbplatsen."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic-familjen"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatiska uppdateringar"; @@ -1018,7 +1025,7 @@ translators: Block name. %s: The localized block name */ /* All Time Stats 'Best views ever' label Stats 'Best views ever' Label */ -"Best views ever" = "Bästa visningarna någonsin"; +"Best views ever" = "Flest visningar någonsin"; /* Text for related post cell preview */ "Big iPhone\/iPad Update Now Available" = "Stor iPhone\/iPad-uppdatering nu tillgänglig"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Block är innehållsbitar som du kan lägga in, sortera om och stilsätta utan att du behöver kunna programmera eller koda. Block är ett enkelt och modernt sätt för dig att skapa vackra layouter."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blogg"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Kolla statistiken för webbplatsen"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Kontrollera din webbplatsrubrik"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Kontrollerar inköp..."; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Välj en ny appikon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Välj en webbplats att öppna."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Välj ett tema"; /* Label for Publish time picker */ "Choose a time" = "Välj en tid"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Välj en unik webbplats-ikon"; + /* No comment provided by engineer. */ "Choose audio" = "Välj ljud"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Slutförd: Kontrollera statistik för din webbplats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Klart: Kontrollera din webbplatsrubrik"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Slutförd: Välj ett tema"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Klart: Välj en unik webbplats-ikon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Slutförd: Fortsätt med webbplatskonfigurationen"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Klart: Redigera din startsida"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Slutförd: Aktivera delning av inlägg"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Slutförd: Utforska planer"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Klart: Granska webbplatsens sidor"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Klart: Ange webbplatsens rubrik"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Slutförd: Ladda upp en webbplatsikon"; +"Completed: Social sharing" = "Klart: Social delning"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Slutförd: Visa din webbplats"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Anslut ett annat konto"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Anslut webbplats"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Anslut ytterligare webbplats"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Anslut fler nätverk"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Kopiera länk till kommentaren"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Kopiera URL från urklipp, %s"; + /* No comment provided by engineer. */ "Copy block" = "Kopiera block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Skapa en etikett"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Skapa en ny webbplats"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Har du inget konto? _Registrera dig_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Utkast"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Gör ett utkast och publicera ett inlägg."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Utkast"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Aktivera mikrofonåtkomst för att spela in ljud i dina videoklipp."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Aktivera delning av inlägg"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Från annan enhet"; +/* No comment provided by engineer. */ +"From clipboard" = "Från urklipp"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Från denna enhet"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Det är dags att blogga!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Det är dags! Skriv och publicera ditt allra första inlägg."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Kursivering"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack kommer att optimera dina bilder och leverera dem från den serverplats som finns närmast dina besökare. Din webbplats kommer att laddas snabbare tack vare ett globalt nät för innehållsdistribution."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Gå med från var som helst"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Börja diskutera: kommentera inlägg från bloggar du följer."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Läs vidare …"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Lär dig grunderna med hjälp av en snabb genomgång."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Vänster"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Äldre ikoner"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Juridiskt, m.m."; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Låt oss hjälpa till"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Min profil"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Min webbplats"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Mina webbplatser"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Inga etiketter motsvarar din sökning"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Nej tack"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Inte angivet"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Inte just nu"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Tillgängligt utrymme är inte tillräckligt för denna uppladdning"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Integritet"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Privacy Policy"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Snabbstart"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Betygsätt oss"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Betygsätt oss på App Store"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Svarstext"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Svar till %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Ställ in dina bloggningspåminnelser"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Ange webbplatsens rubrik"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Konfigurerar temat"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Dela länken"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Dela med vänner"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Berätta din historia här ..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "Visa relaterade inlägg"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Visa mig en rundtur"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Visa lösenord"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Visat"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Visas i besökarens webbläsarflik och på andra ställen på nätet."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Visas offentligt när du kommenterar på bloggar."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sociala nät"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social delning"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Vissa block har ytterligare inställningar. Tryck på ikonen för inställningar i blockets nedre högra hörn för att se fler alternativ."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sortering och filtrering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Källkod"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Växla till blockredigeraren"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Växlat till HTML-läge"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Växlat till visuellt läge"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Ändrar till fontstorleken för Rubrik 1"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Villkor"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Användarvillkor"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Webbplatsaviseringar har slagits på"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Ladda upp mediafiler"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Ladda upp en webbplatsikon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Uppladdningsfel"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Visa alla"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "Visa alla kommentarer"; + /* Button label for viewing a post */ "View Post" = "Se inlägget"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Väntar…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Vill du ha lite hjälp att komma igång?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Vill du ha lite hjälp med att hantera den här webbplatsen med appen?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Vi kommer ändå att försöka återställa din webbplats."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Vi hjälper dig genom grunderna i att bygga din webbplats och hitta fler läsare"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "Vi jobbar hårt på att lägga till stöd för förhandsgranskningar av %s. Tills dess kan du förhandsgranska det inbäddade innehållet på sidan."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "Vi jobbar hårt på att lägga till stöd för förhandsgranskning av %s. Tills dess kan du förhandsgranska det inbäddade innehållet i inlägget."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Vi har lagt till några extra åtgärder som hjälper dig att hitta fler läsare."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Vi har gjort några ändringar i din checklista"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Ikonerna för din anpassade app har fått ett nytta, fräscht utseende. Nu kan du välja någon av 10 olika nya stilar. Men om du vill kan också behålla den ikon du redan använder."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "Tilläggets sida på WordPress.org"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Jobba med oss"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Världskarta med antal visningar per land."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Ja"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Ja tack, hjälp mig"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Ja tack, visa mig"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Du kan ändra blockens ordning genom att trycka på ett block och sedan trycka på upp\/ned-pilarna som visas i blockets nedre vänstra hörn för att flytta blocket före eller efter andra block."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "Du kan byta webbplats när som helst."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Du kan uppdatera detta när som helst via Min webbplats > Webbplatsinställningar"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Din webbplats kommer inte längre att skicka uppgifter till WordPress.com och Jetpack-funktionerna kommer att sluta fungera. Du förlorar åtkomst till webbplatsen från appen och du kommer att behöva lägga till den igen med hjälp av inloggningsuppgifterna för webbplatsen."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Dina besökare kommer att se din ikon i sin webbläsare. Lägg till en anpassad ikon för ett genomarbetet och professionellt utseende."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Inloggningsuppgifterna till din webbplats används enbart för att installera Jetpack och de kommer inte att sparas."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "besök vår dokumentationssida"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Flest visningar någonsin"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Inlägg"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "Håll dig uppdaterad om statistiken sedan starten för din WordPress-webbplats."; + +/* Title of all time widget */ +"widget.alltime.title" = "Sedan starten"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Logga in i WordPress för att se statistik sedan starten."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "Håll dig uppdaterad om veckans statistik för din WordPress-webbplats."; + +/* Title of this week widget */ +"widget.thisweek.title" = "Denna vecka"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Logga in i WordPress för att se veckans statistik."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Kommentarer"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Gillamarkeringar"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Det gick inte att ladda webbplatsens statistik."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "Håll dig uppdaterad om statistiken för idag för din WordPress-webbplats."; + +/* Title of today widget */ +"widget.today.title" = "Idag"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Logga in i WordPress för att se statistiken för idag."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Vyn är inte tillgänglig"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Visningar"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Besökare"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "kommer inte att kunna nås i fortsättningen."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Användare och Skribenter"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Bästa visningarna någonsin"; -"widget.alltime.posts.label" = "Inlägg"; -"widget.today.comments.label" = "Kommentarer"; -"widget.today.likes.label" = "Gillamarkeringar"; -"widget.today.title" = "I dag"; -"widget.today.views.label" = "Visningar"; -"widget.today.visitors.label" = "Besökare"; diff --git a/WordPress/Resources/th.lproj/Localizable.strings b/WordPress/Resources/th.lproj/Localizable.strings index aa292422fc63..ec71ba82075c 100644 --- a/WordPress/Resources/th.lproj/Localizable.strings +++ b/WordPress/Resources/th.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2016-02-23 02:17:25+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:32:28+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: th */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@ to fix threats."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Like"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "A file contains a malicious code pattern"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "A list of sites on this account."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "A new way to create and publish engaging content on your site."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Account closed"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Acknowledgements"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Automatically share new posts to your social media to start bringing that audience over to your site."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Autoupdates"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "บล็อก"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Check your site stats"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Checking purchases…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Choose a new app icon"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Choose a theme"; /* Label for Publish time picker */ "Choose a time" = "Choose a time"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Choose audio"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Completed: Check your site stats"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completed: Choose a theme"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completed: Continue with site setup"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Completed: Edit your homepage"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Completed: Enable post sharing"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Completed: Explore plans"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completed: Review site pages"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Completed: Set your site title"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Completed: Upload a site icon"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completed: View your site"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Connect Another Account"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Connect a site"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Connect another site"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Connect more networks"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Copy Link to Comment"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Copy block"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Create a Tag"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Create a new site"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Don't have an account? _Sign up_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "โครงเรื่อง"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Drafts"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Enable microphone access to record sound in your videos."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Enable post sharing"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "From another device"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "From this device"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "It's time to blog!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "It's time! Draft and publish your very first post."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "ตัวเอียง"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Join a conversation: comment on posts from blogs you follow."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Learn more..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "ซ้าย"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Legacy Icons"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Let Us Help"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "ประวัติส่วนตัวของฉัน"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "เว็บของฉัน"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "เว็บไซต์ของฉัน"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "No tags matching your search"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "No thanks"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Not Set"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Not This Time"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Not enough space to upload"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "ส่วนตัว"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "นโยบายความเป็นส่วนตัว"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Quick Start"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "ให้คะแนนบนแอพสโตร์"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Reply Text"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "Reply to %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Set your blogging reminders"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Set your site title"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Setting up theme"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Share link"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "แบ่งปันเรื่องของคุณที่นี่..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "แสดงเรื่องที่เกี่ยวข้อง"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Show password"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Shown"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Shown publicly when you comment on blogs."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Social"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sorting and filtering"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "ซอร์สโค้ด"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Switch to block editor"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Switches to the Heading 1 font size"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Terms and Conditions"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "เงื่อนไขการใช้บริการ"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Turned on site notifications"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Upload Media"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Upload a site icon"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "การอัปโหลดล้มเหลว"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "ดูทั้งหมด"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "View Post"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Waiting..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Want a little help getting started?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "We’ll still attempt to restore your site."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "We’ll walk you through the basics of building and growing your site"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "We’ve added more tasks to help you grow your audience."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "We’ve made some changes to your checklist"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org Plugin Page"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "World map showing views by country."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "ใช่"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Yes, Help Me"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Yes, show me"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "You can update this any time via My Site > Site Settings"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Your website credentials will not be stored and are used only for the purpose of installing Jetpack."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "visit our documentation page"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "widget.alltime.bestviews.label"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "เรื่อง"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "ความเห็น"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "ชื่นชอบ"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "วันนี้"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "การดู"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "ผู้เยี่ยมชม"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "will be unavailable in the future."; @@ -9170,12 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Users & Authors"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.posts.label" = "เรื่อง"; -"widget.today.comments.label" = "ความเห็น"; -"widget.today.likes.label" = "ชื่นชอบ"; -"widget.today.title" = "วันนี้"; -"widget.today.views.label" = "การดู"; -"widget.today.visitors.label" = "ผู้เยี่ยมชม"; diff --git a/WordPress/Resources/tr.lproj/Localizable.strings b/WordPress/Resources/tr.lproj/Localizable.strings index 014eec5938cd..7327aaaf49d6 100644 --- a/WordPress/Resources/tr.lproj/Localizable.strings +++ b/WordPress/Resources/tr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-24 11:54:06+0000 */ +/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: tr */ @@ -13,7 +13,7 @@ "\nTo confirm, please re-enter your username before closing.\n\n" = "\nOnaylamak için lütfen kapatmadan önce kullanıcı adınızı tekrar girin.\n\n"; /* No comment provided by engineer. */ -" \/ year" = " \/ year"; +" \/ year" = "\/ yıl"; /* Title for the lazy load images setting */ "\"Lazy-load\" images" = "Görselleri sonra yükle"; @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "Tehditleri düzeltmek için %1$@."; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d Beğen"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "Bir dosya kötü amaçlı bir kod modeli içeriyor"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "Bu hesaptaki sitelerin listesi."; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "Sitenizde ilgi çekici içerik oluşturmanın ve yayınlamanın yeni bir yolu."; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "Hesap kapatıldı"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "Teşekkürler"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Bir kitleyi sitenize çekmeye başlamak için yeni gönderileri otomatik olarak sosyal medyanızda paylaşın."; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Otomatik güncellemeler"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "Bloklar, kodlama bilmenize gerek kalmadan ekleyebileceğiniz, yeniden düzenleyebileceğiniz ve stilini değiştirebileceğiniz içerik parçalarıdır. Bloklar, güzel düzenler oluşturmanın kolay ve modern bir yoludur."; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "Blog"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "Sitenizin istatistiklerine bakın"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Satın alımlar kontrol ediliyor…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "Yeni bir uygulama simgesi seçin"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "Bir tema seçin"; /* Label for Publish time picker */ "Choose a time" = "Saat seçin"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "Ses seç"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "Tamamlandı: Site istatistiklerini kontrol edin"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Tamamlandı: Bir tema seçin"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Tamamlandı: Site kurulumuna devam edin"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "Tamamlandı: Ana sayfanızı düzenleyin"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "Tamamlandı: Yazı paylaşımını etkinleştirin"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "Tamamlandı: Planları keşfet"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Tamamlandı: Site sayfalarını inceleyin"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "Tamamlandı: Site başlığınızı ayarlayın"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "Tamamlandı: Bir site simgesi yükleyin"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Tamamlandı: Sitenizi görüntüleyin"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "Başka bir hesap bağla"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "Bir site bağla"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "Başka bir site bağla"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "Daha fazla ağ bağlayın"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "Bağlantıyı yoruma kopyalayın"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "Bloğu kopyala"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "Bir etiket oluştur"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "Yeni bir site oluştur"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "Hesabınız yok mu? _Kaydol_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "Taslak"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "Taslaklar"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Videolarınızdaki sesleri kaydetmek için mikrofon erişimini etkinleştir."; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "Yazı paylaşımını etkinleştir"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "Başka cihazdan"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "Bu cihazdan"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "Blog zamanı!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "Şimdi zamanı! İlk yazınızı kaydedin ve yayınlayın."; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "Eğik"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack resimlerinizi optimize eder ve bunları ziyaretçilerinize en yakın sunucu konumundan sunar. Global içerik sağlama ağımızı kullanmak sitenizin yüklenme hızını artıracak."; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Bir sohbete katılın: takip ettiğiniz bloglardaki yazılara yorum yapın."; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "Daha fazlasını öğrenin..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Sol"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "Eski Simgeler"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Size Yardımcı Olalım"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "Profilim"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "Benim sitem"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "Sitelerim"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "Aramanızla eşleşen etiket yok"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "Hayır, teşekkürler"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "Ayarlanmadı"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "Şimdi değil"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "Karşıya yükleme işlemi için yeterli alan yok"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "Gizlilik"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "Gizlilik politikası"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "Hızlı başla"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store üzerinden uygulamamızı derecelendirin"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "Yanıt metni"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "%1$@ için yanıt verin"; @@ -6106,7 +6131,7 @@ translators: Block name. %s: The localized block name */ "Search button. Current button text is" = "Arama düğmesi. Geçerli düğme metni"; /* Search domain - Title for the Suggested domains screen */ -"Search domains" = "Search domains"; +"Search domains" = "Alan Adı Ara"; /* title of the button that searches the first domain. */ "Search for a domain" = "Bir alan adı arayın"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "Blog hatırlatıcılarınızı ayarlayın"; -/* Title of a Quick Start Tour */ -"Set your site title" = "Site başlığınızı ayarlayın"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "Tema ayarlama"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "Bağlantıyı paylaş"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "Hikayenizi burada paylaşın..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "İlişkili yazıları göster"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "Parolayı göster"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "Gösterildi"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Bloglara yorum yaptığınızda yorumlarınız herkese açık biçimde gösterilir."; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "Sosyal"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Bazı blokların ek ayarları vardır. Daha fazla seçenek görüntülemek için blokun sağ alt kısmındaki ayarlar simgesine dokunun."; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "Sıralama ve filtreleme"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "Kaynak kodu"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "Blok düzenleyiciye geç"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Başlık 1 yazı tipi boyutuna geçer"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "Şartlar ve koşullar"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "Hizmet şartları"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "Site bildirimleri açıldı"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "Ortam dosyası yükle"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "Site simgesini karşıya yükleyin"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "Yükleme başarısız oldu"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "Tümünü görüntüle"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "Yazıyı göster"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "Bekliyor..."; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "Başlarken biraz yardıma mı ihtiyacınız var?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "Yine de sitenizi geri yüklemeyi deneyeceğiz."; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "Sitenizi oluşturma ve geliştirme konusundaki temel bilgiler hakkında size rehberlik edeceğiz"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "%s önizlemelerine yönelik destek eklemek için çalışmalarımız devam ediyor. Bu arada, sayfadaki gömülü içeriği önizleyebilirsiniz."; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "%s önizlemelerine yönelik destek eklemek için çalışmalarımız devam ediyor. Bu arada, gönderideki gömülü içeriği önizleyebilirsiniz."; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "Kitlenizi geliştirmenize yardımcı olacak daha fazla görev ekledik."; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "Kontrol listenizde bazı değişiklikler yaptık"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "Özel uygulama simgelerimizi yepyeni bir görünümde olacak şekilde güncelledik. 10 yeni stil arasından seçim yapabilir veya isterseniz mevcut simgenizi kullanmaya devam edebilirsiniz."; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org eklenti sayfası"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Ülkelere göre görünümlerini gösteren dünya haritası."; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "Evet"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "Evet, bana yardım et"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "Evet, göster"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Bir bloka dokunup ardından bloku diğer blokların üstüne veya altına taşımak için blokun sol alt tarafında görünen yukarı ve aşağı oklara dokunarak blokların sırasını yeniden düzenleyebilirsiniz."; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Bunu, Sitem > Site Ayarları'ndan istediğiniz zaman güncelleyebilirsiniz."; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "Siteniz artık WordPress.com’a veri göndermeyecek ve Jetpack özellikleri çalışmayı durduracak. Uygulamada siteye erişim iznini kaybedeceksiniz ve izni site kimlik bilgileriyle yeniden eklemeniz gerekecek."; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "Ziyaretçileriniz tarayıcılarında sizin simgenizi görecektir. Gösterişli ve profesyonel bir görünüm için özel bir simge ekleyin."; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "Web sitenizin kimlik bilgileri depolanmayacak ve yalnızca Jetpack’i güvenli bir şekilde yüklemek amacıyla kullanılacaktır."; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "belge sayfamızı ziyaret edin"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "Şuana kadar ki en iyi görüntülemeler"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "Yazılar"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "WordPress sitenizdeki tüm etkinliklerden haberdar olun."; + +/* Title of all time widget */ +"widget.alltime.title" = "Her Zaman"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "Tüm zamanlara ait istatistikleri görmek için WordPress'e giriş yapın."; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "WordPress sitenizde bu haftaki etkinliklerden haberdar olun"; + +/* Title of this week widget */ +"widget.thisweek.title" = "Bu Hafta"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "Bu haftanın istatistiklerini görmek için WordPress'e giriş yapın."; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "Yorumlar"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "Beğenilenler"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "Site istatistikleri yüklenemiyor."; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "WordPress sitenizde bugünkü etkinliklerden haberdar olun."; + +/* Title of today widget */ +"widget.today.title" = "Bugün"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "Bugünün istatistiklerini görmek için WordPress'e giriş yapın."; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "Görüntüleme işlevi kullanılamıyor"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "Gösterimler"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "Ziyaretçiler"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "gelecekte kullanılamayacak."; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "• Kullanıcılar ve yazarlar"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "Şuana kadar ki en iyi görüntülemeler"; -"widget.alltime.posts.label" = "Yazılar"; -"widget.today.comments.label" = "Yorumlar"; -"widget.today.likes.label" = "Beğenilenler"; -"widget.today.title" = "Bugün"; -"widget.today.views.label" = "Gösterimler"; -"widget.today.visitors.label" = "Ziyaretçiler"; diff --git a/WordPress/Resources/zh-Hans.lproj/Localizable.strings b/WordPress/Resources/zh-Hans.lproj/Localizable.strings index e46c88134b3f..f96ab7a2f72f 100644 --- a/WordPress/Resources/zh-Hans.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hans.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-23 13:54:07+0000 */ +/* Translation-Revision-Date: 2021-11-26 17:20:17+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: zh_CN */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@修复威胁。"; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d 人喜欢"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "一个包含恶意代码模式的文件"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "此账户上的站点列表。"; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "在您的站点上创建、发布吸引人内容的新方法。"; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "账户已关闭"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "确认"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "自动将新文章分享到您的社交媒体,让这些受众流向您的站点。"; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自动更新"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "区块是您不需要知道如何编写代码就能够插入、重新排列和设置样式的内容。 区块让您能够以轻松而现代的方式创建精美的布局。"; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "博客"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "查看站点统计信息"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "正在检查购买内容…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "选择新的应用图标"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "选择主题"; /* Label for Publish time picker */ "Choose a time" = "选择时间"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "选择音频"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "已完成:查看站点统计信息"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "已完成:选择主题"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "已完成:继续设置站点"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "已完成:编辑您的首页"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "已完成:启用文章共享"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "已完成:了解套餐"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "已完成:审核网站页面"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "已完成:设置站点标题"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "已完成:上传站点图标"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "已完成:查看您的站点"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "连接其他账户"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "连接站点"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "连接其他站点"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "连接更多网络"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "将链接复制到评论中"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "复制区块"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "创建标签"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "创建新站点"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "还没有账户?_注册_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "草稿"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "草稿"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "启用麦克风来记录制视频中的声音。"; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "启用文章共享"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "来自其他设备"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "从此设备中"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "发布博客的时间到了!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "是时候了!起草并发布您的第一篇文章。"; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "斜体"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack 将优化您的图片,并通过距离访客最近的服务器位置提供。使用我们的全球内容交付网络将大大提升站点的加载速度。"; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "加入会话:评论您关注的博客中的文章。"; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "了解更多…"; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "左"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "旧图标"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "让我们助您一臂之力"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "我的个人资料"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "我的站点"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "我的站点"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "没有与您的搜索匹配的标签"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "不用了,谢谢"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "未设置"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "现在不行"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "空间不足,无法上传"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "隐私"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "隐私政策"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "快速启动"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "在 App Store 中给我们评分"; @@ -5739,7 +5763,7 @@ translators: Block name. %s: The localized block name */ "Remove as Featured Image " = "移除特色图片"; /* No comment provided by engineer. */ -"Remove block" = "Remove block"; +"Remove block" = "移除区块"; /* Option to remove Insight from view. */ "Remove from insights" = "从数据分析中删除"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "回复文本"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "回复 %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "设置您的博客发布提醒"; -/* Title of a Quick Start Tour */ -"Set your site title" = "设置您的站点标题"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "正在设置主题"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "分享链接"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "在此处分享您的故事..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "显示相关文章"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "显示密码"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "已显示"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "公开显示您对博客作出的评论。"; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "社交"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "某些区块具有其他设置。 轻点区块右上角的“设置”图标,以查看更多选项。"; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "排序和筛选"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "源代码"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "切换到区块编辑器"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "切换为标题 1 号字"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "条款和条件"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "使用条款"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "已打开站点通知"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "上传媒体文件"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "上传站点图标"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "上传失败"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "查看所有"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "查看文章"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "正在等待…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "不知从何入手,需要一点帮助?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "我们仍会尝试恢复您的站点。"; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "我们将带您了解构建和提升站点的基本知识。"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "我们正在努力添加对预览%s的支持。 同时,您可以预览页面上的嵌入内容。"; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "我们正在努力添加对预览%s的支持。 同时,您可以预览文章上的嵌入内容。"; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "我们添加了更多的任务,以帮助您增加受众。"; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "我们对您的清单进行了一些修改"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "我们以全新的面貌更新了我们的自定义应用图标。有10种新的样式可供选择,如果您喜欢,也可简单地保留现有图标。"; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org 插件页面"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "按国家\/地区显示查看次数世界地图"; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "是"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "是的,请帮助我"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "好的,显示相关内容"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "您现在可以重新排列区块,方法是轻点一个区块,然后轻点该区块左下角出现的向上和向下箭头,将该区块移动到其他区块上方或下方。"; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "您可以随时通过“我的站点”>“站点设置”更新此设置"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "您的站点将不再向 WordPress.com 发送数据,并且 Jetpack 功能将停止运行。您将无法访问该应用程序上的站点,并且必须使用站点凭据重新添加该站点。"; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "访客将在其浏览器中看到您的图标。添加自定义图标,获得精美的专业外观。"; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "系统将不会存储您的网站凭据,并且仅将其用于安装 Jetpack。"; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "访问我们的文档页面"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "最受欢迎的文章"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "文章"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "widget.alltime.preview.description"; + +/* Title of all time widget */ +"widget.alltime.title" = "widget.alltime.title"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; + +/* Title of this week widget */ +"widget.thisweek.title" = "widget.thisweek.title"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "评论"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "赞"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "widget.today.preview.description"; + +/* Title of today widget */ +"widget.today.title" = "今日"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "查看数"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "访客数"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "今后将无法再访问。"; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "•用户与作者"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "最受欢迎的文章"; -"widget.alltime.posts.label" = "文章"; -"widget.today.comments.label" = "评论"; -"widget.today.likes.label" = "赞"; -"widget.today.title" = "今日"; -"widget.today.views.label" = "查看数"; -"widget.today.visitors.label" = "访客数"; diff --git a/WordPress/Resources/zh-Hant.lproj/Localizable.strings b/WordPress/Resources/zh-Hant.lproj/Localizable.strings index 2560a649d0bf..9c5982d9696c 100644 --- a/WordPress/Resources/zh-Hant.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hant.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-23 10:54:07+0000 */ +/* Translation-Revision-Date: 2021-11-30 09:54:07+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: zh_TW */ @@ -39,6 +39,12 @@ /* Title for button when a site is missing server credentials. %1$@ is a placeholder for the string 'Enter your server credentials'. */ "%1$@ to fix threats." = "%1$@以修正威脅。"; +/* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comment" = "%1$d Comment"; + +/* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ +"%1$d Comments" = "%1$d Comments"; + /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ "%1$d Like" = "%1$d 按讚"; @@ -341,9 +347,6 @@ translators: Block name. %s: The localized block name */ /* Title for a threat */ "A file contains a malicious code pattern" = "檔案包含惡意程式碼模式"; -/* Accessibility hint for My Sites list. */ -"A list of sites on this account." = "此帳號的網站清單。"; - /* Story Intro welcome title */ "A new way to create and publish engaging content on your site." = "使用全新方式在網站上建立及發佈吸睛內容。"; @@ -426,7 +429,8 @@ translators: Block name. %s: The localized block name */ /* Overlay message displayed when account successfully closed */ "Account closed" = "帳號已關閉"; -/* Displays the list of third-party libraries we use */ +/* Displays the list of third-party libraries we use + Title of button that displays the App's acknoledgements */ "Acknowledgements" = "合作廠商"; /* Theme Activate action title */ @@ -947,6 +951,9 @@ translators: Block name. %s: The localized block name */ /* A detailed message to users about growing the audience for their site through enabling post sharing. */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "自動分享新文章至社群媒體,將讀者群導向你的網站。"; +/* Title of button that displays information about the other apps available from Automattic */ +"Automattic Family" = "Automattic Family"; + /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自動更新"; @@ -1070,7 +1077,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Blocks are pieces of content that you can insert, rearrange, and style without needing to know how to code. Blocks are an easy and modern way for you to create beautiful layouts." = "區塊是讓你可以不必瞭解如何編寫程式碼,就能插入、重新排列及調整樣式的塊狀內容。 區塊可讓你用簡單且現代化的方式建立美麗的版面配置。"; -/* Opens the WordPress Mobile Blog */ +/* Opens the WordPress Mobile Blog + Title of a button that displays the WordPress product blog */ "Blog" = "網誌"; /* Create new Blog Post button title */ @@ -1353,6 +1361,9 @@ translators: Block name. %s: The localized block name */ /* Title of a Quick Start Tour */ "Check your site stats" = "檢視網站統計資料"; +/* Title of a Quick Start Tour */ +"Check your site title" = "Check your site title"; + /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "正在確認購買項目…"; @@ -1386,12 +1397,18 @@ translators: Block name. %s: The localized block name */ /* OK Button title shown in alert informing users about the Reader Save for Later feature. */ "Choose a new app icon" = "選擇新的應用程式圖示"; +/* A text for title label on Login epilogue screen */ +"Choose a site to open." = "Choose a site to open."; + /* Title of a Quick Start Tour */ "Choose a theme" = "選擇佈景主題"; /* Label for Publish time picker */ "Choose a time" = "選擇時間"; +/* Title of a Quick Start Tour */ +"Choose a unique site icon" = "Choose a unique site icon"; + /* No comment provided by engineer. */ "Choose audio" = "選擇音樂"; @@ -1609,9 +1626,15 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Check your site stats" = "已完成:查看網站統計資料"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Check your site title" = "Completed: Check your site title"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "已完成:選擇佈景主題"; +/* The Quick Start Tour title after the user finished the step. */ +"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; + /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "已完成:繼續設定網站"; @@ -1621,9 +1644,6 @@ translators: Block name. %s: The localized block name */ /* The Quick Start Tour title after the user finished the step. */ "Completed: Edit your homepage" = "已完成:編輯首頁"; -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Enable post sharing" = "已完成:啟用文章分享功能"; - /* The Quick Start Tour title after the user finished the step. */ "Completed: Explore plans" = "已完成:探索方案"; @@ -1637,10 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "已完成:檢閱網站頁面"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Set your site title" = "完成:設定你的網站標題"; - -/* The Quick Start Tour title after the user finished the step. */ -"Completed: Upload a site icon" = "已完成:上傳網站圖示"; +"Completed: Social sharing" = "Completed: Social sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "已完成:檢視你的網站"; @@ -1683,12 +1700,6 @@ translators: Block name. %s: The localized block name */ /* Verb. Text label. Allows the user to connect to a third-party sharing service like Facebook or Twitter. */ "Connect Another Account" = "連結其他帳號"; -/* Link to connect a site, shown after logging in. */ -"Connect a site" = "連結網站"; - -/* Link to connect another site, shown after logging in. */ -"Connect another site" = "連結其他網站"; - /* Title for button that will open up the social media Sharing screen. */ "Connect more networks" = "連結更多網路"; @@ -1798,6 +1809,9 @@ translators: Block name. %s: The localized block name */ /* Copy link to oomment button title */ "Copy Link to Comment" = "將連結複製到留言"; +/* translators: Copy URL from the clipboard, https://sample.url */ +"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; + /* No comment provided by engineer. */ "Copy block" = "複製區塊"; @@ -1962,7 +1976,8 @@ translators: Block name. %s: The localized block name */ /* Title of the button in the placeholder for an empty list of blog tags. */ "Create a Tag" = "建立標籤"; -/* Title for a button that when tapped starts the site creation process */ +/* A button title + Title for a button that when tapped starts the site creation process */ "Create a new site" = "建立一個新網站"; /* Text shown when the account has no sites. */ @@ -2345,8 +2360,7 @@ translators: Block name. %s: The localized block name */ /* Label for button to log in using your site address. The underscores _..._ denote underline */ "Don't have an account? _Sign up_" = "還沒有帳號?_註冊_"; -/* A button title - Accessibility label for the Done button in the Me screen. +/* Accessibility label for the Done button in the Me screen. Button text on site creation epilogue page to proceed to My Sites. Done button title Done editing an image @@ -2481,6 +2495,9 @@ translators: Block name. %s: The localized block name */ /* Name for the status of a draft post. */ "Draft" = "草稿"; +/* Description of a Quick Start Tour */ +"Draft and publish a post." = "Draft and publish a post."; + /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ "Drafts" = "草稿"; @@ -2677,8 +2694,7 @@ translators: Block name. %s: The localized block name */ /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "請啟用麥克風權限,以錄製影片音效。"; -/* Title for button that will open up the social media Sharing screen. - Title of a Quick Start Tour */ +/* Title for button that will open up the social media Sharing screen. */ "Enable post sharing" = "啟用文章分享功能"; /* Message prompting user to enable site notifications. */ @@ -3195,6 +3211,9 @@ translators: Block name. %s: The localized block name */ /* Button title displayed in popup indicating date of change on another device */ "From another device" = "從其他裝置"; +/* No comment provided by engineer. */ +"From clipboard" = "From clipboard"; + /* Button title displayed in popup indicating date of change on device */ "From this device" = "從此裝置"; @@ -3706,9 +3725,6 @@ translators: Block name. %s: The localized block name */ /* Title of a notification displayed prompting the user to create a new blog post */ "It's time to blog!" = "該新增網誌內容了!"; -/* Description of a Quick Start Tour */ -"It's time! Draft and publish your very first post." = "事不宜遲!撰寫並發表你的第一篇文章。"; - /* Accessibility label for italic button on formatting toolbar. Discoverability title for italic formatting keyboard shortcut. */ "Italic" = "斜體"; @@ -3782,6 +3798,9 @@ translators: Block name. %s: The localized block name */ /* Footer for the Serve images from our servers setting */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack 會最佳化你的圖片,並從與訪客距離最近的伺服器提供圖片。使用我們的全球內容傳遞網路可大幅提升網站的載入速度。"; +/* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ +"Join From Anywhere" = "Join From Anywhere"; + /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "加入討論:在關注的網誌文章上留言。"; @@ -3848,12 +3867,18 @@ translators: Block name. %s: The localized block name */ /* Jetpack Settings: WordPress.com Login WordPress login footer text */ "Learn more..." = "瞭解更多..."; +/* Description for a prompt asking if users want to try out the quick start checklist. */ +"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; + /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "靠左"; /* Title displayed for selection of custom app icons that may be removed in a future release of the app. */ "Legacy Icons" = "舊版圖示"; +/* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ +"Legal and More" = "Legal and More"; + /* Heading for instructions on Start Over settings page */ "Let Us Help" = "我們樂意協助"; @@ -4371,13 +4396,11 @@ translators: Block name. %s: The localized block name */ "My Profile" = "我的個人檔案"; /* Generic name for the detail screen for specific site - used for spotlight indexing on iOS. Note: this is only used if we cannot determine a name chances of this being used are small. - Header for a single site, shown after logging in The accessibility value of the my site tab. Title of My Site tab */ "My Site" = "我的網站"; -/* Header for list of multiple sites, shown after logging in - Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ +/* Title of the 'My Sites' tab - used for spotlight indexing on iOS. */ "My Sites" = "我的網站"; /* Siri Suggestion to open My Sites */ @@ -4687,7 +4710,8 @@ translators: Block name. %s: The localized block name */ /* Displayed when the user is searching site tags and there are no matches. */ "No tags matching your search" = "沒有符合你搜尋條件的標籤"; -/* Button label for denying our request to re-allow push notifications */ +/* Button label for denying our request to re-allow push notifications + Button title. When tapped, the quick start checklist will not be shown, and the prompt will be dismissed. */ "No thanks" = "不用了,謝謝"; /* Text displayed when theme name search has no matches */ @@ -4714,9 +4738,6 @@ translators: Block name. %s: The localized block name */ /* Display value for Support email field if there is no user email address. */ "Not Set" = "未設定"; -/* Not this time button title shown in alert asking if users want to try out the quick start checklist. */ -"Not This Time" = "稍後再說"; - /* Error message to show to users when trying to upload a media object with file size is larger than the available site disk quota */ "Not enough space to upload" = "上傳空間不足"; @@ -4798,7 +4819,6 @@ translators: Block name. %s: The localized block name */ Button title. An acknowledgement of the message displayed in a prompt. Confirmation of action Default action - Dismiss button of alert letting users know we've upgraded the quick start checklist Dismisses the alert Menus: button title for finishing editing of a menu item. OK @@ -5460,7 +5480,8 @@ translators: Block name. %s: The localized block name */ Title for screen to select the privacy options for a blog */ "Privacy" = "隱私"; -/* Opens the Privacy Policy Web */ +/* Opens the Privacy Policy Web + Title of button that displays the App's privacy policy */ "Privacy Policy" = "隱私權政策"; /* Register Domain - Privacy Protection section header title */ @@ -5598,6 +5619,9 @@ translators: Block name. %s: The localized block name */ /* The menu item to select during a guided tour. */ "Quick Start" = "快速入門"; +/* Title for button allowing users to rate the app in the App Store */ +"Rate Us" = "Rate Us"; + /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "在 App Store 中為我們評分"; @@ -5812,6 +5836,7 @@ translators: Block name. %s: The localized block name */ "Reply Text" = "回覆文字"; /* Placeholder text for replying to a comment. %1$@ is a placeholder for the comment author's name. + Placeholder text for the reply text field.%1$@ is a placeholder for the comment author.Example: Reply to Pamela Nguyen Provides hint that the screen displays a reply to a comment.%1$@ is a placeholder for the comment author that's been replied to.Example: Reply to Pamela Nguyen */ "Reply to %1$@" = "回覆 %1$@"; @@ -6342,9 +6367,6 @@ translators: Block name. %s: The localized block name */ /* Title of the Blogging Reminders Settings screen. */ "Set your blogging reminders" = "設定你的網誌提醒"; -/* Title of a Quick Start Tour */ -"Set your site title" = "設定你的網站標題"; - /* User-facing string, presented to reflect that site assembly is underway. */ "Setting up theme" = "設定佈景主題"; @@ -6389,6 +6411,9 @@ translators: Block name. %s: The localized block name */ /* Title for the button that will share the link for the downlodable backup file */ "Share link" = "分享連結"; +/* Title for button allowing users to share information about the app with friends, such as via Messages */ +"Share with Friends" = "Share with Friends"; + /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ "Share your story here..." = "在此分享你的故事..."; @@ -6430,6 +6455,9 @@ translators: Block name. %s: The localized block name */ /* Label for configuration switch to enable/disable related posts */ "Show Related Posts" = "顯示相關文章"; +/* Button title. When tapped, the quick start checklist will be shown. */ +"Show me around" = "Show me around"; + /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ "Show password" = "顯示密碼"; @@ -6452,6 +6480,9 @@ translators: Block name. %s: The localized block name */ /* Accessibility value if login page's password field is displaying the password. */ "Shown" = "顯示"; +/* Description of a Quick Start Tour */ +"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; + /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "當你在網誌中留言時會公開顯示。"; @@ -6613,6 +6644,9 @@ translators: Block name. %s: The localized block name */ /* Follower Totals label for social media followers */ "Social" = "社交"; +/* Title of a Quick Start Tour */ +"Social sharing" = "Social sharing"; + /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "有些區塊具有其他設定。 請點選區塊右下角的設定圖示以檢視更多選項。"; @@ -6702,7 +6736,8 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "Sorting and filtering" = "排序和篩選"; -/* Opens the Github Repository Web */ +/* Opens the Github Repository Web + Title of button that displays the App's source code information */ "Source Code" = "原始碼"; /* Label for showing the available disk space quota available for media */ @@ -6843,6 +6878,12 @@ translators: Block name. %s: The localized block name */ /* Switches from the classic editor to block editor. */ "Switch to block editor" = "切換至區塊編輯器"; +/* Message of the notice shown when toggling the HTML editor mode */ +"Switched to HTML mode" = "Switched to HTML mode"; + +/* Message of the notice shown when toggling the Visual editor mode */ +"Switched to Visual mode" = "Switched to Visual mode"; + /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "切換至Heading 1文字大小"; @@ -6988,7 +7029,8 @@ translators: Block name. %s: The localized block name */ /* The underlined title sentence */ "Terms and Conditions" = "條款與條件"; -/* Opens the Terms of Service Web */ +/* Opens the Terms of Service Web + Title of button that displays the App's terms of service */ "Terms of Service" = "服務條款"; /* Menu item label for linking a testimonial post. */ @@ -7610,7 +7652,8 @@ translators: Block name. %s: The localized block name */ /* Notice title when turning site notifications on succeeds. */ "Turned on site notifications" = "已開啟網站通知"; -/* Launches the Twitter App */ +/* Launches the Twitter App + Title of button that displays the app's Twitter profile */ "Twitter" = "Twitter"; /* Title for the setting to edit the twitter username used when sharing to twitter. */ @@ -7934,9 +7977,6 @@ translators: Block name. %s: The localized block name */ /* Title for button displayed when the user has an empty media library */ "Upload Media" = "上傳媒體"; -/* Title of a Quick Start Tour */ -"Upload a site icon" = "上傳網站圖示"; - /* Message displayed on a post's card when the post has failed to upload System notification displayed to the user when media files have failed to upload. */ "Upload failed" = "上傳失敗"; @@ -8088,6 +8128,9 @@ translators: Block name. %s: The localized block name */ /* Button in the notification presented in Reader when a post is saved for later */ "View All" = "檢視全部"; +/* Title for button on the post details page to show all comments when tapped. */ +"View All Comments" = "View All Comments"; + /* Button label for viewing a post */ "View Post" = "查看文章"; @@ -8194,8 +8237,8 @@ translators: Block name. %s: The localized block name */ /* View title during the Google auth process. */ "Waiting..." = "等待中…"; -/* Title of alert asking if users want to try out the quick start checklist. */ -"Want a little help getting started?" = "需要協助開始使用嗎?"; +/* Title for a prompt asking if users want to try out the quick start checklist. */ +"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8487,21 +8530,12 @@ translators: Block name. %s: The localized block name */ /* Hint displayed when we fail to fetch the status of the restore in progress. */ "We’ll still attempt to restore your site." = "我們仍會嘗試還原你的網站。"; -/* Body text of alert asking if users want to try out the quick start checklist. */ -"We’ll walk you through the basics of building and growing your site" = "我們會逐步說明建立及長久經營網站的基本事項"; - /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the page." = "我們正努力新增對 %s 預覽的支援。 在此期間,你可以在頁面中預覽嵌入內容。"; /* translators: %s: embed block variant's label e.g: \"Twitter\". */ "We’re working hard on adding support for %s previews. In the meantime, you can preview the embedded content on the post." = "我們正努力新增對 %s 預覽的支援。 在此期間,你可以在文章中預覽嵌入內容。"; -/* Body text of alert letting users know we've upgraded the quick start checklist. */ -"We’ve added more tasks to help you grow your audience." = "我們已新增更多任務,協助你拓展讀者群。"; - -/* Title of alert letting users know we've upgraded the quick start checklist. */ -"We’ve made some changes to your checklist" = "我們已稍微更動你的檢查清單"; - /* Body text of alert informing users about the Reader Save for Later feature. */ "We’ve updated our custom app icons with a fresh new look. There are 10 new styles to choose from, or you can simply keep your existing icon if you prefer." = "我們更新了自訂應用程式圖示,現在自訂應用程式有全新樣貌。 有 10 種新樣式可供選擇;你也可以繼續使用現有圖示。"; @@ -8664,6 +8698,9 @@ translators: Block name. %s: The localized block name */ /* Link to a WordPress.org page for the plugin */ "WordPress.org Plugin Page" = "WordPress.org 外掛程式頁面"; +/* Title of button that displays the Automattic Work With Us web page */ +"Work With Us" = "Work With Us"; + /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "依國家顯示世界地圖的檢視次數。"; @@ -8710,9 +8747,6 @@ translators: Block name. %s: The localized block name */ Yes */ "Yes" = "好"; -/* Allow button title shown in alert asking if users want to try out the quick start checklist. */ -"Yes, Help Me" = "好,請協助我"; - /* Phrase displayed to begin a quick start tour that's been suggested. */ "Yes, show me" = "好,請顯示"; @@ -8756,6 +8790,9 @@ translators: Block name. %s: The localized block name */ /* No comment provided by engineer. */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "若要重新排列區塊,請依序點選區塊和區塊左下角顯示的上下鍵,將其移動到其他區塊的上方或下方。"; +/* A text for subtitle label on Login epilogue screen */ +"You can switch sites at any time." = "You can switch sites at any time."; + /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "你可以隨時前往「我的網站」>「網站設定」更新此設定。"; @@ -8982,9 +9019,6 @@ translators: Block name. %s: The localized block name */ /* Explanatory text bellow the Disconnect from WordPress.com button */ "Your site will no longer send data to WordPress.com and Jetpack features will stop working. You will lose access to the site on the app and you will have to re-add it with the site credentials." = "你的頁面將停止傳送數據給WordPress.com而Jetpack功能也將停止運作。你將無法繼續以應用程式存取頁面資料,你必須以頁面憑證重新做加載。 "; -/* Description of a Quick Start Tour */ -"Your visitors will see your icon in their browser. Add a custom icon for a polished, pro look." = "你的訪客會在他們的瀏覽器上看到你的圖示。新增自訂圖示會讓網站看起來更專業幹練。"; - /* The default Jetpack view message */ "Your website credentials will not be stored and are used only for the purpose of installing Jetpack." = "我們不會儲存你的網站憑證,而且只會將其用於安裝 Jetpack。"; @@ -9119,6 +9153,57 @@ translators: Block name. %s: The localized block name */ /* Portion of a message for Jetpack users that have multisite WP installation, thus Restore is not available. This part is a link, colored with a different color. */ "visit our documentation page" = "請造訪我們的文件頁面"; +/* Title of best views ever label in all time widget */ +"widget.alltime.bestviews.label" = "最高記錄的瀏覽次數"; + +/* Title of posts label in all time widget */ +"widget.alltime.posts.label" = "文章"; + +/* Description of all time widget in the preview */ +"widget.alltime.preview.description" = "隨時掌握 WordPress 網站上的所有活動。"; + +/* Title of all time widget */ +"widget.alltime.title" = "開站以來"; + +/* Title of the unconfigured view in all time widget */ +"widget.alltime.unconfigured.view.title" = "登入 WordPress 查看所有統計資料。"; + +/* Description of all time widget in the preview */ +"widget.thisweek.preview.description" = "隨時掌握本週 WordPress 網站上的活動。"; + +/* Title of this week widget */ +"widget.thisweek.title" = "本週"; + +/* Title of the unconfigured view in this week widget */ +"widget.thisweek.unconfigured.view.title" = "登入 WordPress 查看本週的統計資料。"; + +/* Title of comments label in today widget */ +"widget.today.comments.label" = "留言"; + +/* Title of likes label in today widget */ +"widget.today.likes.label" = "按讚數"; + +/* Title of the nodata view in today widget */ +"widget.today.nodata.view.title" = "無法載入網站統計資料。"; + +/* Description of today widget in the preview */ +"widget.today.preview.description" = "隨時掌握今天 WordPress 網站上的活動。"; + +/* Title of today widget */ +"widget.today.title" = "今天"; + +/* Title of the unconfigured view in today widget */ +"widget.today.unconfigured.view.title" = "登入 WordPress 查看今天的統計資料。"; + +/* Error message to show if a widget view is unavailable */ +"widget.today.view.unavailable.title" = "無法檢視"; + +/* Title of views label in today widget */ +"widget.today.views.label" = "點閱數"; + +/* Title of visitors label in today widget */ +"widget.today.visitors.label" = "訪客"; + /* Second part of delete screen title stating [the site] will be unavailable in the future. */ "will be unavailable in the future." = "日後將無法使用。"; @@ -9170,13 +9255,3 @@ translators: Block name. %s: The localized block name */ /* Item 2 of delete screen section listing things that will be deleted. */ "• Users & Authors" = "•使用者和作者"; - -// MARK: WordPressStatsWidgets Strings - -"widget.alltime.bestviews.label" = "最高記錄的瀏覽次數"; -"widget.alltime.posts.label" = "文章"; -"widget.today.comments.label" = "留言"; -"widget.today.likes.label" = "按讚數"; -"widget.today.title" = "今天"; -"widget.today.views.label" = "點閱數"; -"widget.today.visitors.label" = "訪客"; diff --git a/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings index 079e9461616353a53595a5af38735d1b4c64dc8d..32532907077e9f846b6820be9d4888fcc00b997f 100644 GIT binary patch delta 1410 zcmY*XTWB0r7@pagIeVFz?8IC&P0~GSl5TdJG>vUiQ>i9tHnlNr;$D&_X}e5!PBxRy z?yS3$Xj&yIMGAR{@qg)yg%(N?Dg`T8DUFCX6pJ?mA4CFzC>E`X;*$?3wd_ z*MC;qR@+|6@X_^5Q}xQRsF|9l2kflFvQARFAF9QgK+Y~Wvxl+;mUrlwnLQOB(o?5m ziRf4&ZaNl&=lIr|q^3JG&2lmbM5SCWRzv>C3ft9 zo=q{!%%)*YJY8ScLyf#X=ajLFIm^}!X22M~$1^o-7BXg`0B`ecP$hPR5`(#%wVc%M ztLPy|3AS_R&f|xfVd``|=a_c3u)cAI&X(m$wx{FyWvZujGdmqIOovXOPm~D2Ey;~O zJJ4s~iFV7NbEd@#Qx*E7gN8vJJzYS>BR18SbkovLT8tJ;6- ziE=brD8Gcyq`H;aM9$D1R&H-XPqPzI<}Bv3)Uiw6XT~rvGGK&cQJ872|ZMZ)AUa)_gq^9b2ZhHR}C zX4H;-3#6TNlODY4#DU_ogX}f%PbXsf=Sq;u+jQyBPe$-2NJe18oq&hk0lo>Y`P<+V ztyZwLMzDN+kn^{|C8b?vNd9066#_|ah40iq_y^z}_bxc@H9+9@RuBbC$;wN7TV~-4o1n2dnL-@dy%RO$M5(ow5UZ zNF7}D2RqA+gh?-IkCH(Hi`k98NEsO}35})@K1d#di)sL_%MsX6+hM`G1E$sea7GF7 z6h88`z+NqY^|fL-eX!}#>dg|km?K=;N*@`uwKiN?CwwC}!F#^JdR7`KZlk|gWjRAP zeBiwd-QLhjJEq)+BQ2bVTjkDkuX7vRyWEG|ZSF2F@Xh>weu6jo9RDo;o6G0g<$A<5 z;#zRM>^kpy&2>}g6NZE_VN!TTxFTE=ZV0!9FN96u7f}>7u}*9gyTyn&F6!cfXp4@x zEIuz@5Z@9%6@Qg{QkQgCN~}nyrB|d&(yN3gb)*SbVUT6=0$C#$$nS2={kZ$A`?C9E z_gC&eJwJK3dQ;xB-Zk&{zFyye&-A@0_sdZ^BcGGsSEv$H1{70qly&8X^11S@Dybc6 wOr2NP)C=kr^$qo=`gK*HYN#qxb+zhCf4x8H&-=Z%{C{g+tyX&zeyra14^XFl+yDRo delta 1400 zcmZ8eUrZZy9Pj=6UE90sow70s?RKoN0xK}s0AVJhr3FC*1})|9np^v$J=Wee?SUc> z=nGlGgR*b3y(kGY%c3z$)EAdUd|Bp$F`6uMJ{gTM(PYv2V6sPl?ZGsAxVztd|9t-a zwi~w_-z)4GzV6Y@g%P8SOO`sO8<*!QFLhii;KeCDol^%*!@`C&otPS%8Ptq4&d0~` zn-<)qH+G(QL8QBOz76RaQR`OskrPNGoYgo;cv}H>zYFS(vOex;Z!%}5;wU{@x49>tu z+&t9`D&>dw83Eqn0v8r-k%XU66FuXms;y~yUb~dXYFW2%IUd)t<@qrJU=PJ731mt+ znlP#}mU#fLc2*t0JFH*6Xrrp-oK_-R(81Q$FTIX4x~5JPE!{K->Ut3;qj*_c&0Fv{ zTL+U=oj4oLWK@grrIe zF6)O)Y88@Pz@3QeRvyPmIN+ns_Rhsi>#CO3bR(t6w$Nv(EF_8<&BE2|yf}re)smqS zSC#7kHy02W?8~b5;V;Ik%?^_BtXW#Gq;L@Jf%`+fOVhS4h779YWWM|V&2HQ{z6g=k%WGitPM8hZwcctUd;0eG}{vWE52nhk> z@zrLlqJFDyg)J{Shft(bq%M)-rqf^ga;7?); zJoJRg#Iw+!o7fS9vQ6EJx(WFx3WLI*+pGxgMa|?t;&3{)9oHRuj@ypU9CsZ1R39}) zm8iF=52=r-uc%+C-)Se^PDkhw`U0J$H|a+V%``Dx%rG;?B$-8KjREEc^96IC`G$GG zJZ3r8!}hQPY>dsaCi@0^mE*Y(*Twa6Np6L+xGnDLCb!4k<~($ zBHBP#_;dU${{g@6tZ^Q54m)?9x13L0ZLS%Y=E}Lib>FSK?+Ki6QkW2Cg$-d#_*8f* zdc^^8Nz92G;tla@@n@++8kLgLHEB=Umwxg5AUDXTNx(cHmI<9N)~^l}ffJ z)riSx18N$WW*lTmy|!X{if(wDbaBXXQ`E8D47&hl*^XMn#`$CF%#*giVf#M2#vf+; z;DIBFfn3fhCZh)?3oDN8XHh`H>)YDemd0q>w#Y;-uszqmc=Z{wQ0`swG-u|E#L8H< zJ2#xR12TysHp(}$4G);76j?*)N8Mij+%oMfK#B-C;y2PzgQkFhM zTAValwH@lS)0lN!sKP<KgK{37YnQE6;TN=Rp= z*Q6`bn=&s~%JuSqydb|QGkHgTTmD-9Ug4D{rBfMGRuoUUq1;ptsWH`5#H*R?ur zSXPTm#5IG;&jeHXM(a?+s RjR_-fd}i=}u;1??e*ztRj*b8T delta 1419 zcmbu7S!^3c7{|Td+0#p6#Y!R2$mF((T?k;(~C$FHsf?CuP;f+mw%P>pFwk_K!SI+KK z$5*Be8(9uaXvXG}`++m^7Rt_R`67&)hJy?znVwH9#APFo^wbR6aqxNm?ni%Y$5*)# z`~uq@T9`*$W(DQ^ZFA*yU9*dtp~8}BJK=B`NBABlH7Vye@y!gxS)mWpY+x*jbd+~8 zjrg2Dkd!M3DwbSuU`bXHG>sEEfBR7Lh!lh6l5WZhQt&g(GS!D6)rFs=eRx(n9Lv_b zBf3PA^f6;Xxgu-2ysjf?YYwtgDOt6b6Qn>rC^bh);tBQuz7KS@uGRCQU6d_yj|V}= z^{aOvMU&xd$+|g$qE?|?}IM9&6TM`_#s~q_xl7fozff~rHC1O+(>LG zWmTc9%9@e$w+_`D{oRC>bV-pNRC~6ydE}HW13G3chBy)mxP}oASL#nw3&TIq?Xkr; z$x==C>#cHmbbmms2)e;Z5CtP(m~5v(?v1wIF=^>I3Ap)ns zEe(Kf#P3T{{G1RR_xA?8GA1*vZCblqg1Ap74k-el0#dMbJqSj*{LY#NAO4 z)oKT~l5MPMH>S9wZGYwoLvgV6FF@iNAmIZ-zY7rlNDS=$S9UzS=bYy;&qdE=&-0#F zJ#SFQsRU(F_fnUrXQ?--FQ~7*yf^Hf^iF&4^s3%n?`O1^?xlz6+vo(Hp|f;_#`IJ4 zEA+ec2lU7EcYpyc;278)C-kVm1ZTk>!!ZNQFcV`k%m(8y_cMFUMdoehL*`57dzNQA z*bqC#7T9y_ny~TaS{la(fWBfM%0Kd<_B(w;}g{+_n_XrOP zPYbULp9nvTl-Mcuif6=}xFcQ=Ul!jJzdh*d_g(P42GXy$=2c1*4vs diff --git a/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings index a68171f92ab17067cc9b2fd9cb5044f318526a6f..4868f286734c690e14d8a1fafa70ee561c699cd5 100644 GIT binary patch delta 1452 zcmY+DPiz!b9LL}6%w6qXO%ChWV+ESL+&fDE#r!(u! z+tsZ~MdLvYQTWAx2PK#o!@-z{2h<2Agy=znQ4d~BAn`y9Rg_>nXz;hY4ai{*^XC1& ze?ITciPa}ozm@Qf$j6dB!ro&u-P+;(DRa844?8wzHZQ14L6hRWRmbBKyKIlSTpu;< zN@hEquB5Z6(QL-#7K4|BmGOeACTmlc>6P{7cHOZbhu`F7VnOXejULF$akwFNX}J`e zaq4XUFtw+dW!fcpQ<`1UxluP!3-D`9_`4FnBI)(d2m5k1yO0u+U!uZ zYBdV#q6I(HXpIdF3{383hDr53Rc<=AckKN0`b68V6?-h>HgsB|raiX9Fu9(@oM_Pt zU&;Z@xdwCg?(MS-y=Yp@%P+|98!`-?(~^gd2}h@OYFc#4V!CH?=4F~9lj$;bn=y8{ zuHznPSJS=rB77%z&P`;i2IZ_xFG)-6K#K92YwO%;Wgj2K!l-~93Tiw}>+JtLkmXpD zyPlvktf0m=-j8YDFiMvkw~@(U%uIqk$1_cde2P&652BzhUzS}!s<&s?>vwy?vv@jb z-xB12XAKilq{|{{LP?#N#3m)8lPbQI2-8=?X?Z1F7xZv`gcWJc!W*)pHPs`>z$dPZ zWHOB^%cYscra8>{#=Eqgj8B)FY+AUmU#^V@68Bjgekh7k&_!x&iV^|I)ENhR0oMo7^NRQWGdn*<>ERir#^~ z(39{=pc-b_q(WTsFX3>c!-P{x9&Ts~Bs(_2Kd3k7zoH}1yGpuaROsyFc%|kwk7m|( z>NWUF>4T?&Oz2;Tu=SA&Ns=0wA{HX55C>6RLu+S-B!w|tGLRQ1Iws;|9-j(nz_;NI zgJ$ddJn>p(>zKDUg(`=&b*u2&4OMuJTIQ@%r}$$v6PB`0rd-NlDs%=u2tG7dypK!=d4rrJpOEw9 zBKewJCN~99=n$2{5*ImG!S|JxaOE}Sq;g65DH@Nik7lEj(L>Q%^yMf-e~c-y dow1{_Pt~}3Pz^t$p4T+3Q|s0)!tF&X{sW?LwZs4b delta 1372 zcmYjQTTC2P7(R2|+sy7Px*%C7BM91ZX(6QzVj>i%L2Zx(^}IDF_!ONjn}T4HJyV?6N9EhY*!u9&D>b&rN;0)nHD8YjAh8{*pEuNuj*xk)NT!vFcwxrSojKjis(H(C+uGXTD0`2P zJc4I)&?>0lXX`w)pjzhrz=)9t62u_0Zh8kdt=y5oMWSjp&bVqGXGy7XT8Xsp9+j|# zykTLDXmDN_XYK=)sfAa#04xd(!;{-0>3lkx>WNt@E@IulGX_x|-6c*kiL=i55GB}d zO2#SWv{IEa%RR2OL$9`%9l#1-8#=MgsycJnrYP9YS4O8EC7O=aV|iD%Ov<{DC+U8Y z!3D#GU-)W>Gu6`ZUQJV7I&WHOEXk~Dp{yC*AY%iX?y9B9$v8C$SNM7*-LE_Iy5por z2-c`=c$Ke(Wu^dWp~0U@>aIbOG#sd54jvv$+6yYqV%?lpLfbpU?+ z+=6YY)KzI6;1?RCiS1>T>+lm7(U14h_N-+ulv3Du8V_#}Mqp3%{T z85_Gf6h{R#Lv`s?i$w)&Aro03hq@u)dl2@7UuRmO-9G@EVikO#48uR32;7ib4`rCg zsEeEQ$)N?EI>3xv{wxvPRGV}ZXU6D(Q`S(V=5m&D7p1C$xlow1lsees*$W%N2(-v` z@QvIBANlW&BZ_nPYj+2`ErW8iH$76AvGp8= zsHb~5L-V%iGMCCxdC~J|4V^`AqPNin^gh$Y3^6uyk~zn`!E7+!GuK!z+r}PY2iajZ z%PzBDaV*!!b#M=HLtL7h)bosMeY)}$=%=uKFA;9d-wr9%Uk@D{As}>vpQS^$HVvX1-#>A}Xip!puXT|fi=a%=VH||~WUiaSe z_4v;DF8elp*ZmFtnSd{l30w$V4*Vr~rKr>m7vl9 diff --git a/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings index a757de959b395c0d6f9bcfee979433617ca9813d..852c6e2a73be8e59da3e98791d3a410fc1143004 100644 GIT binary patch literal 3239 zcmds3OKclO7+!nVYp+x2wk3UsPT!@tZc3rh(pTc7r6oySdu=C8Q#0|7y_>9OmVLxo zR1RE0<$zSF2S5lR5C?<=mjY5R9N<8OgnB?d6vQ1-5El+e{Ih-}Z5jenkt!@pV|ix& z$M=2zw>xQDrt9_g{-7R@L`5kk#}i7jYuQ5&FIQKrT=huz>NRWEt>3V*=h01Q^OmjK zw(r=v>#^OBr}m`x_U?OP|C3K0c>0-xhn_urEef^n%*x-qi&z(B`{Lt{one5qI zURzx#mPR*>of|)oCN7j;z>^i7RBMJgHEr#yQ)a*DxCcG|@R6Cu?D?EoF;Iq4k5I3y zt|?GFX%XZx&KPpd?7bf&`i%FWfc{|ql6#U9bEOo zD=DmqF1 zDP*x4GAT!)vyrZ_I>J;(bv#Xw>pKJm%tr>EAqabjNA#c;*fKqm;z8lQ6Chl}CWWNk z^Ra1xOZ2k3HP0h(sBD9I3<`j68^%_D6L|wWP(31!!<^E9>DEmbP~DtizNOQhke*ZJ z;hLL98n$`i4uR~Dcl+Oh*#^DPXWLd#R#&!o;>kEEfY-z@(M^ob*q+HKB%K{&zJqY3 z!hGr>oe>vN<~4z^iNh;{gYy(r5AQ=so?*HnJWwQHo(G^%pI$d941DcU)Zm!bhIVXFH$9YvT9?2QPBewLYY9X;vMsg1812)W-~v7)4B;7U zTH%y%s$Gre?l3gS8M@Ha8*-bp-32R<3b2kBY#jpt;Y4NOzY96y`A!HNNB-OpP})}P zs!$|zGr$`e<2TU=uEWGEZ%%1PR-+jRU1Lt5X`l&hgv@#x4^hey&$F`~ z*K)mu`gV{DyadP~4llZ_-cd3fv-?BnTAR2VG0`B}En{z>fKK=ifH|I0hzn{K* zmvz8MJW!4tG6>HAi_nRa%nE8gyh>ClTk5&i8SQ`U#iNN|97^#a?texifRpbW>AWK01{rObUmp1LPB^= zxFUQaTob+&z7nnrw`h|Ev>=%c` zqIgmKK>S#|Dqa`A6Mqzckt9i#x}|N>UTIJ|BVlPuVv;8X(ks&2(r41Q(yy^(Y)@=B zR*1b6dn@*C>_a&scgq{)Uiq{`7fKOBeVbj delta 1367 zcmb7@U1%It7>4KnZ$q;+rkWX@<`(jcg{9*1%4+EWI6Sge9<@-# zu8uk9*4>(ikJlgc0}^gDHYbZSUVwZ8QjWJ?XnjB$*3fdsDOW)PdjxqTo6DpY63{Cn z*G!{LQi^XDaOeYAF5}Q6bXjvR{@hEugz<|X92{84pc>vlrT8uL;hO6NRmZbI9S3A= zY>a-U4$J0gSYD@h%77Ze9V)v3*t?tZO7CzMxu{I?+kK^YPZn+ko1Ml0Za~L{Yc2wTLr`Fv&<>VT7+ReobDoW+ zN0b5jsMO!R+UW;D75eO+9+vj?ugoILfncsq9PF|FsE+ber~*Tm&|joJI?wlYEuOM0 zK-kNr_(*G^+YW)FpyIfwkhB~ES~JXfwmSV#8j9zqoS^0eK|X_^#l+C(q(R!`Lw<;^ z7=1k>uGMZ0a;8IEWHR-1fWK>^VEPe&HgvpFy!&X|OAyvwrUY5VT-|~Mwc}gOAQJi> zAh=z_d>QE3wzt>`rCmmU5_|Q<1naV~AJONP{n?dlM>a_MKK65`>UB3N#pAQ6;o$&V zAQ1%(*CmCd*8o%4MQoA1iOBOBQNZph7?CQrnL5jgYGE#o0$8E5+Cw*}=+Bv~Jp5NE z)H0Xme&gI7EKY9k%^H#ci9BF8nDL$mLl*C1BC29!S<9Rsjh8Sdi1X>rip%>k!zk8@9Rm$_HC z*SI&itNaN*#rymt{EPg{{5$-Y{5OIoj0vZO8R4v83r*n@Q4mMOadBEqiFt8Z+z_ew zg7}8`p137m6Tg>aX^(VVnv{}~En%r4U6NJ#kUTC=$a(pkOyuTy`I3BDepmiT{!0E) z(Ug74fO1$lq0A~drKo(Ye5-b=gX*MuMlGsM^}PC$`o8*w`klsUw`+Cn8SSdJrG2h_ zt^KN9*L(CM`aOD1FY6EMPw8*#TlzKqcm2B2YdmJWYP@c|WqfM|%E$X*DT@yjetSaB$$z;Nis3@R6g(UU+fj_~?o3OS!zU z%p5C>ubP;gI*Cu6F1}1ko68oRu58cP&d!;tTVveY{ffVLUl7($=A5#P2RREV3yb=4 zlaZ23amaDqb2+i_PVDg@oI1t=>W6s5VO8T0DOdAmZp1X4(4|Eko6%7!4qHB%4x=k+ zywSDrwBypCsO#B!33j%lCz!K6qSf3j(IO4E#p$BncZVV7>dr4lDpVA6Q63T0Kn`N4 zf-v$BM*#})rm-BY@diCPNLZP=4y$A`nWFAzT}lFqT~cSTd}vc#;J%ghX%JxId1>tO z3U-)4q5B|H<~2;1g=?fraZvXuZt^;|NrPe%Vo@=KS>TZq(zGZF_x&a&72+^x+B+Yc zHn`L(>g)5Of`H1idB|Y^`0K#f-tSc2CO%A$sqb^YaM%fIP5`K`9prV_Vw<78peiJl zAcGC!iNSpe-J$QszXY=bx;fx^ZnLN_Y4aqS2~q&BQ^%?05PZT59nPTXnF(I^F)5dM zorT!qG{B69Eg(GVi^<^NJO$OF`!G^yJ3#~w3<;R$0Vq6R)f@(9@JYyhTqX>cZNh+7 z01zmeD;Q*^T4Y8VoG?1jP7GO2h_f*3J+OomE#Yms2O?eB7TREp4_Ga50iRKhNrO0U zy+tP1OSK}m4(kv=V(~>Bj5z`lOsTBN3lyI zk<58OEHWW(;!#oq$1G~Ov@5IeK`33}e$y~O6UHb#6B?pKAxA+coE7zzx4Eyoc2Qp; z^cLyc#{uxt#5VQC&_(^0N!s!(>TB)*saT>TuiFhuz^D{&g7An|gZYK}ZxMf&u)cY- z&SB80T{ujqN!QDrEHD9F+g_C`JkQ+y{|AkQ19a^C~mG_8u$xMM0$xBU?{ z{%7gDAebkPg8!+1dm6U$YFy+pBMk`Ig|ST0DBu9UOc2cBK;|VkIYU16*rNjqHOzBltD_fO8Wl||AwsKCns9aXAD?caYq?TNsd@K20^6TXF zKE!2^?UV(dQ+3Mq_#mjpqbjN fc3%5b`&PTzv#KZPIg6rKJl6UTKbmiO^_>3`fAbaq delta 1248 zcmb7?Ply{;9LL}MdGjwz8(VhUwORA*c0tjNbSo`FrQLtsjizZfnb{<}n~k%Xm&t4< zGjZl6cJ+|02SEgB`#`DGLhVTr51y2wQcw>Ssp3KLP!FYIQT%feZ~Bs~$buq$hX;@M z`}6&MKfjB^7l+TLJL1gjiMjdY6Hlg2rcY%Sc4u?Cv6wFuV@t~`rPcCN2gb~`2P)P> zxSFtQ&U)Q#9QOR?(?R$+X&qlqdLa%7N;zJ=*u7BNY~YowQ>me8-y_%~IU}1|oHo4* zcJ(wqP0G>JMZXmwvr_R}9--HH_uQ|8bby~Y_xWgSF^e018<(TIGOab&32TmLqoyB{ zL?S_N$_Jo6Wmf8R93ramar(BVQbF3iBZpmFA^EKwdQ96(UzYdMkw}5Y)d%UbaCBj% zuYuKLrC9y6kIc5|xaOLRQRomH>bhx%ODW&9`aybz^({yD7+x=i_^8!%*)KZSQ$){* zBRg07RZ&2M?mE5CFi5lbkY!+cm4EIZ`umI%>o{Q2{{y~~*By7Q>&tfjyClP~Y^VKi+;jiW zy*SU-6bEcAs$288OrL%C6apc#$>ha(AUNLwjsoBZVor- z2zO}wuE9l?dafatncn5rrPbL^3n<_v@G7_r-U07|_rZtUV_b?0xJ~W~_ZIgNcZ>Uh zSNH@!#V7d%-sU^}*8(q$2@}GckP`C3iqICQ@P_c7@Tu^b@RjhB2*n-ZVez;)E83zj zJ|muoGJF_Lz#}jZ*CBzO7vOn#8Ga1EfVbh#k|GUBG3k(WR7y%&sU&?P{V3lf$K@$` zUM|UJ&kb^9p!g5s*bBi)vRi(o9YGintD?Mnxx&Y iy`o*!u4$iWx3xbaT4X3P7MYLaBDKi#fE~Iy5c>;0*o(&i diff --git a/WordPress/WordPressShareExtension/de.lproj/Localizable.strings b/WordPress/WordPressShareExtension/de.lproj/Localizable.strings index 7dcd21ffd0a4b8c832d7f62064b92c29d51f96d1..653f9aa3a479552f2c393709afa2bebd342acdaf 100644 GIT binary patch delta 1524 zcmY*ZTWl0n7(R2`-R{oL%x<&AZM*c~Rtlt)n_vVLwzMQ@DW$vH?NaD^cIR|=+Ud+@ zW|mqmR%2oSujM3$1W@rB6O9Tn!4ToW7{UW$e89x`K*EbeqQZkQ@ev_^B1^Kj<> zzyJHc|NG~3*VkRI4zhj1{7{P7Ge6xPdwSonR;j`5rr}`2DJe@xjBoC!o3=By)3CAS zzyZye%JrhkR5m|6kk4t3j>$7jy1Aq%LyfYo*)`~fL(|wyeimA}l9HkrDN+!c$sH~k z8yUva<^jBKJ2EO**NiH8g+JJmSO--LO*npTqpq7s#VQ$K9t;)wG<#aJZE~6EBoe=3 zWj<4{>$4>#zEF>1cxgR7J^OcIRYP!h-O)_Lp1*Vmj``(0+QpnT3sDtmMzLSj95_UI z(h?oy3n55(uAn?S_B^1ga6;3uU08r0&8RALP}Qat2Th0$AWcVQ9Yb4lu$^;3_GfFz za%uEimT8UqtwGy=B;N>$xv_j*MGp4W8$wk)K8&4)WkARDxbGdH4O0Z#LrH1Qq67H9 zdQdHkuI_LUP2-Xxulv7DquVKT)wE`FIZ87(h@WzDE<|A%Bb5%Kq_nl>7bJy#Za4h5 zPclQNlVw||4s_OJj2Fq}Xp)>2(&R@5Mhbm+0yT8%h5NnlDM2PImlkum**YG{VjWi; zGRN*s#&%$*Qgc=CgrS{`_(G6vfff>vc9Zr%TgwF43mU)ze}W2_a_xh4Q&~mch-@V@ zp#(V|+(LTeU7V?`r*CO;N6AD@r4?iW1{!bxCZ~ek_Rk(YvNl0F8>@YXVdH!?kY?m@Z#Z;ed_rVfED?`qEJvHdIxJ&k zl`(CUeAVwm2Iu9L9 zISoYD%gf4VJ;0-}4ROk;pjj%cVx6vxL1iaLqUq|Wn`C%)N%d<6?4=17s=}FurD9k! zE477$;uF4kG^|sVUHx=`Ko!h@->4Q;abS%U+-g=aTgUY0Ks6upALx>hN1|)V1{p3Z zDN8+0bRG_^F#+wxVA!Dl5^FQLA#G|eDM>F1&iIrUgB+Lk#aNNfYB`-%7nzh4@@Z2- z9L+k&P?4pUl!r(rx`e!@K++-R`7E^`$%LE9`S9(zMOXvQVA`IsCuMEeem`9l*Mq}#C5#}BnX4kThu{+pF_5^#9{fNEDZQ^>l0d9ml z%)QTj%w6EFao=(`xnFpmSNH_q$*8Nx@IwxI_ev}>pa{5^8Gxr6!SA4W*wA^-pY delta 1491 zcmZuxU2GIp7@gnU?f%}~vQ*M8y}Fc&Da97Ch(x-DVydN-?zY>drOWK@?e4VGJDZu= zVo|Ba#27Sc`4WAQ7!Y6dfd`rp3`Sn0FNUAQM2#`=0gXNwm1mXs&2Aw+m`P@md%t_W z^PO|%-t0Wv`R<6M99S7mtnjv7L#L*OxXmnw4(ohA=f3EOw!o&x^kRkXH@U;OlO7)% zp4hMPA~P~0>;(s|N-wVb8Hb?MyK*DhHZjH)%te+bvC&$=(Cv!O%d~3RPIq@V9F(@G znE|ah58G7=eyQDy8`R``K=j1-rkTNtPImoVo;0VmMMg`OHtW!;R%UKtp2U0ZFS%!H zRm0RutOTE^N5w~hiU~L?2jHZdJTl!NiT$xP@)otzK4o`dP6TquVA~MrJrFKQL@D%J&Hntu+#7eqG4_6)C5Mg{ZT-!E%Eo-Jx#h%qR{Cx0FXn_JD3L=(e35 zV_FHvh7XklEQ>YBs!9KNMt2OBL2;l>e4;Oxv6iS-)^wgHkp|HRs!WYnOPa&#cFv43 zr)F`AQ@M74Urh$58fMk^;SV|9H@P3n%ciyDs<1BY`tLZoLs6W`oCzIB!NIlc)Mv6T!{Vx$3m|m zk8N;>w7}u$)2#~#TENFbxFW(LsBli`b{|ND`$PkJ{13ID30d7L(K0hImmH&Kl87(? zJkSQco-R3$i1!fjLS#dfWEcj3Q|-Po@J~3|jtFj^7~kFq6ys@3)MVPxcuBKL^+etA z_93?x?AQwaa9rHGE&%~KklKu4Pg#yW&kR~%npJS+=HqGilP5djVQ({p2~8Tp4>%6P zfo!3QZyg6J*R^UGWH1|6BU@JY`L>Dh7unP7CXX4pbd}+KfR31?x31W{H?=iS$oh}_ zpMRAMqHQ&YE;7rmxz@wB2#q7X`qiS%J2efjh`J|mCA<@!Be}>-eGf01y64=Dr9bz4 zBbGXY&EC%Cxd+5K(ya&!buWCvo5K6TdEugPN%&0oLVQXb7A^4=@q+lNcul+`{wn#T zZfQUol8#7aX<7PKmgEk(SAJF=mb3D-yeNbGk$gp7lfRO`mVZ-JC9FKD^ecl(SuvFp z${E$GcB#E;-?Exj=Tt|1T|J|oSHDzmt3Rv1dwiaao;FXPr{6Q-IqoTYPkXQXsBf3= zE#G^-TTOFKCz{s$9sZO*<3H|S^sffa2HS&9@SWgV@W< z=(}(v+#kLgz8(H15{z_2dLn7^61hx1Cu`C8_Go`J9kruxM6bp+#FDYyv4NNl7n|F~ GQ~v_Z=+8R< diff --git a/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings index fb13390417bb590677dbf61757185182f8f07208..757bd63a7b9967342e4a3a47d6cbc9570b841ca6 100644 GIT binary patch delta 1154 zcma))&2JM&7{>QwcD%a@)M?}d2v&vw2^PwS)hbdEP!cBriW9r`+RnE#cqh)1&F*S< zg6aSY9N++l5ayBtv?@ZXDzz%&!be3~sfS8P5iNf}#Sw{0kV-w|*0s$cG_Bw|n)i91 z=lQ+sjq8oqw-~m5V^RE4-j;0Nh zc)2(7!#%o=C@y+zNe;DW<)Ml640g+F`(4*|C#zAASAAr^NukBDjH6>ps;wk(kxZrt zop&un?TXjYxF670@IB{)^=W*TY|d|6hepbMq9Hs-^1%$quhh)>lBn8SAh0#de0HK9S*PcO%=Nr#fbN}CE)Na0v|2l=5iK@W6kD!}H z1N(gT2ll)N^9yW<4{t`wHiR0sEZ2wMiLHGzwto@Ziiufj16!5D?^ARO|5m-_Mi;j> z%E{a{ZiTzYt#ZF`zjABbYhL8T{1HCM8@$6`;Qta-p-VU_3Gx53j3IGrUA+Qg0f_{(y7@Pq%pr8aUfiJ;B@Dz}BNtN2AK`A3G zNVlZh(zlR@A-EexU<@Xp3opa3;7{-wdvqf;s6I8b3j~DrG-nYBE*Td5|sc|m3n9qLL88gP*tf#2*`;mlQ?})Xhr9+bJ%ab z|M&m@zS;WO`t$LM)B%y)+10&w-=dFuLZ9r9N0uJw?Moa?rlO52jC6lyps6`~sAX{N zx}goR;gMY1ro&|GXx^kd#o?SnmzPrU%gEoVGC_rbknf(|9Ed=YoLPC%U?l}^U{ zJBgF0w$V$E1-bCCtXuXl$>-fN`$2LpysTx5q&C(kua5R7>4ZB;bKxb4@~Cb3MawDR zlIsVtSd4w6G$Esdhl!Y z3s9RF=p+FxxZV`Em|l2s`AXTJ?KmyI6 z4eSGPkO4zr5-{)?xCy=oKZ5(<8APxKZiSV0*bNKNg-78rs?L)0yD{5!7t9paJThHm9eo8;Df2!ZsAL_FLKkUH=(bxP-Yrg;h diff --git a/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings index dc070583f272cdc4282b375e683412679dac0025..bea29891854dd011a6fee535fa179f32172d5792 100644 GIT binary patch delta 1096 zcmaiyPiz!b9LHzoy?OJerEG1sE|jH@wxA7ZX=A{sV4&Mp!0qm`JG+8yO}hf#->BCqpS*w$HfeKvK-@u|mf(sGU&L!^8x zm(M2ihQ(~kPmA6B7K-wha*VI)Z}AskQ)?kh7u{t#oghw`+Llw{7vXXKT#4~BN}O*6 z3jZ0ksKsH+U$lImKM;F(3w*OTf1p~mYo*9*nWZ_~@)rUj4%heh_s@(`(;_%sWtQvs zpWXiyPc?SbGffy?4U-D7oQVH zn_}N$)Hg!SOm2aA;noq)bG_L{eC#(K`S)^kWh!4a38RfBGNeLhvy?4)4rXpW>SWR- zX5bJ+E=AgMWSL^qBlE02#IE!1MA#utkwsdHY#eMnFIDY8Ma}UG(I8HB9(Jwe3GF_$|Gizfj}+t~U6}HgS+Q>^SVO zrfv^v8|T-QZ7YH*oEI(&w}tz{BjK^|RCp-@F)r>CGomF{#gpQnk}eHM?@Oc7QR#E( zvUEeb2ljv=kOT#A0$c+(!CmkaJOj_c?-0TWjKUtc3y#1vB=9J7A%iuz3a`L#;CJv3 zS(p3dF*z?Em%os|l)pxK5k=7!)Qb`*jXZP~T}2PjGxRI^OL3HQ%5~*iU|eqzUtAGyWT=j$9T1 delta 1111 zcma)(O>7fK7=~wecJ?n3u?PtXBy_+riYT~BXhG#ig8Y<*8pqh{I3`Za#5-AU+3Z@o z>ww#X$%P9S$VlxiQs7Vt5JDA5P^4B>D}>ZbMGw6pp{i;tA$~4!WfBL8910v}<}ly) zzTfvgw>oZhTu9W#0SU>2L&KjPY5shq<>(iQ)(yv!qp9QROqa1GJC+;I_ry+2^cHq} zIJql6RXo|hn@sO1nRI5qb+Bw7niz2d>W4UCyQlKY7fzB{T1eZaG9L8Ykh)wXtTgpN-1VuCX+o_2y_XvOZOvcI=>RyB4l^ zK^Tw6*$+w&G6qQL6r0kw@s@6de_+qu#{{{pCqo@t3UjM{#Yk(0%u#ImWG2KFV$qdC zSJ}j_qH&>@JyJeki%?@tbXho7ee~x?83i5;!OmpO>(Yr1s5|$Eax&JX#5D&*c)e3e64C8B%pZ_FU>@DWOvv zKWv&f(Sk4>!%bV; z-y73qJ+^nUk+Jg@PGyh)9w5L3HgJK3x4(nYy0wg6V_Am5!)JH3zSXQ_Y)S50|G%-u z*mKxgf8PLs3eJOX!4kL*z6W=}kHV)yLhyyN!e!x#@RRVD@UN(fadAK#5s!RL7&%`^qcxU{ek|dNowkB+6@5P*u3Qxd9Yla diff --git a/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings index 46b9c66c10afa93755d912c2a322fbb051655495..5d8d87d71dbc1742d18aff2b9d7aa8b17f636013 100644 GIT binary patch literal 3067 zcmds3$!{A~93Fed6OT*NX+zpl67rg6X&To}SPCsoN#Z0>a1z%`oHWbu;(75*GoClh zJSQ=N1L9C5Zk&245cWVk?hGD}DcSXdKG!4?Vv5*&dF zp1@GgOo|lg8d->AJ5MarF2rInO?8tN!5%>tF4-_VGYHC2S5Lac^AL8ND6(h)nKnnE zeh|ykBEq(gig=YEujCR`rX^(HHG(ihJR^f%;K*bo%9BF8TSmBmO&f}~Heyo+m*|>$ zEX^};s2qbb3Jt)g24i);#k7H4=pGT*rEYG_^ophjs2+{elBL_dP@Yr8aKVeA40d?q zE`jP$xBHG@)tn8-~v8V6yY^&TK<-Bs=W-a zU1w;VGqhCE8}cf&ZG#m^1z6{^j*bBUf1{G{+fs_KlIsJ(!?Tp$eGOZ97 zL$DdXgzI}B1-B?K69fuf_xHMBnJjMrj{7GFyzq3shydG}ifI0TA@j*=UdkP)5u=95 z{~-@vtjzU)ao@kvb+;J<2>##Xx4+j1O0Q}xy?4WIaJ+4wmYPzwr$y& zid!{o%YVuPHMMJ35_U}0>ANlGXQ$uR-Td$KJRvN+DqI!b7d{m}7rqc~2tNkIKzm>) zkPMgsC-7q6=U^l_5Ii582wo1p7Q7mKC-{+gS{xM<;*9u$_?Gyd_o(kW?NnwGG1S)vk?%F;{H>(YnPSJF?RNa$o}GL#KHAG#L09(r32$gOgl+$YE7 zX_?7a$P~8|7A{IWicz7}Xxz6)7$s%uDad*4ez}lZ(OlwU@$S1Oobz_8R_B7$lBKI-nP;8 z8^$)q#`onqH}7X#C-MdU_T)Rosjks}+vBcJ8A=R(U93dJA`r@jn$vc*$9HJC zWCc~)QN0a5l_L%NYFnu{#oS;DHpxwE#`o}o$>?CoHyu0JI#=SEUOvgnmJg5Q)sPTZ z>mxf01?mTSa7S%x$o3UXpDxN730CCryWA4W^qSs`>3NwX4&$l`*;Z|3@YmyUk>vP*i7iZFs^u> z8(h;i!a)+99o)v!;?}>j(niP|| zrG9BhDoPdUCX!Gq>O{Lx9A(fLnni%VMn9oT=rX#29>`d(m$%B5F1b%G%8vY@Jdah} zjyv&NIDP7XI zwndxJ4r`xlXSEC3J?*is=}r13eYalH=k;$%3+X2&`G_1PUy^Ug6>^s>2*HEf%fe3p DF>7dX diff --git a/WordPress/WordPressShareExtension/es.lproj/Localizable.strings b/WordPress/WordPressShareExtension/es.lproj/Localizable.strings index 109ed8c74048e75b4435ac03dfb0940232c91d2c..0376fc619741a7f222718352ada3a61cf784db38 100644 GIT binary patch delta 1521 zcmY*ZU2GIZ9H0HXkG)&2l;gW}s^ndJ%`)rb?DyiI=fda ziq#j5@}MwDLrlcziy;9`FfkY-K9ERaLL@%;pv1zP52E0Mi5e6Cdsk5RW%hRG|C`^} z-Z^{@zdbAuYG<=6_3??ya}!6-*4MV3J~qOtQ+U920_p^n)C$q2ws(52ACwO|KIH)( zV$O7aKdDaVMn{H5^DMBbctzUKUP-00jpH`+r*OC(yUt$mi?&*+q&fhjLlm`k@w2k3 ztuR9C?hHLPK%6SInNt&Qsi&5w`>@5yWYC&zc(zL{YKb9fceFUj{5tb}@ujp;nCh0T zqy3&|&sI`P7taHX=2%Zp&-fu~F@g_!0dpPy?6nthxpiEVb}7$iF{u&elrk0za29yN z5uM@-Edo5Z0ME`Nn`{eDGMoCvMfkCP%fbPv`EcT}i^&XOHaTun?6ZLS`4D70H$`|z zBg47NCtA|5-+Cx+Y3aH0sArLYw%p5-8l4!SL4!LuaGTtZ4uN1m01cH?dydS||M~%5 zmO|h0Fsai@YDwS!Z5kT@=$gxC^Le0|AEqw^`4FNwLWu=IR8nhJk1kq@TeI8oBc0+T zq?41EgAb6kD65H8Hp(G_W)MRTsv(R#_*Fv`Zx-)s8^li%Hj0CEk~C~+$ol3~hqgq> z%7#QfKkLy#j@q;uh&lP_?zRIos7{66H0=U?g_b>)RJzqNX1SO;oIT&5Rk#lk7mW2= zL1wFQgu`o_RB55$+B1|-qCC2X0@Oe@g5BNXPIRq!Gh(i&q?R=!t2QSBPAr0{y;s~a z*Fn17;-gr%SV(RYStE_dGB&F-hwy1M0OA}}MHKMDI}5pZ^CzW5yCfE(o#JoZiI)bc z52yj*;_Ju(0DA(!wnGergSHvB*zeh_D&C9iXkU8Rt3vmvk1dMp&_>r6b^YYyrFr!fiL)=``q!I}x_>U-F_qx=UP+?TL*&lqIOKY3C{^;S`w-{RD7qG2e3? z289d@+VU1Ks&3r_#*B-3vrF`u%XUtpEV>IZhM^K5&~g(KY=ccs)2{LW;Wgq|F2p1j z;+sXUzUD40r5*YR%IL;P^&9np7T0!YhqTc-?UeSe_JMX$m-Mv0R^P3c^l6>zbNVIyx_&oe zMxKfcM~V?AIv2eV{Uc_^R>me`^RWxD8?oE*T%5#D#$Stn8h;S~)95hv7{f-xc*B@C zE*V#i+s6Hbl31R=iSER%#NI?XF`xJ$X(W4-d1YYOUzy K#dUEpfBy%DRNEN< delta 1473 zcmYjQO>7iZ9DnniF;&sm{S+&keB~ z=EuiICx($*#ZDoMPlW6v@%g3SQ_K_xmcHyxPmJNZw}30jHMz!&LxMTt)}ZeNVP9V# zdsf_{6oycBp7kn_>EfmsKY*UQhY4!x={$CDH7vI8Rg!D-XaPf;qS+AosD`7$N;1{I zvK8HJ_>PBcY_rSCAz>SXLKnLr8SIqOeeiH=NZy~f=JRAdh!zlW(2Rp&Ktdc83aAzw z8sz}3qC$>CR+63LZnGxz+VHTy$$*`fyH-uNP+>5KD8I!XmDg>YdJfwJ!2^CsJeQ-M z^l@iqSCF87f9&f0vCs+g~xW63iKpIHALJ>a#d^4`>K@3eH(?i zY3KA94ja^koK<88)0J+s+%l_q&VG|pQkl8tNA3LpWV%x3vgeMq^?_h7LCcB;(@0eYQjLqgd#V{7-C1AdjK z0tZ|OSm!zMctD8nm2)2DTeCdzOiye}b?j>(YDdsqttS2GhxtqIVMpS-($i5${!?Za z%LwS-ZBSJw(vqCbgzzI}^Ru)R0H% z{X&*C9$q9(T|=&F4S0a^_8fF$zKPD0)xI5t3(@KvS@4R3zC$<_pn+Gw>);Z27hDA& zfKP-cg;9YDF9~l8SAhdm0QY>$~{$6 z*Qsf>PaRSZsa3VE{-FLHn~2TF&c`mrZfHrZQybKdX=k-pwe#Ay+CTAk;y>w6>0`R9 zpU_{{FY7n-JBDNw*Bf2Nb|Y(G)Nns_5|C2=)z$I`3^t$r(G cm94YZIqPHVmURy_A5mzn;KlaZUaUX=1(tuzssI20 diff --git a/WordPress/WordPressShareExtension/fr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/fr.lproj/Localizable.strings index 71fc662de56261bdfb2300431f640ae9ddc00f0d..72e7597bfbca96e8f28f7cb9f7dcd90729a884b9 100644 GIT binary patch delta 1492 zcmY*YU2GIp6uz_bv%_|GXJ)5cex&U!tCWx;wzD(K z{InEksxcZ85+Ztl-H z-}%mWzI(0fTG#1vYN%+EH4~*tIyG&TZKra`_55IF_VC=pM~)tw-#IZ$yS2atxE0te<;8 z&h4OHnR*`kgzI2&p|fi^U8z`e1vRl)4=`$JsZ?rg7cr@UcUOGs*xs|3kK%m2T#fc< z)}6yf$)NUVuStD82t1)gEBjas1J6$2*}CUm%fu7ZB3^D0es9_|v2T<-s5szYW5%GC zF>Vp;QJ;9(D#%!7(r~LZdR^CX57b-3Uj34NBPJK}!xhu;NnO1`qeKo25kGKk>^n8? z`}(0_K!6?!s-7`s$lZE?mZMeO@qke#1y$Mbf0_370CdT5=dxL#nH?a9{cIH?H$)5* z22oJ&SuwmQDX!BO z;&4N52bnMe3mmelmenjOEX21*v)Q={8Oacf6n(Z3+LzM$h+mwnYEzR7`Wvas18vk@ z7GPq#U^?ok?W|4fV=JY$W#AIu3EX_zbcyE?oFn5^ueq#Q9%l!`X%0f=rR*uan|IXp zkoFk6u06_5$G7UxwNG8*j-_oou#Bn`Scm!-*8&-9*^P+K&V}dY+|H8iKot8_o(G7n zHHfQ`Cbl~&v4e^(k5*kq4+ZRLc^hkwx3O92W@ACsGC`%{(lT)|SiqvhX03^261=g? zG3f-Y-mfuSpBCX?oLv&I&*T=SM91X1ouJ^?@osiKx~yeyx*mlgw??%NS%GBm2iu~r zWQD{&ZL9}uR3c^gjv$_+u4PViIr}lTP00^9Wo!mD5{}wf6J#KvZKkLP=H;WCFf#|a zFhw$jzJd#i4xs=M*!i$}xlBN34BOB5+Ab+k_zSm`WuV2Xf05V=u@)w)ZQSZwO(~(W zccSeO(G6-n&c0K0*sp-MBzr5aX;Abot2pX|@Y2O@B+?MI4lp-Vb!9K5pi)<`?xLK{vl`y+CPHAXfqf9R1=UuY`yTbLg*v@A$~jG&yVoO_&52B{3ZSh z|1JLme_Id)RY(dQLbuQ>>=q1RN^k^Um=m59UJ*VNt_r`35plh^OB@y#j)*UduZeF< zoRpMSN-1epIwPHx&P(rx6X8AK7sG$b9dbb~$-xq9$@xfAQo`hxyGyVQvP0r8B^cK`qY delta 1399 zcmYjQU2GIp7@hy!o$k-`xAq8Lp>`C@!ABKV{U81X@f3Ho4+h8QJ2$b$(F#wdvq;X$HL-q~G@nPhS^^L^(# z=X~eh+IDN(*~(aXvxaB%S<*E(Z&XaHdfawgZ(;F7ZRzAo&z~v|nGUvHG)&C-DgT8= z)CxYFBjs6?wM-YA?)XG*crvS+Wo+a}@Cg?_<4&&rnSwC4YxUc7$7BvytOZ9NBNl5{>DP5F#iNL^5g zp&m0Za)^tad|uU^L&FrHQIsF0kR_#U!mQW0Rudle))l~Mp)+=*fr^}2)uvsrLs;|3 z^b1%cDtfW%63e8hwJI(Q;2G63T(~E+!zkMxKA6!opYUfu4kKws`A$XvX~AR8_TNyhr4{L?_ide>y};fU1(a{RR56g z^ms!#8nkW8p2$?IMhzCFjeCnDRt0GuG6?pmG~(hRY}zzEq?plc>^K+|@UcS1G(7{` zg>jE8sHO`mEq5Rh$iSu0Dfn1YC92ycHtcNaXZxX7>V%v;Ez@MVmS{Lo(VMsSED8<&o^;jAfgAdqVO8)@di?^lx0NA)VXxdmO4n0y&wl~Ek;Xz>g zx;ZAt-0>OHM`ddCw8S7wY5gC^p6DU!!4pjn6u7TsvLz)x?p3QcsbJgZ-PmM%{X&-O z_8^UZRqMBrIzX5#g?H&Fov|33+J#{(Ftj}7hk_jUu+0RSH<-7X3(RHa3UiIQ&hBA{ zS(|;CeV_f1{ha-o{f!H9J={KSh#TW{ZkhX$=lCuBE`C2h%oq5>`~naBMgA)P6@P>O zf&X0)g{bhP@T@Q>=z=9I3g^Ut*e&i7`^17cC%WRR;yH2og7~HQz4(jxhZL07NF7qY zG$a)zU9zObz|p|@pd4HuTn@e#{36sJ8VH@26Y_rfs5~owD*x4TH*AD&hHr--M8c7E zk#xj}d=mLOx-mKsor<1~-iZDab7E&=cVhPxNqIEBKK@Gl_4r%y`-u&S-HB4-&BV3j R)?jjPaxzJhSKw+Z`WJ3Syea?y diff --git a/WordPress/WordPressShareExtension/he.lproj/Localizable.strings b/WordPress/WordPressShareExtension/he.lproj/Localizable.strings index c145b3e2bbaf7bda8e339da58d1fda4219a3822d..098584ba6316640c541c34814c52a32f7e1ab3d2 100644 GIT binary patch delta 1517 zcmY+CTTB#Z6vt0z@!QH-Q^;}cHH@P85m~PodE@< zXwtL~jnVddu@7z9#`N;gnAVpXBTY1^NmElUi$FzGO5;i!dwK0k&kQSVvk&|2x%|)n z{LXF!H-Z;NYC2;wjwc3{p<#7I)04+jhB-QR;^g?msne5hgpPJ9u|csx*G#OLQDFzk zVe?9ox?%RcrWrV8ip`2P96lt)hC`9g=15pERZPy%!Mvy-w2vNB6=P7e%0*q>W+2x+G(nG}CqN z?ncEJQ4E88OP3KpyQeZzpG>ObQ6V=w4>atynwpya7Az~0*p@UET{GUDJ|*^Tj8XLu)kI@6NM=y}R9_@1OD5i=*DfXSKqodwQ<`Y% zw)Z2=urMgV4pAX5B#q(!@&J~-7I(2#8o^N^u^sm(cz&DfyD#>NHvb!9J) zHqZjPi|$h*T0@V~GRo*eA({5q)eoaIq#mMmv;oOSka`TiGcsC4cTfhU6=<`XXYKq9 zyfYX=3)TZ|=t2p(;M+kiyYtDfu3S>>s-O!YQbxM?Tv8fHR;sq%D$0QRx;<%$su_% zc`BK(<<{UhHWzZ=cVL?W!uRX}TOt~u*||3Xs!M1N#4_L`jo}P)@PNf);AR%h$k1uc z%8)o8B=<&q=eX$j(s7M>fjPu9GhNJS<}>Cp^9^&GnPVO>zq2eWu=#8mTgx`F zZLGu&u{vwA@4V#v z#pQL?yWVtNasA+$cdfY>Jd~%yGvqn$Nqeijb>3dD>8tSV_qF(5_g&?3xgzd)F3JsZ zXSq+g>)dzTU2cOf=U?I@yv*zT7(c~-#4q~`{Sp5q|E<8TKz|?=xGCfc1wxtd75P3# F{0EW}{ty5F delta 1468 zcmYjPU2GI(6y5pxX8&e(#+Fh`DIHu8)V7485)^+*TNKkmf3{tgw$x$g>vrgLX4#z< zTExl=J_w2J)$n4Bh$iZTiTWZ!Bmsj)W8|l`tu0gp!n!f2@xcdU;+@?sl1+B=oqO)N z=bpRSa5nth zWoVCSr27pkp(gFLQ&Up|TiI14vPFvzKs8Yzz*c&(pxV|Gzz8Lq+o?(8PPEY1s}#3u z!&KE%TA!mPwFGsEy-LaYMab2- zMAZ_SVf89<-ss&_x;m1&=Fr?ZcehbzC}pX*m3s~dkg(X5KUS^|zjGyHJL{32uu~&$ z3WaD3+b{a)ZC}UtW$2Mh{YoyWYa|2X-r^OxiRL1N?FI3Im2$C+ zc^J+F8=zTMDh+gzL7|`i=jjMtL+FaFJczt?@P#D78=)dNEUkn&sSa*>|6x7w8+gU*By%qrPqw-!fz30RD^A6XCT(Te;tV(|`Ovolj|BW<9-rqm&vDNQ&&Qrm zJ*PZhGMkttCdItMoMb*?&N4Tc4C`ZS*e&cfwv|n=W9&4?a;v#o?m4cBi*nuEFbCYb z+~?c{?mO-Z_Zv_65dS#;EZ@i{c$?qPPY^GuBDG{AiITm*o=?uD(wP^sIeo;)7xv6AEEbov<@ieJMf}ie*?gEB zT&q+kXsvEFZ0CvQv8N_o&tJ;Ya#c$>woh!o6uzGg!Qs)SJe3mqvHd#tw zyG$%pJdA-?QfR57`%Dq+2waCiY3cmJF_tl`QdF zuC4jbPL{=FkR(tTA0ID;hjX}1ZVeigw9qS5OW_77g$E~Y&p)3Cq$`fw(e=QVo+8J6 zy(dw~5^M$ym%?li?PWiq7|Zb^+-MILE5ZS`jH2uvag3dmwNPQ2tl^dwz>M$Q$HYN) zMj0E>^-h!IbHpNLpLO}g14FaKFIRhMJ?axLaGdW4-fa`HJ2zpZ@H#g0DePHJ`~NM% zs9TOr|MMc`eA-;aW%~CZc3%R!u09xAG~8eyyMtGy^lA;aX^(d7UqSD^74#j9*|$n` zdN;Or6U_%8oi?q49I!wQ5MTnr$$%I+n>HxBCm{JxG~?WD413tRcVk-vY2br8z}!hd zfdXCw=fHqVT?ORoD`~60QrsKnTMy0{6i~a0aF!hBfGPp$|Lo6nqvyGeR*_fS-p*_Zk4 z{Jy{W?B>|!*y%)vpB83j=Z+qGaQ>l(6UURO^zcF^s~freVqxjV<(1VF#r?5I@MNic zn@Qqpl`5^(t%mJ1AHCl_jkIfYPei>TI^HaK653)uES9r*1S!ewM7^mgTdn!Wc_)V*`svOjGlNe#LOC z8*}tPaOxVhNMX*TzSixmr*Va_FNJ;K{4Dhv)bsKg5_ETLc20=04%cFr)d|(msc#WI zi`#6RyKB6lyBiv=U}_h`yZS+|#U>_uUfIiDP$veKd$&q@Q0z|_=`7A*pHv)oqdRVI zNU}BNRGjE%{+&D*kUMQ!2L?9?Xb>5LcCZ>C z-hKYR{m@SPEpB*Cd3ftGmkc-fM|#X%VJVj~OSnw8!w%+>*t49rk+o@qvM6^ayCBDQ zUspB8uEOEYfAs@0cn-V-&V#qWJKzIwfjh`0IG1~pdzE{g`;hyI`<0jZI6uwL^9y{1 z@9^J19>(AlJO&dm4_9CtGWZI7AASNqgO}m&0uqLVdxXwmVNR$Bj_{ap7D?y;nnL%Y zJgOldJ&Vqw^XMY_3jKoq5M^;h92Y0WyTxfSD}EvVC`nR8x=(sQ(xr9jlypwID19q^ zFa0eK%0xabzbk(ve=UC}|D_Bnw<-sfl(MR{l^2!wl#i94mETlReO!H6eeDMIP4$xc WLkNXNLldE?kP)hdo?%Z6X#W85uZVL1 diff --git a/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings index bc3460ff050f970f94a4567faf9a6dfaad8c2f28..4dd81c0acbba211cb846f1b0ca70b0cb50039e27 100644 GIT binary patch literal 3297 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 I`M3-I13Z(WtpET3 diff --git a/WordPress/WordPressShareExtension/id.lproj/Localizable.strings b/WordPress/WordPressShareExtension/id.lproj/Localizable.strings index c7d6ef9d22de9316a90b02f0cef5f7b05b155714..96a2b28dd88b554520325f5d44955f86bc8aeec8 100644 GIT binary patch delta 1476 zcmY*ZTWl0n7@qrerCUpZw$>h7+7zJ(ftWyoNLvWf3rlCV?RKG?)6QXg+S!@OTq?`O zYT}y#t>?kUc!@knG%*sNyhKbi!3RSmCO-M%iFz)afa@xP(T0FD71G$!}$?Qd>{pM{)THFCt-##;Lbr z597rZt2i}Yv}x=T_B7wuR>|iJ$%0FxC6pdVzITxQB6o_Fd^ccpvl+RK{VaC0PEV1V zze-MzU~iGQ)T^@RrSn_b_aZ06XXD0f61YBgh{MMD{o2eZjcPQC*eCpUwn-Y?Q9Kd^ zZoQJfzsUy}+1T#gyU$DzhhlUxh^g;I>o+c-a)U0DU9!VE!c|PY(ou)Tr~o>FqKADf ztDtibboQL;cO7(=x+I!u!p|OY92Dbf1dNkD!mF6Nc)=woqA`i=6y%Jxgu_(E(J=JG z`Gz$VHD0pYa{F4j7&tg4jr0n*O6I3XoP-{V{Y?AZI2Z;5@KDLOS$LJ)n+IfBN^?h( zxJD}Zmc9RvX?6sltA1FwZIEeCl5?@0Ld;AN?7$)_`L51lGg8!;-G%P@WKY6&EMW`e z0J~;oDc9k07Kgc2j&dGXxU5?p+FZ%E+9X_{ae4|`h8%j34dn*-Zie+OtY-G@_qYj;fb2SmuVuo$ z%z)2DXkg9)AuBY5@%f1qJ;pBFv+Kqxdt7^neWMKPv&W(MG=00Q?t@nJH=$K_$k2Ao z0zXbgLK!BAcdr<*Hg__JD9Sp>EG67|dN{%0yy2%b;xAz2;wl9jRstmOQ`#Q50^4nM zh<&OJZY$k&c*e#caS6!M`mq5W8KwWupUSnT-`sH116lwrfX&QY$3Cb?A$<%J`fr%W zv5RY9yBR84A!&dmNFl*7NN3me&RiM#g_{%XWwUc&cC67XYC*H6$FaAZ#M2h71+X6Y z55Ta1O1_Wn$#t>ArpB1j%X+mQ<`@rdt>iaDK=te_T57PTJYSnTvTqHkz3i}|@hHpp zkZG`=v>~&2f_OA47N|?vyymQ>Ay**=>ZbikB0wl+mN|`kj@#hg<8E-Dai4RyxZik@ z@8%Ej1)lN&e~JG?FoZqAW5O|ES$I*{5Z)0!5+4N;e*J*%=vVX& z{Z0L*ep~-e|I27K`iz~%L1WaIH})ohq*=~pPBteyJ2Rb2 z+HKXS555$o?RgNy3RM&oDy90M2-OGegHkO@5%EzJ5%1uWApWzPs4u(2ng4wMcbn(B zp6fb4DM$w|MM+ajZ#lI%4k&XD|HL&QikQg`2(I(^I7Gt&(zjOD?WB zG+d@`75QEm4GavhL&7fE8pew?)-NMw2s>1GfjsvBTn%Tl0MHt;asXLQZ!5UXnaEp*NBf!z*wa#`ZJ~vV!et!5Eq1Te(RE^i z*c78w4LSn?Wvg|+eQ)WE2sMsn%njQ>JoKGY1F0>N;X?L z5XnB5cBYF5X;`OWSezo*2HEUoDZ|$Im=)z-qhQgjKvmZu^0YuH5=jw9^OL2vNJ^LVp4XdE|iVHii)na*N&B?ha#p<3*s zA=kzzqBdq%G|Zk?I@nEhm|>+K&E~=58Vvv#5}Y6|2`V&7)_{hjQJva-T5+7zE7+mT zG5etdpQ)Y9(zo;`<5gU*P$x+{PR0v4>d@tqwSmHZHhS0<6|p}}%-#~|PDvMKRo*KP%KPP_ydp>P zv+_mx@|ygSd`tdL{zcK04y9WeP!1@El&q3hK32X~H8rD-sReaKy`;XT-ctY4(prax zv`4kF_M!HpzD?h)AJWHkOJC4W>6i4Y`X~Br{Tuxcqs_<|qejWV#xuq_gBfp|yUfGp iglU1JwIsy}r+wZ!Uopnm|-h2O0J diff --git a/WordPress/WordPressShareExtension/is.lproj/Localizable.strings b/WordPress/WordPressShareExtension/is.lproj/Localizable.strings index e8a2aad30ee69aee37c2267bff56fbcc564920dc..3abc3577a4b61a66ea41c500232868d33c92cf54 100644 GIT binary patch delta 1458 zcmb7?O=uit9LC?-`JRo<#*k=|u6apnX%8mGK(Jz~NxGpzlBT<}yZPR{*?D*O%}!?4 znb~c(wnXuuP*CH0uuv5A&>|{=crXaLc<9BVsN~>5)I%;R#`fY(|Fc`chTsPS!+h{Q z&+~u&zn$)#?$?%1rOb3^CObRVGrzF7gqL$GWHoQmLb1fw%J%w@<5r&a{NO~j_Ttt9Ih9UMrcD;uls_-@^FNdh zz9&B@=3;R;6X#jEo&PL$wPliY-L28ZapL5u&72~CRl3;OF@!CT6apMd<7&lriA62` zo!ZME5>@`VdPvKjX8t0z3nrV09F-9)qmCd_~pIWbdlZj#?HDNYMwQ zX%~|kVK!N{DfU@FeKS0}lqwM~bWeDm>n%4Y!+!H4|5EPQSV&ha63}K@Go(nDlQgJ$ z4i4N#)@d%*I&^PKv*RFLbiKN1LQHd-UI@%k zBAcYd!mg8x@m0NtpNA!+BAtBPz+E;S3*G%b*- z4J+>pSI*;dEB{98Z!yh!g=SLJrul%M)8>cUCTNgvbl)fhCdf1kD5FtSMSGx2;EoYR z1#n|`8Ir<9^TSHKYu02oUL|E>K`0yDL3MA2Sfla{%y3M$Bmx-3?ba3swDg1DWWqVLgCLqcpVJT;xs7$Zqz9<8&KZQPTl@p>s$IweMkSv(2O<%8-qro&qx}UVH=l? gmyK79_lzHn-=p2p;bix`CUF(TqYM5{B|cvwM23aXpG zs=n|0zxwK0|F!;S)=+oeDl8V4md~uLuC15OqK%>9vOR(ww?fjJRd34=YNHQ_5v@1Q zoo|k>obn?aQkWxtbvd5kEZV}W3#43uQ-M#hPxFO^+~O4S%hS2>c zie1-wE`BtqE-v7$puy(!UX~Sy6l)TdtL$zCvT=VGFu*O%|6LP9^y^RW^ z3JUotc8}b9$Jz|G34*6kF9HLm%?y_IkQ(4zSav*0Hj8KkYs2 zN2zCQX^J0lgRmJJvhVZ05l8qp*07dun*gW7FbE41wVKytGivIg)mh|l3hcYYi>hD( z)Ikfl0Pz_D3>@GCVuL*Jz|WvXz=L2HP(Bb}Z2$sV7|ilg6qjy}Qa1rvu*o-v{QNG5 z<^OD6?}>9|ELp^Z8>ou*vvqjJ<2<{d%3)*hn4ExgJPMN}r0D+#jr?=aDqyRq; zL#J4|fLr!zBJ)?$dJmGe$dg7qudqlWidagxx9jGJvFiqZ8-JfICK`irq_&G$FQ``Q z;lE83(7^@pEVu$*1FwU(!H$p-azZFPF1#qbBD^bnEqp8LVp^OOPl@xQD{hOQOQJL^ z9g`lAa#B%Rl^PP0u1ar7A4nfcpGw=`$%=fdJSvaN)3PfE@;UjEqA5p|W6GFPR5lf= zJf&Pxt|;#-pD5obKd8Fes}86cHLI?vj@ne8RR7Srv=drZBif_dMePl3NBc^b^^`uS zXY_gfW&Jb#S3@@XjJu4Cku}a5j~P!JSB>|KFO6Rksl$mAiHSrxQAxaD-ezXZaWiW= aX4AZ2zGS{>eqsLJ(bdu4ah#3b0{;X;QoZs3 diff --git a/WordPress/WordPressShareExtension/it.lproj/Localizable.strings b/WordPress/WordPressShareExtension/it.lproj/Localizable.strings index 8e8e2eafcd7e9d1f335c1d4d48465478080ab329..8386b75e29f74281437d228454ff3d60e3991546 100644 GIT binary patch delta 1507 zcmY*YTWl0n7@pa=>@YLiZmli0vh1OyP*g4@fCd9v3MjEH+r5`kHm5VE+XJ(6#+lib z)=SkVZ;9eDhL~ugF;No<2_!}!;)5|hm_{^&1QHD|COjAwjT+zlXSXOm&YAOn|93lA zR$p2D+IVcQaw3xwCr;E>bv$!8ORYIH!rYL!VI{eecgUS-j|Jh>0XHCih(@VG?+utb;R7A{AZVw#lm8_3bQH6s#v0`C z2zD*vP`Aool^43ZhLG*!*|0TR_Z)_8V)IdPn^xLOgBlG2{<*l8x5&}#$I0<9A3>C|1ltfqC3$ymVcAmDn!OMGtCK$g>EvSF-~(jM zr)0Co5pn_+8Uhtup(-H3gRiPU&^rFE($8;*$SCb4v$*a+L;9LiDW#pqq<%A>pZ7>H zM;u~>d@*)tYsY>PT62*%O}ju}v1Jd)gsNE#*%VpLy46F9D#$H2?rVn}xP%(;XQQ^+csN2O2@N}9hnv7we=d%W`Bs<2KO=oW>$u!}sb%VDzPJ*EBM#e=h1s?31fo2vCxD5)xcMiL5-En|819uuU078WS zkl4^Q9RV@l#Z4+j=o@u0e5EGu33?8o+AfytoMk6{JPo4cbh7oG1jk! zI=21}p;-pftZ08Lf+)Q=v;lJ};}e_AQWvE2@6C;TOux51pQj$1jJg$BkNL=otBc(^ z3az2;a(K6Nm6oj$G~s38q;N*KD10G&B`gWQijtTTcZnI1ik|qi_*+bmZHeuU?T;Oe zy&gLmI~BVi?U43Jqf$|NO8P)LEqy92N#9A=rC(%OPRd>KT6wd)Pd+GP`KZhm4D z__g?-TEDhidqjI)JF8vLe$;-~2legxE`36OTz_9brJvU?>(}&~Mz1kwY&MDpF_|M^wvuma@B0UG)au#* delta 1406 zcmYk6TWB0r9L9HUyOX)3lh!0nnrsfa*xJOD#A>MuHci?R$YryaY|3^!Vw8aW5c#h$g6ad_MX?Q+SOmrm4M(Mwu59FU;i9 z6SJe(vx%FXA}2$*BEG!&XEPY$@aFZNj@dL>V--@cwx-I`J!K>(Q zx#TkJ5C=X`jtaW~37zn^q{AttXJ)ZxlF#R(xt}S9a0OErFS`T<_|eEMA77Iiid>nZ`4%f8cj1Q%jBx`9AY=Bc+nNeyoZO z4Qz^B4$aaOTjRwMxBA43u z$c=jyiVId3+%~$ntt8wtnz=2#`LTM6D40VlG~jax5WRO`x)jZ%Xe~k`o24bTkn)K` zR;Wiq#-nAhTfrQNB4r@xZP1?BXDyEK$Ff(X5h(?0kk3Q#xzU&`SWT16p)1@x!hT3? z=CWCi3-!3IUHn-0_8LudX%dtuPd+z6xE2b^a9{6%N@4|mGWyL~&JMqts}6@7@$mt^ z*pkmGTxQ$QL+SboL$(wdV!nr~O~M|1C%kSXP5y^aZKL+~p7zAXd>x!fW1qz?$G#Hw3loAbydu0Od? zf0RV2Pa2kvNE1?CT9hghNbgEtNY|uqr5`q=yRsrT%FoCL-{w3{jv#KVVRZ!2mI$Mq^Bj7z{BX)>ITsjAG*K9fD@EA9iM* z|MUOrL@?V11%>eFG6LsuR3Groc^b+9LzdO zyJ4ln>(qEU6bZIR!iHl)^dec~i^+1=kY*aWl;U1jY^xE?GfSwL?8h2@6lHwqXR4yC zCkO}aVYsP9wc^k;tR$ME#}<~aQuM5vaEi4<8PisEsH1lB5kA^#vh9X zy0A~&q8fe3aM))Z_F3IsYwAkEFkvowTfTR#t}Bk3%;Am!TTzEq!&EgBDmlY}xv(p; zIh0bfu8sBCteqVwMpJUdP4op*p6`!jbk%`HdR=M~4g{eyl(iJcE_mPAjss%_oFOLr zLh3O5FAvPJ&*iQJ)Ik`N7p(d}rrs7TowT!~;V`xt4!{v7>`Fv~P}T7uVshn@$Ze!b zvGzgbPENEHPbcJAh&kX{qkdYdFo_VM62pW+SVWRghz$Nq5>Q!=4l*_98mWlUR+vzS zO#DLbD^&TJ1;|6yNa65k2KI!Y3F8jRdp15$)&`w;%4Ji)h4b|k@ua{{;2ih}ybErC z^Z5H1z2dE{OyJ!c-~^b7H+Mr#YXXxxI1Anc7r`9zbIm>@@MAy(mbQDW8Kk?--IGKk zIxZ|l-*FY_n)t;1$->D@=jHz1K)teD3vSq>8{inYid9d8xj;S9;4V}u?nN8fg@nUL;^%XCwLY_Kr1XbvBt0MId988qLwfTJ-Hv{rNyl44*T|Vb?8%Jk*v8n zAdWc;W~TlQzJdC@OUvErRQGd9FPOP&AI(bs;GO1)n{YM`z6H0ysbaGcmseuq7|2h3 z0P=2rGax4Z03Agr1$60R^M6IGa7nNOHA%H~5WJ1&@E+!WOLM(w>3hM5=H7;`;`C~; z9ZcHtVsu1Yfxh>0J_CgCO2ZvvSHMg+48De+M>AiEW`&1QgHVA+q?H)tGCZ0^BE$f{ z21mghxQGsmkD^NNN-16#>^Iu^0axjcxF8NJjXnzsWsF(s-5bgwoz|UC#X}@CF)D+3iS(3 z(=uI7FQXr#*VCP}N^hZU+M!43?eqcqefo3yS4Lp!nT|XYVaAx(nM2G`mSoG>Dz=^t zvN2X?2ibSnv+PZ-np@4S<=VJDZl3q?t$ZiHiAVfr{8#)u|CcxG&3pHF4|+clyh5o^ zA*>Oagm%FYhJ|rqr?6W%E}Ryw2y?=9;dkLrkr5vkpAmKORq>>FSz0XBNMf(_vNR!0 MN%JKfl1r6;0Fwsc{Qv*} delta 1442 zcmY*XeQXnD7{Bk{7h46#T@3Q-TDxhdqTWXf>O-h6WX1=z^^WZ#+wJNOwQpUo z+i_%tgJ{IX=b2p-_bRZ;G)-Ko32Y6aA!is3_~&-yVwRa5H0`98cCv0`V9GSfHUpVy@iBhAR@30F(&N#p?s{1q!^kG$So z+H!OQ8Tcf>jjqEQU5$^j3f{@rboP}@5`7{~`~)3MAJ$Dvk6B2|nl8$Q!+J8it(_2* zK;aHTIpDACwu>0onW5KK6cgaRTy^>O604RS)H9?DKgG>o(7zcOrmk&CyQX6k*3mSI zw4#Kbvt0ZKSA{$1Dz#^=VQ4PV8}Qe9HY=AC)`V%H=mx`dHBUL*K|+f zX0wqH(hU+DALFWVp3dP2Un6&iP1izUG8`PBpIIFZXGS$WshjqIzr1Ahzp3>oQkC$xExRK9{Q;Vh|NBJV{6r(l}=I1hJXsl_nj_?sad zs?XJd4JWWD?Fg8`TR{cv*rA;*km|G!jZw{xzmlq@EXu(BY5+egR^lO{MT>=AI&2IT zaRm`sPk=U`A*MMJE7T|lnT0Eil z6UI9HDPitWm(4RDnG80}kX6YG=feeiwjd|+0L8!&N@^pT%^VOsT zg-6X+P)Ym+n@bjpu~J*E_x4cD3AhPg!z7&8-_ZMZoY1}pR}ne+5l+G#xNN~s@DR>H z!9zcar7caCsJvrO9(jhKaPXhdyN*AAZzzks2y;;pW$(Uy_)@&Ygf9pSz0$J8k?s2i zN1Gu9Q5ZvBl<_9m3u7j9ktc=T+Ia&CohbB{EFO#i#;`o8^ z0?td7_`F=ZXm;U+!~--{(jM`q?)V?4R)B#&lAfsgfB2c(;_VN&%hd{k56SKLgxr;f z#Oca>Y~0M%Q6e=)9ifg>r>Qg4XVe$;b96hMq2Hh<=?~}&^fY~&5t&A29kYq)WRgst zxymwZE!)JlvF&Vx?PG^o%${J+v6t9y*dN&6IG!uxR&g(K8@MFraIbL%-p4QJoA}jy zgx|rt{F{7%Kh9s|zt8ix_`8BA%ohSey|7AX6GB2n_*S^-o9nCg_4#z)>%OzTbH4jx zKwK#{i!EZ0xLf>LS|DwdqSCOmOWG$Lkj_ZAq(9|yIUv`_jdGj3Ro3OB^84~>d0M_F o|E-iMlgc&art*vWn7Tw=qrRdJsUzy7I;HYg)N6C*V1JqRFP16gssI20 diff --git a/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings index 2f03c305e937377ca5f0dbbe0c12ad12c8b28a01..df693f2093deb9de055d14e162cae6212d813f13 100644 GIT binary patch delta 1434 zcmY+CZ)_7~9LJyg-@BXAGCE{`+%pD)Mcqn7Bt#{^Ac2%Iwsz}Spx*NB)wzug( z7zT_HF*=_mVnl-mVu+=ZZ6uuo+yuD2-WUOi8q-}lew zcLOB@B_Gz)bzFZ#8MU>)tJJaA->8K;;JRqUKoKKgpN}1EVRo8Co=w=s&j`wpn)h*sY#;FI2*c7HM6tY6ff| zIf+F%KFbLt=TefheCuLeh3%S-5-qdxzBQ@}4JDi)j`dNf^eCFH1a$-xnt>7?Q)GKn zhY~kqtdGZ|@f}t*n6NJKH0SJV^Tt%gKo-3QC5(17BBMJVfkrf+eVdyUCJLlOz+Tv- z^q|Li5SFbbcUZ4D&yv0nyD=CczR=~xe4hgWZ*t}Ta{x2GD00Dn>;Skui3)WK9aoR1MsSErr`?2 z+rkBIJK6zzj zX9{HN0K5dU$8Y!s2LPOOz$!ABjD@G}j2|-3_>8oF{!XwgSqfnGz(mf}%4E|1;oR_2 ze3M_v1xJ@p19neCvrmhLzgpk zNsw}d)Be-dW?d^KJ|$LcnGKdTMh<9J|Hr$lSBx2V^43T)XvPQ*-p;yJi(|^wIhHi7 z08CyOf1hC6lX4O0d&MOsU75Qn*Em5ract)3NRqrT!{*803fls_L#i#*tc2EDtd-yg zaxFe0Ea8GF*O^BI^z-;6@=6`jYf_K2TRI?pB8^EuNDt&nd4-JRLvp`-LH<>~ OFaJds_;CD*h5rCsWBe}w delta 1363 zcmYLGeM}Q)7=Q1(cUPtA3NlK35f#~7MW(_C2`XiVrDJ>)Tcp}uxtDTS+NM2lY*SqJ zVU}q!cuCxcF>@PP*t*65CS^DW2oy3uU}Yzf=`*&T(EOD>mtp6B=3 zo7J23eicdEx~sFh1D1W2ryDB+5foOTT?w3M&|k1hYD4Z?rKts$2Lmb!sCD(V_9Nv| zpb7aMRp=EJkC3l*KQ?0{S=fCm*K(v5wFNtn$F#A!-RoB(ElR)#L&1n@wOaA>R`oIuMk@QnLy}k`L*N9+P>`>M#Aa zJ>(BcGLmsWbClSLA(4$QQX+np$*pmxL~8sRwWg;k2&E25@k?Gmf)PbU5r;$aMUL7v zfYg$sT7&eMGU@}%J8EzR9`0FofZw3A(~hT5VWdS0Ygc$Tot|~pWhI)b?-yYOeG;u)yRR8&hR1&++e+S$36c>%L&PQ%_+f+7##3%~juq-dl@f=ez?C6Lx&o@aBe= z7y$5^W#L@_uY59-1SNQoE5;u7>CN70OEjdcjb}ChtN!4}Tp8mX`aJH&NX*0ed{Lf% z-k5kDz$ln5p4v9h3*hRmcMQ(nlXdt7SF8a4BxK@?Tqgco^x&8IB0M4Hr}=a}YZv${ zJ}1jNoBVpo7k6LHUmG+<&y6QXN^w4$gFh7VL=^oi0RhynalVlALi5Pd)h8y00G!%4 z=JF=sU9&eu%O|ou$ zK0Y(olmZBv((xrW9j_D9pY)FG9Z$B7Mic4}an1F_*m(dGr(y+Kc%woV-ol;IAb9+d z_|$qW#Bcg#oqIWe>uhl;8hALK1aLe#IH7<&Q44@N)#PN{J(L{U=}R>@IXM{8;e9a> zcLO+hbJ7+CT7vt<-Qr5KdOi3)pTWzw)j50g=iw;+n9c3-P7_o8zyRI@7r_nJ2LwrVjNqk2|zR;BF4$IGAi>9)5Bb5CYaeS<`MH7Yhcq^ z3!BFlvSqA|tz>Vq_c(zwa|gHz&c$8eE^;@xe+-)pn+-XJ5<`t)!0-#dk3XbBf diff --git a/WordPress/WordPressShareExtension/nb.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nb.lproj/Localizable.strings index 33ce6b36a305f85b71f80fa2ca906a8964e26095..2320f66a3789181e0b66b83e5f4e1d8c4663bd09 100644 GIT binary patch delta 1517 zcmZ`(O>Em#9Dn{yVmqr#)URzJuXHP$=n5UuBoITi`w)e!ABmGR>zeRdzq)QbJJ_#* zY(s?`5<;-O9d>}BjRPQrkQhQB)b4;_7bZpzfW!eVNIM`p;IhMzc#gA;9k|)n`~UvG zFTb1Vo9QZ z<8FX`0<*STGse(DEnmoG3x-V`Okd^(QdM1_TA6q3U!D(E$-Yjw6zHxa>+ms7~Xl^iB3z6*)h;(j#CH5W31A9qc@e$-+_?QOho-uNc|GYF8uBcHJeqv;Ua4s!E`;=Pv>KM=vs0+%W6A)N9&=RT5o?<@6000$9{}X@&ZxZ^MdYvW`8J6_kcxl{nJ$9J>6MLS)476dS;UQ)Wi`^LWS87$g zE6N_<3tJA`g&WARE=|fQ?$O!9%a}#jV!I5cfDdjm(;&0W0?PmcW_(AEjaYZd(KGQ; z?!ntzb9ZC#XKt?y1u+?r*bWScU8{M%S=IZ-T?@0i*p9V~*`vcynWZN7=OUTVjQ%aw zwp3-Z-m04)aWnF^NuNsgD&;H+2=C)mG1MGnn(aK;YUG;8H|bm25dAwbAQ?sMSaet7-PMk#*@eZdZMhH@D>4Ga!E4|g z_ynwjufP>>72MziF3s)drZ}6cb1!j!@e2P4|0I8yU*^y7=lGBKFNJ-=n2;5U!YScB z;bY-*;i|A9{3>jUqNs~q;tug)@sKzvB5_&tL?SlDSH$zH;uqp~;-8Wt?U9a11?hzJ zwscYYK<4BwdAqz@enu|KNM4d(l`qNP%Qs>|tS6R^?T#z)hvL)mxj2sh5Wkh+5`BpQ zWuG#ploVTeU)fN8RyI{t?Nf)<{py%nRu|N>>Us53bxr+7{Z`#jf6+K?n>M1Q%9^iz Ws9n*nX}6M@tPe;>z#ykLv(01U0 zgFt9w6dDG!!ZQgfP%Sc&R5BN9&bXBt?A7E!U*!VwhR{|&UsVO+G7M-Jc}i$%ojZ+8 z8-j5k+n!5ROFqgDqa|2yFnJ*CBT06jJ~d#P0MmK7*n#qz&4;M!lI@`B5!1$?JlROn zBgrkHJ(eA|!&N&Bvnd2kdNz4aXd`QEfn>!FHDlP=K?XI4#MvW9r;VTlpapF=7pt!> z`mZZ98Q+8$RU(~FAzTPtK(8vtLH^L=4P^(ZsWa8gDrMw8-?%n4M7u06D3#5qIb1X0 z;o5WQssUgm2)rOO;QLN#K8-L2w(9~1xp_35C_i0TbSXsn%7?kQYP(CWx_^U2vS~FvWD#}z&s+?^*FKB zfg|-VQaDjSQ#DaQ(>5lNV@*{-Lc#x&L{w!z>5N__*VHa*Mu$FA-K!!%?yK>JsWi6p zc`q=h6OgW27AD=&esWi9ubZnD0~0xA3Kq5gy=4ec5z@hF3|$ijCJn!}drtyd0o{$- z;vlQa;+_Qk2e9pcur?wW>mb+F$Kn+xXpku?X8qS?r0Hd(Pw#5Xj#{oq^_G|fwJW4{ z`OFSs^+!p!yiLB*pNvjYJ}`1JmAT}$)c?o|lVk#BmnqU}o3WS`+DR^J&2{tReg%-A z5*QiKT1cQD*Jneky(~?ufrg ziqs^SNRZY$f$J>@|}j&w!7i2SBDsqO0X z>PdA%4b+S374?q#qxzHjx7MINp`F%pU7D%AtzFbMwJrUU{<(fj|5pD!Do5kd{^&q- TD!LxM9K8|UivB>puLJ)8dzHSY diff --git a/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings index 57c920432b477b9ff175b682075983a13830a366..1f61b74d6c8df1b3e64fd5f02d4d8f70a773c247 100644 GIT binary patch delta 1518 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 CdgHAC delta 1520 zcmY*ZTWl0n7(R2|+w9I1X}N9b(WMDWTWn*fAVf-A4Q46Z?zG#|?XIUgr`v()oMC2m zp)ICjf-!*y%P}z~#sm!s`oM#PM5DnMVoZ>r;lacQh&EmxP`pH6eDTce*2I_HGw1y0 z`@jGDzL|TOdzsfqcyVYo*EX4+-d>z3m0#R}W-A7stInIpPgn~!aZb9PU#p)wy|}b| zX8N%0Vb_OQ(>^g3{J;^kfQw^hWgZR^+sC$_A0Nw33?jRNEqw%^_UR}5^6GD`RN?zp zZ)egIV|anoaar4ttIb-bH*eZi=n&8E>FJ@*@jE2_5UQM@-4dj6z9Yg8AhGvRPHx?w z#}=;mh337o_DCMpF*IB>=R*foaZp&+T6@>Gg1a@xBFMl7eP24p?WB-vr*8`hx+G;r ziw%;jKWokSj1Y+G$h6R`g`sEq*wb}X^^Rp3K%+>{G03vEY1|HLeA0x6z2OA(tk|xW z8mQ2lM=rZXcZ+S?W{zOPMDVENo5W_Qiw-Uf;W<>ZeEPe%h32>|%H)7yK%ez1Yn=hj zO?r3S$@FP^gmUm#~lOtIJC1ghW(mrLpD`l2aQV^Wx8QjcupS*tt*p* zth`Fx#XyCow9V<)`Of4Ulfz-xCGPlu<5-KuFgB(OEf$#>ouz_6gM?52%MODNa)aC| z$N?Ap2~GnOEC52ZC6EU-K+ne?ZY*mpVFW734Vgl`u#et}o}uUE?g&#Ph!@SqH*?R@ zhjNB4$EG6_6U6e7OTSM&K`$qs+{qvg)w~L_8HvzomVjenyqH1Aom|JKeKC>$0h(j#A+~hE8oiL()wv;$ta>yOaM&<(MBCGxU~_sp z2wYR!0O>nWWuP`dMC)2-Oa0W=mMNA(2iqQUC$iXOHqdLy;cIV2ws7=;{4^a^J2uV% zossgHbrv8KAq|%uzA~ul>{EfEP3r9X!B(YaGI2wK(tuw>mbt`e1d(BHXTw4Ep1TM( z6M8+>oh&x|Zj{lR%C7iSGomJXZ7Vf^=N+rB|hk(j{r-ru3EcgY>H$mD}XB{J7jN z56MU5Vk94_M!txwMYZVWXm|8#^m_DuOpRq?J+c0nA6t!=;&&5$iGvA}cqwrsaX;~o zvQ62q99A6VobpCeNUF(n@>KF{^0nlx)Q{=`^#yfQy`p}tuBm@$oYtldYB_CLJ11(F KwNL4d7Wgk+QR*T9 diff --git a/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings index 629fc8e74a5f1bcbf498d45517dc6e23b2cd7875..1523b48ad3c53dc908d6b52a755f1fae44ef78cc 100644 GIT binary patch delta 1454 zcmb7@OKclO7{~W9yRmmS#UXLhhL}u9sw6^9$pH|kLAZI8P$zNiwH@c>PP}7#6zrIR9equbF=xm`Gv)$!s#WnTr_a0TrpRw z)~Y@1xMw_{)YcwaKQ>a|IJ=NCixoKP*aX|85b2;Tptaj|d@?_2``9BeVcJ#wI4V}t znN%X9o5aF&i|=hML?X%BvSs=e7?eZDzL)+Wb&7>ZjP;1os@6)s6A!gyQ+U-`!waLx zE@I2H%k*im(Huw}rKX<OMZX}mPWxSNaq~_U>I6IVc2{tT4X0(M!YZ|TLe`djQ%m9g-EcE!6M1?p@@;?P+p*xNIQDH}X}_Q(>2;ZxqjHx#D38j9T$R`53-X)t zNAfrF?@et@T}^|bzRxy>hyD!rhmVHG!cO>GMO8YL0cBdLD~~JN%0=apa#i_S zRn>!Pzj~*7Qnl1a)hE^S>IL;x^?i+R(>kzaDH4M#M delta 1347 zcma)*O>7%Q7>0MfKi=J}6SpC0($>nPErJT_Dmk=yOb?a`s9~Rgpyps`B9p!$&C!f@lx|9g zpIm6Y!gj4>GFgo8ox}jvq3ysG2LazE$TtjV`EzM@v{hteSXeQ>k4|ZwVi-(c5EC6s ztsLN2pvUUyak2Zr;#p+c5S*(K8@nuLqlWS$s0;&#&|k$~n&ErZ*_3Gl!fv2{D35j& zMopW5@B$+PEkr*R55@B%w!dckem;w!39w6ViV51_1O8C>0$PbI1y8rU1q2 z#T|rMZ%x8UwTEshSE4gB*dfr{$#{P}1@H<%UW*E&HQPj8VrBo2_0WH_E{qcUe1Hh_ z7gK;Gd&q)bQ;c1>`}XeH?g-SNM{K78L*jHqeQaNq%W#0 zGiBN(rUdi=+P*Kue_%1h&vwH|3zu2Y*PO*7Tn>gRDEV>A#U5+;!?qMX8vXrm1$xSy z!Trb)F5nyv=f?u*nb6xIL;sS&{yUa!BH-dW{-+W28|{&fe^G&cul9!qXobHFuwke` zW48kNRL!y3)HsEEiMzqw;%;+qbMJBQ^QZVU@9|sw>-?Mi2mF2hyND7=Move@BU2G8 z(ujO1M1+ThL19ct3wdEds0&nhO?X$hBYYx!A^adpV!L=kd{!J4EfI?s#OqR2dR!Wm z8YiW^v?>wlMd`Y9OZrIqO!`*(Nmk@;`Jg-`FUeJz$d}{?(YEM7^qJ^NbT!&gWF@8? zQ*ugK!O9io73DV-sKaVTMJiS=sW;Sj)Q{D#G*tuIDJ`p2w5!@p?Je!DcCW2l-=m+< ihxG})s$bS$)?bb5cl3MugII4Y8G9m@jV;sVcJL=B$g9o( diff --git a/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings index 7fe177773df058b9b917dad51893055c79f0c851..9b792f98b653399432fb4afb9dc7cde17a600414 100644 GIT binary patch delta 1435 zcmY*YU2GIp6u$GjKb@JKZE3N@qqYGq@XWRt?7csTRhYHj;l1wL~Xot_F z5YxGt>1;o=(JC0z)FNK44nNjkC>TC2dW>%Nn9jTDdLx1+wh%0`{7~MFhgKH+9EL>y{d|+DD9geZp}z zoiyLVd|`@6nW{H|U97*+nmuqtPQZlH3vF^o(=@uqs4ydP5Dk{9 z41M8AI2-DLoAEt@!)T_IcBnLLgk^mboKjn0Ioui<@3+eqsdRU*+}5HT%tm|R>yQ^2 zOA)WcI0<|eewGz)3yN>5yJ2mk+QJMDMr#__^{MGtWsAvzUF!Ok*W?Bc&cr(;N7vCc z_&(MK&Dy2_VKvkXKSVm%drw_TUv#{NgIxlzs}Dk((i+b7*D&E*Wy`%YVHzb|q&BY7 z{G&g-a~dTBN14AITfBIR%v0MjEPPiH4g4@!l8a2#UA^INr4I(=)~$KHIcwidG_dKH zu|+G`AFpo#C1XRZtr_CONqJ2um&VpSc41k208T3d@R8OBk41agS(;KFg@4tSs>*5( zsobY>PkaKNj^vcF{c|OYn$&mnuAtzphH~c&$}nXf@)2RN!U?l%UkI|;W8VDR(2`tKUbX?GYo~%%jgWcfG(jc=qg%8w>g1JaC^8UN4XOBBKHR$<+t-s z@%#8${xpAvKhIwj9vAis!@{WWg7BX3q40^YD%=o$7Je5+Q5T!VPO(QE5)X=4oE06> z7Z(=AQ{tQAr{Z<-jue%)Ne85?RFTd~??~^J9M zzqBW`w02A@YbUfN?G5b%ZTFqn_E<4?A@+sdrXSZ&>eu62!GppKkV4B^8f$< delta 1489 zcmY*YU2GIp6u$GjKb_gmRthw2;bIGwNLy*tO{J!kwvr~Ll>O;;X<>8Oz1?1zof&6m zs;!9?AAB(}ltbjDsNj=67y~gvNHoEp2Z>-LMxT5!8cmGIn~6reGrNVjo7_9O_nhy1 z-*?WvvFpaJGgG2Gwl>|lW_3I@@$%e+RimzlCz*As5G;6#ROx)0l@{@+ZF$u4GP(5R z%qX!+)XYxN7d^NxzO?pdD`?`t+SgqjGih42muS&wnf6bZthUIk3U=(8*Voqv&xzei z_5dlJf?fqfT-+Yv7udF*0YPmY%21P*ynG|CXgrc3OB9z~vfyEdRA>-bG+Os=90j?) zW7?!l%kZ9ZRCo-q&?SSt86NCrpZK%%inzmQ-p-Cpkbp zC_Bv|i^i6m6~=gW10L@U6~Jk^v-x-(71tJt%d?_%csLVkfp5}5`iU?W}Bt9hJxRfw)JyxUQ`}8;0A)T)YryqANkoVZE(;cAS$~q#oB85H4|&E?@hCe}1IS5C+v0e3%%8 z6M7H)tq;#1MvmBy827>AD-Inj^DnZ9vK*lHkksr%)iGI#@fkHT#9X2)!Mk7<2?v}% zm+g0+VjeMY}(3nNWTM!wBcjEdgilW!id2|tdfG(qJ=o4X3 zm=s*$72#dsec@B#C*fByD)xy7#0l|;SP@sn?5lZftjG!ZX?edqE>~n*enCE~M3gvKh)Kzx>@Z| zN7Q+BSv{?ui(H6&72O>jj;=>Pir$P3#U^5xV)x@M@t*kJ_+tF+rrD-z+9qwAmeTfX z8EsBGqutT|(FgUcPIXH^t)JJgCR!6iiHXFy#D&D=#J%RfjDyA@BWJ7|pBcXx|0Z`Q dpH04*yq>(3{GnwFM&VBs>N{F(?2WCZ`#-lQwV40_ diff --git a/WordPress/WordPressShareExtension/ru.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ru.lproj/Localizable.strings index 433230880163a01969206ec8609720e508f85c5e..50041c15d20cba60859485c99b0e6e36e75552f6 100644 GIT binary patch delta 1447 zcmY*XZ)_7~7{BYickSBV_3p|T!;Re-I0kNZ!T<*w`@?1oWo-SkF~%rI`>wt1)~mhS zU>h(A-yq8Li3tX#(MZ%pW56#M6%sWOjEEXP8bVYOKNu7ve)8Ybb{fp(&E509_x%1n z@4fna^$Q~%1CeMfJ~*^@c;CqWfzbnrgL>ppGDXMI8Do6HoXlFer}DNl6`wwQWM+2m z=&}6~Bbm{GImhFr@nYC%&(ZWV{BG#oRC!+C4I36<`lfu(%T`(cb z{Zofb!_H`h-!&`S3U~RHTtco!jA|I-gYXkqsSHNwq%}?Vck9_CHH~Z<&XC#V<;_|u zua7yU-l?2v=_#6mFuTb!w9~LB4cmsR>>7~Bx`udXE@#dpWOa!TF^X+XO--Y_Y0A*G zJvqm)vi5UV=CqL#T~YRMEI*^^Y2C;U_oNI*>qnhPQ3D_HZq&IBb=C~5HB;J{VN!c& z34U*9Dy2Dk+D67cOVg)y!_*I%RI?3-+OY!2Xf&he3o?50c`JXQWKFY6oA4!HK0gxA zrF4gu((BjL^gx6U>=y|a3OcCPoJa-Inez7nD%xf zblS?##9}Bj)<=&xu>!j(o3CWrjSiBF7!88iU%UX7S6)UalEV*s)X82lvI-t*@A16!Ni#e6J{C<1?eCy zq|+c3SZpNiWE-x>aJ5=Ev1iq_kn=UNcu&16;F@~{JfpTCY(2vE0a3QF%iv|P0`7=P zRhrZxS_lEQk}eW9$SQnoNANZhdiPJMjb*Efcnh8&+;X3S^HL?;_sqdunGPSRK}1~! z{b~jLfae3^2DmKThmcwW+mt#emm2VVBeF)}4Lp~`PAauZhSZ{j4%F0!r@bTuuPOBv6H8V*NH@mONkPgf^jqRpEp;*i#5< zBldQa%_R$IqG8dDTU!fFlvLq<7k+M~WLeR63u!Tsv7Pk%%Lx~yYIYU6Zh%=i2%k%j zgDkFtD5@WjcENeE8E(6m!}rSWDwEWZcBVkFy*Pv?mQ?pyas%4l24DCqVbPaRlVmk2 z*g=U(cA=bh(g7E|XW&*@{e0$u$cr;zJj`k4EOUvu!hFnp%G_XnVL7&%ZDadcgUzwW z*k4^UE8~o_C#fz3qCR+st)wVQ!E+%Dv9L!(HZXa9?w`xt|FkGASo($fM|Q z57Eguv4}%v$O-Zid5_#A_vU#o-^lOgDhP$fi#1>vIbfpAm!&fVf3 zb1%B@dg?rVo>5P(>_XXXZ;yA}d(!)tFX7Ak7JZ-julm3B|1GW;L3~TRF8(I5(t2rF znw3sVm!#_fZ=fd78;A!E1||Z>11|)=k$rMleo?-r1R9lI<(%?|%BhliPW=SF3TpoV Dn~Rpt delta 1387 zcmYjPU2GIp7@eOx`!}<*v%4&%p@k{6DH~}iEp=fFrR`Eob!p4~u#^_oVfS`-+Ud@^ zJ1vyf6hkDK1_OK#KC~L~FVToG5)%wj5@SpRi6$iaVhGWYXkySl;FB?ayDh}rWM=OD z&UeoF&YhL!mFA11nSn#Gcp`Z?b!6n|=-9F2=@+yUnJgX84d?ZVNn@&D7GErtt?8MQ zr)E#j%|G|j=s=-NOO_hd3zH+2hdQWD(Xp7G$*U2wV9|mVPsXB$BU&Ltjl>{5Wx)+@ z?$TcYkhu0scN*&s$LN$fL(__Hc>08)m-Bidrxwk!)!Nz$2e_w%M4y(Kgcd;s7q{7t z1=TEsfwcwp#Hm3uR%)#;t@z{G3{|rwZQN3eT8>tLX(h1Z@lmCBx@eeMmS*7t;V8Qm zRJItnbdoZud=G;yjH?4*iP1OJa&*~bxj>ATDn<4*4ZLW?Wg0~v|+&tsfA&- zRyxv~&8imarIn_N&6;hFS{BEKH%UD# zu+xwd8ePeRZW%Oz;Xoa`Gc=MY&8k{X(+g?EvugB7Dx=9_Rx@SItit)#FP?b`H@{T_?2POkQsN@gk9TPzy0aM9Kfm>?U- z9x}wJq!-uoq>F^fE~vAGw(Crii7`>8g|v~Kq=$5p-aOev`Vihp_L5!r6{TbyR=e<^ z6K;u*cvGo?75her+XL{6^E~dif^KhuJ5E0gi2|H)`<*$`hTw^c z=)k`&4VHXCi4q^W*+IHVkAajMKvW`Z-5OZ{6yF8516VO$p@b!`=GXt{t&M4|Ecn*_ zw3CuLwAV+%@QGZjjFTFa*@y0XNz_#8ks^#PHz9El&U*vE%Rz9X>)*Y8!l;ZB-Vj^t z8L|aC_CbqxBP=P~p~(@1kK7HwyPMbLNdvO?AZsO)1EkHwUxgLB;5EA^U|_l(SimW; z*n{tO(gvqJ_3)!7bgks*WZ7U9{Dr3`s8_vpAgHSf>?UCy$-7Da6MBr?RGP745FXk? za8GK422T@=$PKV4H^Y7B2Dq;rgqzZ4*e17lazrH&46z~}M&WVnNsImk#=$HyuQOMe zkC{)I&zUdT-E5RCv1izK*bmv8?62%^oP%rS`nUn^5SQZ?xSx2AZ{pkeXZa|f;>Y+I z9{9KU>-;zTZT>F*2N8%&owVXI+t=nh=$rQ~`o3Zqxa;5aAJvM5J^%m! diff --git a/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings index 98e0fda2f34ac32425c34c39df7e284928080554..ac43f5df89a24d05a8bbca7da9155c6d828c79de 100644 GIT binary patch delta 1435 zcmY*XTWl0n7(R2|?(WR&ESr`rP&!a(Axae!gn&S}8cbQ1b}!IUHm5shx6_@@j61Un zTP{T(d?8-oCk8__K^_Pu#6-|wj1cs}7r@3R2_cbaq69(YUE;spLUbO^j_Cn^ixk)ejtOOulyL@R5Oi16Fa&*y1_?bAp0C z7vf@~%X9r;c!%S&YGCwRP9?LM7Au3?mp55emcB7!rnPqQwHU;$c^^NRgrbUfiUSPS7 zf8y#PW4J{=V`6Wn+AwIDTF%~WrWF`z974h__*M#`>Sd_9Yxh#yG)k7u{QNBZo=v7{ z1hniUW6CvXomw^>wVB~t0rN9WkmrK8H3jc)88!Tt3z(MLr-rkhNdwl(GEK{D{{RbW zRmTY28SO*;XdjKBhk~9Mq;>Y+bTHYy%`F%yI>8EhY~}w$+p`6s%Wk!i$)L9*VWuS42w$ACWC~MI>v{TATlhVi1r_u#^ij&*r1@bDnDj%0m z$!Fw8p=2l(Ivctix*K}jCWSk~>%uhbhmVCHMADIw$a|45qgSH0qYsoerKn6Rzba4F z_39gHMLnsWS8u6zHCbDviN delta 1449 zcmY*XYitx%6ux(!`Ti80Z60sFqlZR*6875Y}aBw_Qpp_0qY!o$l<+I5WGj z1*sC_AEU9HL_;(r2#JwIe+U{MiN^T&XRPzj#aF}$A$LT{yMAX zO%s=);0|HgEfWt>-5}a7$2V+?u~rCe^O0%$9YG zHD{P~Y@2TQTD5W}%}m0V!fG`;Xm~}#^Rh#f=*%{p6xv}9mmn*4ghn!kZ_*5F4z%IB z`o}VEMI(7)Sd(h3F7)57jE^`v@o8aMVN>! z$8iQ*4XyDHa3AcJ)9_~GX1J_&z>?f@T-nsmP!@wL%uc1q%n&qPlTc=V8WTiNPxZ~= z2x|aS#+(*xwVhG*#2D&-u{OC2VzCw|DqXND+6T{s)+A<7x+Y0y;%t^q8O7z=r8zIJ zT~Vx^8q7L#!0OH35M!&oHNBfcO>iaL-jrvZXmqFAdRy(TYJf8_4HlxU&>ibPCkC1^ zzO50CGbxFiMpHz03@?X9Zp;r-a;}NprLC;X@U z1^yR76r#f2!UMuKAurg%LE*S4i|fPnl3iSQ|@|{15h0qZI%E diff --git a/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings index be65d32182275c80133bda6e3ffdfc248323855b..d88455edb92052623fa61503e6552ebce582001e 100644 GIT binary patch delta 1409 zcmY*XTWl0n7(TNzv-h3Ou(num?J0!_uA6Z&1v_rdv<4MmYK7a zR!HT6#Kg$$j|Lww(HBG17$q?p6-*?c4~UltMvVHPi3Wqni!Ua6w!1Onp)fqFpuHV`v7BpqU#>`-?W-jFQ6)ir2vAovb z-@k8+78t>MYMj}Yd-D8Kc&bUaEPFETEMQV3%$gi7Fpd*Kr=aM94^^Mgxk2dcdSabf z!26j=-CPTPVz5xaoD^NbIBsJyPnbz&O^RK{she(q>`Rr1(~vRjIJPs>w1(a0NBCTA zUz*C)3WU>UdI?gbGfB$pj)l3stbK1>7#0Y^Ltc-j$UOaT9wN)hM(%i=RB2vs+w%XI zCUyzvqU|iC(?Vu?oF3%q21G7NNkJSUudiN}X+?^gyPNR8KH*7mos_3T%|q;86atXbZQscqnqd&24TLXBoq)TDD9 zmOOj686%X>l^WSB$0ht_oAFdp9NiT71@Vs&6~BaFaZw#PaBp}pHa$}3788LLN@Y4R zHtUd@TjE(!xVmY=-@ZLC;@d36KnixkBU-m?>%Gt&-U|JpPB^Kr7jFZ)BhkBR$QGzv zc&Q?Wd(*qw0Sd2&V&}freA21lgVK7~5g33MLs7Ws8wgJB7K9XYT82aZ3LJ>gP;T!m z;dYtXdK7BLN~rqVR#(xOP})@Q3T!OiRCr;CfbG4$a=Jm&5^qf=S?J8c0@XHq3D1~BEULOFrUp*~->(JfYmYsMfP32z76=!Wb1#=FxamUaI3ay3@!jHoJ-p*~Jtr=_;iBqYQ*3nsYVzk*5mK$#J5H{Ye)sG zw*v`{u1d#EyIc_my@?#OD5_Hy!4yylS+FJeDVzxOEae8Rx)`F!kDf)R(c9=e`WRhC zSI})qmSWO&DIqbbCLNaUc!Hh>JUcuip0ekZ=d|Yy&-?O2@=iG}XXQiktMZ%jyYdzJ zOZi9ncSTWjrCnL8Y*vPqJql6Eimh;EK{=wlq`aqGRsK+eYM(l$X4Iuc^^E$8de$p> z+r9UAANC&f9`zpcKJWd>XZXf_XM7iZzxr_mNO!MI;qD7I`c3ZRCf@9W9~_X?cxnhqa^Ha~f#xXy3H0YfHAB ZZM&pL^%=dQU-BD<(P8u%cOVvB^AFq2w^;xH delta 1314 zcmX|9U2IcT9KYYUANRJWE88;J*bN;Zidz72>M+RICS+YHUAwL@sAub;J>BiS<=)%s zrpe@m7Zbwx$FIbgpidZLq9g{Rk;LFkG(-&v7)^|c5=}ISkwhO9J#EJx?s+)p|Nnj7 z%bPE6K9dlnk>%vj&LambmpGmgr`CL~aTp0)Au}mDS2Fh5mPagaGLwo=?Zeg_G1Ce1 ztOp+o&n@3>2Tjubxch>YZAky9&yuYTyzh|89-|&on(-C)S0oG zGoHN)Z)|TmfRj>B_*e_oa7)->TQDGXtUo$I3KSa$s~)v2hPqHC*%5La*Gv!okh&nr zcWKjm3kAbte0j8~A+vKELp@GSk{c~h&uB2GlguQ1DQ!gA5$aZ`>t<5~7np5$L+XJg zz6M!27RaQjXOc7v2fF!(2Xkp>!N5gKtvm|1gs!D>BvUP5k2LE%mLguwu?*&_Q3nL% zn0BO9R`VTx7u)mG``CEVb`}~btVX-){+`~WlP%}QsN>j9W^c7>F3gP8Jc}}zLa9tD z+$dM!e&rm_;Nl$R3S5aRbENS>x3V5(_gXd6E|Y8$yEWoc_$zP&eo_YbEfCg*;4X^7 z%l;vFNjd0C@24k-%`TSpPPiHf!*~99ZF*wX!Bw~9*{Ba*RR&=KML^Rsa3>PmFwZ5M z)Qen^5w^%Jj!q5R9;1X!;Q?s#?}CBIr+~F0te|nYrS`xN+Jky_)T8sn!xaW$0}iay zjLlPxUTDQey>Lj~2^A#>?}z#zqYptiGzi}Zy4uolW@aXd9lTg9lSTk=KHLi{YOL+p zBooPUAuV7VZD%NP*pE8kW^juyJ%$_Z9$15ZRP6}l_OlR);gK>xCS=8uv=1RAXq(&S?c!!V~&T zBh}TiEI6&l{L|yD+9^cTJ+MySvy?qNi&Zu^J)r~McGpZmY|-wo^x{2j!>3&GEVcY^;`C-hnUgnnKBHzb5|p}Ekh(6#WlXcyXzhS4&*gg!wxB3vXIdD<7LM9xHB Li(H4E=*Is6I_#jC diff --git a/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings index 1d5092b9f06674c10555440412cbe7c80e097491..87ff1ec4cae2479f072fa4258c1acb46581c3718 100644 GIT binary patch delta 1399 zcmY+DZ)_7~9LJyQ-Sz)n?^*{Am^&D-4YtCNXoAl0XGI8QjP}~C8(V$Wd)6Jj-qpKj zm7!*k=nJEX;O`BIK_hRL#fSuBG9sdhi6kaN<4dDa6OG3I8bcz!z^CnE^vxxAd4AtN zpXYbCx^H!#t8$t1)eY*xiHupA)ebl|B{nT8Ye5wfoi)d!6Nhb&xKvAFs5Bwso^8 zMsqBgOimsphKaRfHEKGxcmBqc+C+55}_4;I0khDk&8wT*00O0BGp>6ecHc0;R$v-S>GDQf!#Gs z2+?*6Wf4YoWFi}tk%nsQt&E7a6ls5M$uuyP~>2UnBV} zu}F!+f^WQCJxFM2w!x-}i}lO5@W7D27p_E)?5Lo_%w`5T%mOnr3w^`hD`UE8S<|?J zb+%`F@|n45*Q_{7KkN-1h94pccs6i9w+S9s)&q_A@{Y0-E(g2eF(nS~N47##-3A{@ z8xx~C)}|eoPVB2syYrN|$s`QL{)F-Hqp%#9j1X3pHXY0Gdhj_=8!fdOj2!> zhtt7jE^ILs8&k6m&-m{`EZ)Ahf)1kF$VDD|R#*kIK?~VXl{d0rTi{xt7jA^Q z;6kJnE;QGwL|hEtN!wvO`p}wuwqlklc&ZgqGl*p~V9*oa0%z0?QO}wNhKuU_}@V%tDHq6+&5Pf`-|7kM+g5Yz?#j zttsF&Z}?kB*~*6dV4I{tI5r4f;Rm_oD$~Bu06R3(paM%$Cw!!)U@(-6j%6vfSt7$x zcC8*Aguf%lr7YV61Lc{Wg-*h&;lJSPQ2#={)er^I^XLM)if*6}&`q?0e&cwqgB#>V zIFqY!Pji3x!oHopM|=l;Cw(vZF8JQ?y~97i@8{Eeo_~s8UpPo$KlnvLr$G~K2BLqr4W4ZB&pJ4vsP&dkGYOd9Y39!O=ZW3Q=+yp zNniHiGyawHe{_J#51;?4zdJiitL`!_>WS&bf^F58ET@cXZrvXm8iIrTM#pZp4D8#UV{CN<%z zbd=i+nCpRyLK~cv`e%-{L^6Ix&GbyVm@E^^CJQ#jb<3x9!yx7Q(G&w{H5t6U!;;v6j&PU75?&OybjKob$8PZ+H%7TLp1I zMCw=PT46Qo@Vn5lD?i5C%dWQ)xUgpJ+V)TM9#6M6$K#&odYRE$&0c|Xa%X%ArO-X( zpbC2lsv-xvhT`XNw4aV2LE zyx@91{2EEJ!Wi7rHvx_m!+FE9?FCXHFt2CelsW|`6NBw0$}&hBohUTVrbImgW^8w8 z14<%{8t{YM4kSDXXX1asU9|-L@fme)O^p|vB-QpkT^RSR3iW;J6;i}BNl?h9D^{sO zTzw-`@B&lv3`~XA!{5&A35-OOz0CXO5fGc9IK;P>)9eiLX`eU@&xC(s zz0jxh!d~rJI31aTqS~hzY0G2;LyREZ7sy>i7P2WyGlK#n%Zp7%>#R~k_hCzHA7qsW za8svxcDAwLS(Qw>Mmz?wok8q|yP@gs3Oa}$B9EE;kOhGmU>Q;5xcXBl3G?A0_)hDA z$4o@0J^|a*F1Vo$g!3=9Qnw%#npj;zMxcW|_gIQGmZgH;KyRZf=sNlseTr^!ySWtS zai_TVxog}l?nmxtUg3xM{rn+*hA;E0{I>!x3<$%*gpd+)!ZBf40O391hHzW>Qus#r zMU=#-xKn&y92d)?E50ONkV4W{X;|7N<)jm5Jqem)qWId!(k+y!xhkS-q-$ zq(0IPYX$9f?V|Rsc2&Er{S?)s)#%wMME{Kb8;iuo^_}`9{R914T#L8wj30@gieHL< Sk%%QWCypetiA!+39sdW*Lz?~o diff --git a/WordPress/WordPressShareExtension/th.lproj/Localizable.strings b/WordPress/WordPressShareExtension/th.lproj/Localizable.strings index 5b91fdd7db2747ff93107342504e06947dc9bc08..510f28fff2aca687f103809fcd05f5c3d6ce6646 100644 GIT binary patch literal 3316 zcmds3No*Tc7#@4ZV|xs*(aYNq1=Cq$D&=O>D*pLqV%Pf^!aI{sN*EFJZgCbbzRmX zb0)4Ms`%n*xp+l!Gh<;6@PEf8TrFa%2| z3s|rPCb)u!x6e$|3R|G(lf)`g)3C~kM53TNDU%YHVv|%YSl-hq&M`+zIn;GAvF$iE zSs5D^N1^o~QDhZNEDcx4JjHI+p}5AXSSJe<6A$x>9?Sxd43EZnQMm8aFewwmf~Fnq z*fhYUT0z~K<`pRdZ(mHWqdQ2UMIk{28tr#w#x;e?Jre^g)drp-{ z%5DN@h|LFgD0GLuy$=Pm33_(ew#`~WUDe=;H{+xLUKdVN%^>)U?HSC1rdRT;>R?hV zva01_jZqg{%&P-oQ-@Cm2ip`>@$bV(o^H54JTN3+o(7=suvRfFFoQ!p=HMc+a8V}~ z&CiO2F=>JQCcEZ6X@Uaz$w~xdvL$THknM#rZZ`3(jwH%=5)qvH;!Fap&(%J#broJ zeA!|AqYi=9q&b1X8NP&DzK=s%)aED#gQJ5p&*(-{ZDd0&%w-{|F3v1p)Ekg37?t3 z|iVlKS`%(C@XLK2=cLU=y6~}ZQ}|N&O1LHb9uNaPf#ZQxzzEoZR|0%k9#Ux-8Eh&UG}M#T6Zn%f07t?sMMf zdEe*R4ekbCNz~cs^kXx#vD1&o=MwV^XF8H8Exnjo$}X?0uC3>ufQJS)@<()ZtPqV9 zOU7o|+#0j&%2~%fPmLQ^IotTC3Alw;lSaOzPT7`+EH9N##uulcl}DzQ zKxZkR}Q4G+1R28-@;+=hA!q%9EYT%a3&$ak;}8TdK2&%fTP zqq-&N5FCD(?Fy~UA>DxLe8n?ti`1!AP$r5BuxfgEhYjK#J}50s=(_3=1`Na_{_M1F zcxr<{TYyD`KWF;`nW*7z8Lpd2BB-mjg$lNBD;X6!ceQ64MsAxMi(p!2Dt+s9t zlC@x%Xf4(1PMvlf+euGUDrT(&rod4!3kJY(AOH%)4IqOPNj(CLGn0sAxZcPtuV=q?lC6rqj+ z`tGugP+%mV+Mj`*0?{!H4ijt)3>C;whCvW?gE2tioBU||y^}!3M8-_sJ^z|vxZe!; zMBmH4i@r;~tG;)A*L*jrlT@5?sAs9SsLRwX>Idp4TBIZNBpsvA&_%jVf5Xts05ihO zFmWcstTNjSX5M7pXFg^=W4>a3VL2ACV{Cn#oo0)y%|6MV=LBw$8{tlH8E%vFxEHwd z+$HWK?hEcm?pI#qyZByyh#%+Y_+=jP-}Ao-LE*4)T9_Af;YHzs@SgCka7Xw!1Uy9#}yOJQO(vUPG>5?nGBwdu=kv@@jWKljUBl))cXP45Z1eKFYTv=B(m74OJ Oaz*(-xsAVWQ~v^$vw1xL diff --git a/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings index 0f8aac95563491827728ef145fa4419337f1a3ef..b6d983801f581c1fd186279c5abb96d5b69984ad 100644 GIT binary patch delta 1390 zcmY+D>u(fQ7{W|>CSF%w41}u>GrU*Gn<)d zb@5WXd{LrO-w$Gp82z9jXfX0YO%;qJYC?$UKcI;w#l#!N7){W4W*3ZRK1}AE^FGh> z{?0q6yH9tY80Gg$%b9lW;BqCcKXz!07UzvUt`iU^C}?Xz7n?h(t{+T4;P}J~jA81O z&E2?I&gRC3b0!UJ0>`+n=7OeW77p9gpEttehU?q|KS}F^g4WJ7+F@L3h987hJwHY& z?jkv~2RlV#Q>O&ai$~YA^c$9k=YmG`BwB8MuV0GdXC{z{s$i%%TH6 zk|HeUW|p(#;3nHL=BQ2l@f-3J1D0h3xa2d(QP;qWnA-TTO$?s~#5Y5cne06F!We^| z=X$e^)(pR~2v?+*rRiMN!U1W}%it239V5Yl=NN%o&ptKG8fFTthl19e#f#*>JQ&N# zkh?L8E2N;M`u~qkPY>!b}0qC z(3LRFT9xFp#3sc6miVdd`aTjA=R-DiT&%x*15X7_AyU^5T@2>6%Dz4JE<;;l2c+e; zHRgWe(K)mmVXlB|t{;_MtqVb?o(3h}Em(-c9g%*xs1Jy)*4o%e#S)NF6`0lffh4yk z=g<&KZzGG9d+=iXwsYsywH#bidbvL6RMPNdgvhxeT*U#gz|jet0Rd1)kNn!Ub)MoXg_c9EPh}XIq6GxQ@!KD1<~&4Y>?XPx!#c ziF?_8NTnkbW%~g$2od_shQcYWvvXpoF%xuhFra0^{!(u|>pC7T)BF&wSp;U)Te%Hz zDK${%7^wHdJIVkwsr%u+HoUU)=!Q#dQUFI*PB621|B7DZ7LTf~iGuQ(_k5V3ef zbj3idiI0n?#1F(T#A{Ma+9r)GNjd4L^osPlbXw-*7C9~NkRADH`8oMz`MXGSBp*2* z`7p8?`7PS2^eF}96Xjdw`PnGx00&ujAJfGl{nnD~ZdAzmt( zRPveRndGM`r>51N>OM82PN)SnP*>DHQg^4GNS)E5+K6^oi=Wk1y+u#!t4#=$X5$|n CA(|Kf delta 1305 zcmX|;U2GIp6vyv;?#}M)?A^k)Hr>K4rPL7pu4*p_KTYp zb1$7K!8V0JMBEtSKZxf(2!fj2m0=E>336+DdAu$|7Z|a8S_nv)7FlgDkCVN3KGk;T z%Z^7aX2E6Uh;T0up%q?|qHs!SKYX+vv&;@Ec^ti)F#SU1-G-JdVaN*!dkRz?(gV5mZ>`@gTC+i**)d5Qw70T zA7ZG49K`s03#8PR1}5Bx$|yh-Ik}AI`m_Z9M3&)awFjv7q~zgtctjt-7P1RyxHg3> zp%?k^YGfPyrrBZh0P}4RxACcV=*Ao2c9d?<4)GAoQJPqqk?xJkM zN)Gez<~98(jd4v3ali0=v{lV!Xth9LXM9M>4%0G)Y2zMv-`M?jOSnl8I^cw{huqyL zpuLC+dE{_orSV}}wOHWcW{z%!F-?bRJPOZ-dg9Y2EBVwX7IRtEb|Gc7!BngZp5dae z#Pjfalt&rcrcVsld*=BP*cIQs$W@JJtHpVTqA)sx&ZCRyDtZgOgRTiXg%QCQP7ALH zuL;+MAB7b$EOv`~#Ub&qSQHnNSCB#>0{}0>1*kCS&N^w;~%NzeXR3o{zp4y&3&iZ_r!xwEm+0 zf&O2N#5!ZUVk~wxb}4q#h#1(IH1bAZycz!#C-ElSg{SfJ_yWF;R}xwzQAnIgEGIr} JkU?8V{s+mSjh6rb diff --git a/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings index af1b4a2867d8dc996ba381d463adbe248be1f772..eda670f8e583bfc7b55c6393dfa87eb9cd9dccbd 100644 GIT binary patch delta 1430 zcmaKqTWl0n7{}*+Yo$}#MOxT!q?9b7R7g|^i4rKq5X-iEX}4wRE;Bo)yF+Jp)}7hn zwzP{u<7FS(auDi+M2$p{D8__fy`aVzjFD)GH1GQG5RbXU+!q(GaUabd=dtM{W?u5MY@cHHRp zj01Bn=rA*b;VoKXFw`CF=nk8%1<`)GsV=UnU3uLyofIJLz|L$$fAEcLT=ilNFN*MW z=y$fEwkHVF_7L3FrezY)GBZgu&J8c}tOG_)8*nSL`K)DY1~gCy{g4#dYC37tanL99 z3bcUpt?J&K&02-Hx^R9U)+mp)wzl@~fQG4o&a7+N8E5kB2#8kJm9hK6xdPCVnwjZq zH%u3FVNSea8TyzPF{cl6E(faJ8g^H~MX$4QZyO=@tZz=|U$= zMEXN1Ek`igb2&Q~t5^e0rHH=eJ;i8u*3ev7Nv}&w!dMWx`CJCLcA0%=2R4iqu!p!> z7t)5{y?Nj)`$+D*C*PGZzseo!a3l(Mp3T1!Jc%valxvEtqgok=Y4qw?Q|NBH5JV!v1axFBQejc5W9duS~Krag$cs<~}bQLWSy~rmwd-d3%ysy$Y zFA7!~I}dh-CgiCC+9b3!7(|NjBualzo-bWAii^f4$rf}(SdI3J0;-l)6?MX7q;CaZ zO^G985MByh%lincK>z|z`cImKkaSJukLXk@`HX?T;Jan3q-GGmM7WGIJ{o|Pu5`tC zF)%#mSBS*}+lMz*?3cO1_Z6;hH2ZJhLxAsR9R)_tkz;+|NN_dIZ)8j#`(^B^PDagp zwGQ*8TR6gFQuBH%;u|#jxS-%ax%>FgGqBxX`k&>5_D-X%s%TQGM^aUF&E5FP5q=uS zlr?Cr*evNszc0OEs|(AGA4n>CSX!fCut-UtkoDitMR9$x9L#|;p;;1FWvfm?qa>--6U7CgdIp-I>vY!Oo+{79S=Z%eGS zP+B6zq@DXqbG;%c X9%YM?R4fH4pDJG{Uschlu6p^uUG3}u delta 1363 zcmZ8eeM}o=81H@Gz2H{e%GV%!H!Nd;RUsmgESVcjB|@PeP@q7)>%EkNw%4^+v@l?E zaZZVW@=m~HA0oZZWDDe8WOXpiDUC4SrirTZDBFyk~g{Md46Bd zbH3nw!IYC`8`7->oTsNZ@I*RVT+=w}Z;U2T+<;A5bg+{=&?!eyw_6ML!+Jexps3+# zb2qiu%h4bTd!6Vh1HVg;q;J`9E?u3zR9f8bMiG4o1+4e9CY7+3=+~kl7}FDm!{NY> z(D!oQ19ET>@8KW@^mf5)Ks{QADc-i%gTg3i_||a&>lTkZgrFLi`wSS9Lx>CpthTC+ z62T^8VO>^{ieKltsB#Rc5`2ou!NXjst2=Ab)HkI~KTaLWL$Vf@l`w({%|HpSR}Lk* znoNT1khj&O3|RBqqL~>(U#EvvnFRPKTe7(~%L)_ya@<7W``El~JI6;~_nsB3oEr?RxqRzdfF8a(FNv z*W+#bW3g~b4PJ4flm7%4RPuQ5O5Fn+{>V6hnLri@TgFSALn;(RZ^=nYG^R%E8l3sGW?!UA}W(#w11~t@5WBP5cdMf zL{#wWU@B*;eM(Y(QV1rJVh%79-^GgU|nHpJjzfAN<%4SehNHjXD zUa+g`XQDDAUCFm~Li>!OSbnJIsg7C(KpmXO?3(u@ABjvj^D_tFuqC)11Ina@AZd=i>%A zgFDVmbEmlvxX;JA>)Z-2@_BqQZ|5C+4PVFa+UQ9Lbs+5 zBH93++HOrG))(8frq-s3w$`TUgAZtHjGEdshNd>PiK(q=;zLdCIlIKRnWs7PegDhv z%);7*wR3K&ot^hqlfLE{nX|pW{SWZMPhb2sDP0~&~;oVjmq#VU%Si`}c zYIHcz?RRwt4aWrVHL|WWBFo;4W*X^)g2xrx+6sSTE9r<_jWnuZh%JTp>57sbKNzt` z!9bg8MS*EpaX8CNtSM_%^pqNN3cH!4X{$QWp^JP`2(=sO5hI<3Uy>W(GfZPs_l{)J z9FNGWmi>@MeyzE=c~2M64OQ_Z9mBTL^OyE3;euU0c3&_xuBdUEL2m{g+q9aEz5?xle+4F0zI!92ZMg#WKx#m*!k@JE>svPpbinaG@y=x|MEaA z`!ILKt&V_*T-^G9OucPLI&P=NgFzHC=muj>5KDyoK-JMjMC7WZbdLSo&-GsV1lRvvsAyUWEXIv3Ct#s3-#+M;L(qG!&iLq@P(nhwdPH?r$EBG*(L$Dc=5P_c5qwXR%vH!A$*JA#bxr*r@_nkTP z6QX@msD}r{a`+Bk1zloY@l)1?P%tOeqnR?e#PKEn(#pv*n-E9nL7V4=mGA|jNz!tI zp~KqTSl||1FRf3Om}iS1&$*$MUpdy0LZBe^ne9aqn7<=VJcI1e|* z9pv8QzT&>)e&OzOkN5=RB3i^4VGws2SYRd^_p zq9hiJYsHP?7IC}i7enHJ7!?y@rcyjEek@)QABcZTbyBC)B{|Xw>6CO@x(go{t^WrC C%;+ir delta 1365 zcmZWmYiv_h9KY|^CM(Jqd&M*A=B7}#=~yKAfNkQEuIp>--u2$zv+l0ly`{bFUd%}} zV=&Af$4ND2f_^Y+G&ubr3Yr*&5Azkp84Vf@(U3?42?;S8=RNJ5)!+0hc@kd%Rj`05ll733b!g=5@9=$a)Ay z{Vq6Sq7SI?`K$RTm#Urr++Nb|g+oRP25q;ylS))e3}|{7#EgXLa5&JT)LpE9uN;b? z?JPhNbti8XfT8a~B$vP22cs}#2G-|-wmW=s3Ia7Q_nROlhaqkZ+VX2|e&N|n_S&CkybI=%T_w-~%TKpEZrN?CeIVEdRS&2fB&`g-{`{i(=%V_~*oBVDI zGH5Gk(=$D$u?`PvG7iu|rZlfFiwY70a@?9iJDAPIy)97HWY8KjHAA;hM`JM12>az^ z)I@(Wg~&}7=638+RbX0tL0dVNS+LDQ?bo8Pvq{xVfSLVn%Ov`e*=h?kYKb8&kqCI9 ztXj6w5>tvM$s`J}cB##;nNjGs!a*hE{q>#x_$ZLWvZe=Zd0C;iQt57ssj>+(>+JJF zGa1)`uyYBv`-dzN$NYAqRZ)8dLQki19T6aq7nTv{T_XmUZKCCFEcE&f!WDC!Za~q z#$bk-1(s*Gv9)YH8(;@nlbvE0*c0q0>{pZQuk0V3z-{JAxN^?H)pNVK25yR5*Z=?k diff --git a/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings index d4410f5ee6563101b2147a122777b6f98d4afc9d..38553c2e472ae87f77b933caa83c0c52b6010c82 100644 GIT binary patch delta 110 zcmdnMxPehWsURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%aYR^Vab`(=QE`NGer|4R zUPXDz8mKhP5Tb`OzURf03m!FcEn37n^At)}Zrf+KP!T<)0j1ZcE6H3DXVtBS{&h* zpOTrFl2{rMnOmNkQ(jpV>Ykrdo*wFvpO%)%AtXVtBS{&^S zkxeX0Ey`qYVn}5uX86I74y5xKQW#PrfqL>X^U_m`I0U7XHTA9i7{Gv$5kfO?Kxr5i F0RYKT9`OJG diff --git a/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings index 5571a1f4c0333162ce8cfca7a249e5e851c0ecb8..ca56c4c5d895b71c89757bb6644e3d7ae440f99f 100644 GIT binary patch literal 139 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12}GUMD#*z!E-^5;!pOwT!pg?Z5#gMlo12>2%#BRp)`!r2LQH15QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!V%8-xw)x%CB+e8nZ=nU`9;N{VVSAr#i2f#*{Q`Gf>O$w R3}C>>2%#BRp)`!r2LQUF5S0J` diff --git a/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings index d6d23c2c2aa387da47f2a7114c235be53d297e53..79bd5d69f0f5e143e345428de5d549d171916892 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#Svkd#hE4fMa2=$`MJ5Nc_qahg5t7j R3}C>>2%#BRp)`!r2LQH15QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!V%8-xw)x%CB+e8nZ=nU`9;N{VVSAr#i2f#*{Q`Gf>O$w R3}C>>2%#BRp)`!r2LQUF5S0J` diff --git a/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings index d6d23c2c2aa387da47f2a7114c235be53d297e53..79bd5d69f0f5e143e345428de5d549d171916892 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#Svkd#hE4fMa2=$`MJ5Nc_qahg5t7j R3}C>>2%#BRp)`!r2LQH15QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!V%8-xw)x%CB+e8nZ=nU`9;N{VVSAr#i2f#*{Q`Gf>O$w R3}C>>2%#BRp)`!r2LQUF5S0J` diff --git a/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings index 0d515c58e27fccd19c19b6520022672bb04848d9..3a4f67e7c034f26a56e41c0d8f2a4a465878ee03 100644 GIT binary patch literal 128 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12;G7G>raa|nvds_C0Mcr$XVtBS{x0O z1xh9sW#$)0ffXd?m82GjLzu-8zNrf7rNt$Q9D-8Hn)=pmehgs1$OxesIH5F*3I_mo C8X>v> diff --git a/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings index 7b3f07f75cb27d0db46f8ccdf0babd62e0d23ee4..318f301ebac61ff0d2d0fab6ba3322f73ed883e7 100644 GIT binary patch literal 129 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12OoC@!m}Z{q0900xYV5SoD#O2eoK E0P6D}n*aa+ literal 129 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBS{wtF zP0TDxEsg}MNG&ZY4hbtwEly+bQjlawWXNR5Wk}@^lv38zw{i1k00Txw2+hC=rD0SA E05V1&v;Y7A diff --git a/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings index ad53abec10f7af27be12f8a4bf53a24e61fe2bd6..f0f831aab5c151a9ba7184221e7da506f27f57e0 100644 GIT binary patch delta 94 zcmbQnIE_(1sURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%aYR^Vab`(=QE`NGer|4R yUPm}B!K!K~QuQ&w7W!3auf)gf|DF6V_ejtkg delta 94 zcmbQnIE~RWsURn_xWvHV3L_IU3o9EtM}%{JZfnqkvtXEkt0`aRf)_Xw4bJiEEH(Bpa)K}r;5R_8Z)VJ}Bn^>j*0O+75UfO)Sdf5EPeH)3 AI{*Lx literal 119 zcmYc)$jK}&F)+Bo$i&RT%ErzT;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBS{&(} z50XqQ%8UufFV0FW$t+3D$;ylfC`wJwNlnS*5R_8Z)VFkF00Txw2+hC&rD2pm0NG(4 AO8@`> diff --git a/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings index 6e535ba178ab87936f00b53d3b8d48fbc2136e83..f6c920172ff6c1623b3dbdddfb3362546c9bd6cd 100644 GIT binary patch delta 87 zcmZ3$xPVbVsURn_xWvHV3L_IU3o8>FduUi@YI$*}PiA&%aYR^Vab`(=QE`NGer|4R pUP9O7_C$SYRt`aNS+$9^$^fS*8V&#e delta 87 zcmZ3$xPVbVsURn_xWvHV3L_IU3o9EtON4WNZf9O7_C$SYRt`ZaWzC7T$^fdk8XN!s diff --git a/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings index 05d73c8089b9b12945336ae911870c9ba4fbc000..9a8a1018207f7681433bebcf51cc3d5fbe9a1572 100644 GIT binary patch literal 134 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12{7!{D3mktq$7ZCK$2dPOc(#?i4I0VII)$}dxJQ=`%kr6^Oa6)Mq G6$=1zsv~v) literal 134 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBS{yGR z=$#LePAt;RhBBf8QuESF^Ri0w(j&bgbYfmeaA|fThoF?QroOXZ1Opf_GD2tuPACnd FVgYOSBdY)a diff --git a/WordPress/WordPressTodayWidget/is.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/is.lproj/Localizable.strings index 77fe8d9ea4edac99a9cae19c06c19c7b7f9c2912..30e125eac6a400e6e77a23ccaa7d63814d9d0593 100644 GIT binary patch literal 138 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12EZc1hmhoHEu Vn!c592m=@}GD2tuPACnd5&@*?BM<-p delta 88 zcmeBT>|%6ID#*z!E-^5;!pOwT!pg?Z5#gMlo12-iko03@+=AK$yl36rSUyhSQP)b=--^ST*VwM5`{;M3s diff --git a/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings index 96ff7c211b14a4ee7054c4fe60855250c8e46018..304d544c8a6e53274d51953432eb60d5208dc0c2 100644 GIT binary patch literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12z3MhMNo38i6F6aeEP BBAoyL literal 120 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBS`3rT oi~`Fh0_8Kqz|7PTkOB@tDP>K43ui9|Fkoba&k8 zQE8Q0kZj-rgt^IGTA}_8tSJVY4IUbNHaNi{C@!m}Z)WSl00xYV5SoD#O2a5$0Ckof A7XSbN literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBTAX6A z+2EnUXM+>TU0R|34Xnu>8I@M41<3|3K$y!RD5b2aZ(;Ao00xYV5SoD#O2a5$0GDtb ADF6Tf diff --git a/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings index 6635c39bd7c3e695203ec9071a1723e68cd095a5..3da2a2bea6123af13dcf469c3c8a3d612122afe0 100644 GIT binary patch delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw0bmRX!xl3!FD;hdkFo0?Zr ooVfQx@`>)FF2|-M@6p_CaePA3X5n=V9D?GqYWhZ&4io(p00Rvk^#A|> delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BGpoS&PUnpaXB5tdn;S(0B=92%CHT3#ILlbM}b ooU~bZ9YgXS&D|EqCnWCukbI*1sLQb_9D-8Hn))Wzb`$*+0PTAp0{{R3 diff --git a/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings index efdb31e863993cceff3846b3e825c9d923e957e9..497fe31632a12e3f196dbd3f280e2644843a4462 100644 GIT binary patch literal 133 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni35tdn;S(0B=9O0awo12XVtBS{&^S zkxeX0Ey`eUVn}5uX86I74Wx@0QX_#n@-p+%Q;Wcgi#P>6BWPpPHQtlnhEuOfJbxE#?pumsQiZbY=hpMn(wDzyYOUln($$Djenj literal 116 zcmYc)$jK}&F)+Bo$i&RT%ErzT;hdkFo0?Zr91)gToLQ1zR2&+XnOa^P>XVtBS{xCS znwVUYnOYp_lvX<9Gy@xyhEY}kKhzaJ literal 96 zcmYc)$jK}&F)+Bo$i&RT3d9l4`MJ5Nc_qaWVVT95CHY0gp<$V+<;9^snc1nuQQr9= c$;6_nR1QHYWlensFkoba&R7Md`zL;(Ofv>qA& delta 90 zcmbQjIEB$QsURn_xWvHV3L_IU3o9EtM}%{JZfmBd_ diff --git a/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings index 36881364381b558be19c668f716a0d23eeba8a5c..d4984d37a5a8a9c3c9a0035688f4eb2aab9662a7 100644 GIT binary patch delta 93 zcmZ3+xQtOhsURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%aYR^Vab`(=QE`NGer|4R vUPdXu^6y8uvoBIObisAsISDyAt|xYTD#*z!E-^5;!pOwT!pg?Z65*Vmo12c<0^$;ee1;;1*WupzAl0cHg5t7j`lc?S3}C>> N2%#A`p)`z&1prhrA3Xp7 delta 93 zcmZo;Y-99DD#*z!E-^5;!pOwT!pg?Z5#gMlo12s&0q*)$YiJj;u3~@h9ZX76ZJ(oIRvGYHTBIs{3fO;003Q%94Y_+ diff --git a/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings index cec28b4cb8cc5741a74d77a104a5b8f67386e113..03f2243687866a66cbe5321c1bf9c7a3274dfb49 100644 GIT binary patch delta 126 zcmbQlIEhg|sURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%aYR^Vab`(=QE`NGer|4R zUPnZq%c|*{**Z-OPyhfM>mC>Y delta 86 zcmXRY2uLc($t*50Fu20V#LU9V#?BGpoS&PUnpaXB5tdn;S(0B=92%CHT3#ILlbM}b qoKzaw#gNpc6}>2V-o2?CQ!A2_IlE`2R&WSPDQoJRSUOA$Pyhf9F&-QM From ef453f773e0b6cf8265722851a83eac8b9df4c7c Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 1 Dec 2021 12:39:09 +1100 Subject: [PATCH 334/371] Update metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 13 ------------- fastlane/metadata/de-DE/release_notes.txt | 13 ------------- fastlane/metadata/default/release_notes.txt | 13 ------------- fastlane/metadata/en-GB/release_notes.txt | 13 ------------- fastlane/metadata/en-US/release_notes.txt | 13 ------------- fastlane/metadata/es-ES/release_notes.txt | 13 ------------- fastlane/metadata/es-MX/release_notes.txt | 13 ------------- fastlane/metadata/fr-FR/release_notes.txt | 13 ------------- fastlane/metadata/he/release_notes.txt | 13 ------------- fastlane/metadata/id/release_notes.txt | 13 ------------- fastlane/metadata/it/release_notes.txt | 13 ------------- fastlane/metadata/ja/release_notes.txt | 13 ------------- fastlane/metadata/ko/release_notes.txt | 13 ------------- fastlane/metadata/nl-NL/release_notes.txt | 13 ------------- fastlane/metadata/pt-BR/release_notes.txt | 13 ------------- fastlane/metadata/ru/release_notes.txt | 13 ------------- fastlane/metadata/sv/release_notes.txt | 13 ------------- fastlane/metadata/tr/release_notes.txt | 13 ------------- fastlane/metadata/zh-Hans/release_notes.txt | 13 ------------- fastlane/metadata/zh-Hant/release_notes.txt | 13 ------------- 20 files changed, 260 deletions(-) delete mode 100644 fastlane/metadata/ar-SA/release_notes.txt delete mode 100644 fastlane/metadata/de-DE/release_notes.txt delete mode 100644 fastlane/metadata/default/release_notes.txt delete mode 100644 fastlane/metadata/en-GB/release_notes.txt delete mode 100644 fastlane/metadata/en-US/release_notes.txt delete mode 100644 fastlane/metadata/es-ES/release_notes.txt delete mode 100644 fastlane/metadata/es-MX/release_notes.txt delete mode 100644 fastlane/metadata/fr-FR/release_notes.txt delete mode 100644 fastlane/metadata/he/release_notes.txt delete mode 100644 fastlane/metadata/id/release_notes.txt delete mode 100644 fastlane/metadata/it/release_notes.txt delete mode 100644 fastlane/metadata/ja/release_notes.txt delete mode 100644 fastlane/metadata/ko/release_notes.txt delete mode 100644 fastlane/metadata/nl-NL/release_notes.txt delete mode 100644 fastlane/metadata/pt-BR/release_notes.txt delete mode 100644 fastlane/metadata/ru/release_notes.txt delete mode 100644 fastlane/metadata/sv/release_notes.txt delete mode 100644 fastlane/metadata/tr/release_notes.txt delete mode 100644 fastlane/metadata/zh-Hans/release_notes.txt delete mode 100644 fastlane/metadata/zh-Hant/release_notes.txt diff --git a/fastlane/metadata/ar-SA/release_notes.txt b/fastlane/metadata/ar-SA/release_notes.txt deleted file mode 100644 index 436808b1ae40..000000000000 --- a/fastlane/metadata/ar-SA/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -تُزوَّد المصادقة على خطوتين الآن بأمان إضافي. ستحتاج إلى إلغاء قفل جهازك للموافقة على التنبيهات أو رفضها. -قمنا بتوسيع إعداد "رابط إلى" الخاص بمكوِّن الصورة لتضمين خيارات "ملف الوسائط" و"صفحة المرفق" إلى جانب خيار "عنوان URL مخصص" الموجود سابقًا. -قمنا بإصلاح مشكلة كانت تتسبب في تعطل الواجهة عندما كان يقوم المستخدمون بنسخ القوائم ولصقها من برنامج Microsoft Word. - -عند تتوجه إلى موقعي > التعليقات، سترى مظهرًا جديدًا وتفاصيل التعليقات الأجدد كذلك، بما في ذلك: - -- نظرة سريعة على عنوان المقالة أو التعليق الأصلي بناءً على ما إذا ترك الكاتب تعليقًا على المقالة أو قام بالرد على تعليق موجود. -- محتوى ثري بحيث يمكنك الاطلاع على كل تعليق من التعليقات بمجرد أن يقوم الكاتب بكتابته. -- زر مشاركة للتعليقات التي تمت الموافقة عليها. -- يمكن للمستخدمين الذين يتمتعون برتب المسؤول أو المحرِّر الاطلاع على البريد الإلكتروني لكاتبي التعليق وعناوين IP الخاصة بهم. -- عنوان ويب قابل للنقر عليه لزيارة عنوان URL الخاص بالكاتب (بدلاً من صورة أفاتار الخاصة به). - -وأخيرًا، قمنا بتحديث واجهة المستخدم الخاصة بطريقة عرض الرد، الوضع المصغَّر وملء الشاشة على حد سواء. يبدو الأمر رائعًا! diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt deleted file mode 100644 index 43ea82225612..000000000000 --- a/fastlane/metadata/de-DE/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Die Zwei-Schritt-Authentifizierung ist jetzt noch sicherer. Du musst dein Gerät entsperren, um Benachrichtigungen zu genehmigen oder abzulehnen. -Der Einstellung „Link zu“ im Bildblock wurden neben der vorhandenen Option „Individuelle URL“ die Optionen „Mediendatei“ und „Anhang-Seite“ hinzugefügt. -Das Problem, das zum Absturz der Benutzeroberfläche führte, wenn Benutzer aus Microsoft Word kopierte Listen einfügen wollten, wurde behoben. - -Der Bereich „Meine Website > Kommentare“ hat einen frischen Look und zusätzliche Kommentardetails erhalten, u. a.: - -- Eine Vorschau auf den Beitragstitel oder den übergeordneten Kommentar, je nachdem, ob der Autor einen Kommentar zum Beitrag hinterlassen hat oder auf einen vorhandenen Kommentar geantwortet hat -- Formatierten Inhalt, damit jeder Kommentar so angezeigt wird, wie der Autor ihn verfasst hat -- Einen Teilen-Button für genehmigte Kommentare -- Anzeige der E-Mail- und IP-Adresse des Autors für Benutzer mit Administrator- oder Redakteurrolle -- Antippbare Web-Adresse zum Aufrufen der URL des Autors (statt eines Avatarbilds) - -Außerdem haben wir der Benutzeroberfläche eine die Anzeige von Antworten in minimierter und Vollbildansicht hinzugefügt. Schicker Look! diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt deleted file mode 100644 index f5c06a64d170..000000000000 --- a/fastlane/metadata/default/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications. -We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option. -We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word. - -When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including: - -- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment. -- Rich content so you can see each comment just as the author wrote it. -- A share button for approved comments. -- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses. -- Tappable web address to visit the author's URL (instead of their avatar image). - -Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp! diff --git a/fastlane/metadata/en-GB/release_notes.txt b/fastlane/metadata/en-GB/release_notes.txt deleted file mode 100644 index f03335082ba8..000000000000 --- a/fastlane/metadata/en-GB/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications. -We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the pre-existing “Custom URL” option. -We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word. - -When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including: - -– A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment. -– Rich content so you can see each comment just as the author wrote it. -– A share button for approved comments. -– Users with Administrator or Editor roles can see the comment authors’ email and IP addresses. -– Tappable web address to visit the author's URL (instead of their avatar image). - -Finally, we updated the UI for the Reply view, both minimised and fullscreen. Looking sharp! diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt deleted file mode 100644 index f5c06a64d170..000000000000 --- a/fastlane/metadata/en-US/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications. -We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option. -We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word. - -When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including: - -- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment. -- Rich content so you can see each comment just as the author wrote it. -- A share button for approved comments. -- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses. -- Tappable web address to visit the author's URL (instead of their avatar image). - -Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp! diff --git a/fastlane/metadata/es-ES/release_notes.txt b/fastlane/metadata/es-ES/release_notes.txt deleted file mode 100644 index 301e50e68a73..000000000000 --- a/fastlane/metadata/es-ES/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -La identificación en dos pasos ahora viene con seguridad adicional. Tendrás que desbloquear tu dispositivo para aprobar o rechazar los avisos. -Hemos ampliado el ajuste «Enlace a» del bloque de imágenes para incluir las opciones «Archivo de medios» y «Página de adjuntos» además de la opción preexistente «URL personalizada». -Hemos corregido un problema que hacía que la interfaz se bloqueara cuando los usuarios copiaban y pegaban listas desde Microsoft Word. - -Cuando te dirijas a «Mi sitio > Comentarios», verás un nuevo aspecto y detalles incluso más novedosos de los comentarios, incluyendo: - -- Un vistazo del título de la entrada o del comentario principal, dependiendo si el autor ha dejado un comentario en la entrada o ha respondido a un comentario existente. -- Contenido enriquecido para que puedas ver cada comentario tal y como lo ha escrito el autor. -- Un botón para compartir los comentarios aprobados. -- Los usuarios con perfiles de administrador o editor pueden ver el correo electrónico y las direcciones IP de los autores de los comentarios. -- Dirección web táctil para visitar la URL del autor (en lugar de la imagen de su avatar). - -Por último, hemos actualizado la interfaz de usuario de la vista de la respuesta en pantalla minimizada y en pantalla completa. ¡Se ve muy bien! diff --git a/fastlane/metadata/es-MX/release_notes.txt b/fastlane/metadata/es-MX/release_notes.txt deleted file mode 100644 index 1ced5e60b9f7..000000000000 --- a/fastlane/metadata/es-MX/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -La identificación en dos pasos ahora viene con seguridad adicional. Tendrás que desbloquear tu dispositivo para aprobar o rechazar los avisos. -Hemos ampliado el ajuste "Enlace a" del bloque de imágenes para incluir las opciones "Archivo de medios" y "Página de adjuntos" además de la opción preexistente "URL personalizada". -Hemos corregido un problema que hacía que la interfaz se bloqueara cuando los usuarios copiaban y pegaban listas desde Microsoft Word. - -Cuando te dirijas a "Mi sitio > Comentarios", verás un nuevo aspecto y detalles incluso más novedosos de los comentarios, incluyendo: - -- Un vistazo del título de la entrada o del comentario principal, dependiendo si el autor ha dejado un comentario en la entrada o ha respondido a un comentario existente. -- Contenido enriquecido para que puedas ver cada comentario tal y como lo ha escrito el autor. -- Un botón para compartir los comentarios aprobados. -- Los usuarios con perfiles de administrador o editor pueden ver el correo electrónico y las direcciones IP de los autores de los comentarios. -- Dirección web táctil para visitar la URL del autor (en lugar de la imagen de su avatar). - -Por último, hemos actualizado la interfaz de usuario de la vista de la respuesta en pantalla minimizada y en pantalla completa. ¡Se ve muy bien! diff --git a/fastlane/metadata/fr-FR/release_notes.txt b/fastlane/metadata/fr-FR/release_notes.txt deleted file mode 100644 index 65c960b748b8..000000000000 --- a/fastlane/metadata/fr-FR/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -L’identification à deux facteurs s’accompagne désormais d’une sécurité supplémentaire. Vous devrez déverrouiller votre appareil pour approuver ou refuser les notifications. -Nous avons développé le réglage « Lier à » du bloc d’image pour inclure les options « Fichier média » et « Page de fichier joint » à côté de l’option préexistante « Lien personnalisé ». -Nous avons résolu un problème qui bloquait l’interface lorsque les utilisateurs copiaient et collaient des listes à partir de Microsoft Word. - -Lorsque vous accédez à Mon site > Commentaires, vous voyez une nouvelle apparence et de tout nouveaux détails de commentaires, y compris : - -- Un aperçu du titre de l’article ou du commentaire parent, selon que l’auteur a laissé un commentaire sur l’article ou répondu à un commentaire existant. -- Du contenu riche pour que vous puissiez voir chaque commentaire tel que l’auteur l’a écrit. -- Un bouton de partage pour les commentaires approuvés. -- Les utilisateurs avec les rôles d’administrateur ou d’éditeur peuvent voir les adresses e-mail et IP des auteurs des commentaires. -- Adresse Web cliquable pour visiter l’URL de l’auteur (à la place de son image d’avatar). - -Enfin, nous avons mis à jour l’interface utilisateur de la vue Répondre, à la fois en mode réduit et en plein écran. Quelle classe ! diff --git a/fastlane/metadata/he/release_notes.txt b/fastlane/metadata/he/release_notes.txt deleted file mode 100644 index 3a71403a7cdd..000000000000 --- a/fastlane/metadata/he/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -הוספנו אבטחה לאימות דו-שלבי. יהיה צורך לבטל את הנעילה של המכשיר כדי לאשר או לדחות את ההודעות. -- הרחבנו את ההגדרות של 'קישור אל' בבלוק התמונה והוספנו את האפשרויות 'קובץ מדיה' ו'עמוד עם קובץ מצורף' לצד האפשרות 'כתובת URL מותאמת' שהייתה כבר קיימת. -תיקנו בעיה שגרמה לממשק לקרוס כאשר המשתמשים העתיקו והדביקו רשימות מ-Microsoft Word. - -לאזור 'האתר שלי > תגובות' יש מראה חדש והוספנו חידושים לפרטי התגובות, כולל: - -- הצצה לכותרת הפוסט או לתגובת ההורה, תלוי אם המחבר הגיב לפוסט עצמו או הגיב לתגובה קיימת. -- תוכן עשיר כדי לאפשר לך לראות כל תגובה בדיוק כפי שהמחבר רשם אותה. -- כפתור שיתוף לתגובות שאושרו. -- משתמשים עם תפקידים של מנהל מערכת או עורך יכולים לראות את כתובת האימייל וכתובת ה-IP של המחבר. -- כתובות אינטרנט שניתן להקיש עליהן כדי לבקר בכתובת ה-URL של המחבר (במקום הקשה על תמונת הפרופיל שלו). - -אחרון חביב, עדכנו את ממשק המשתמש של האפשרות 'להגיב' בתצוגה הממוזערת ובתצוגה במסך מלא. נראה טוב! diff --git a/fastlane/metadata/id/release_notes.txt b/fastlane/metadata/id/release_notes.txt deleted file mode 100644 index 9460375de76e..000000000000 --- a/fastlane/metadata/id/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Otentikasi dua langkah kini lebih aman Anda perlu membuka kunci perangkat Anda untuk menerima atau mengabaikan pemberitahuan. -- Kami memperluas pengaturan "Tautan Ke" untuk blok gambar agar mencakup pilihan "Berkas Media" dan "Halaman Lampiran" di samping opsi "URL Kustom yang sudah ada. -Kami memperbaiki masalah yang menyebabkan crash antarmuka jika pengguna menyalin dan menempelkan daftar dari Microsoft Word. - -Jika Anda menuju ke Situs Saya > Komentar, Anda akan melihat tampilan yang segar dan bahkan detail komentar yang lebih segar, termasuk: - -- Sneak peek judul pos atau komentar induk, tergantung apakah penulis meninggalkan komentar di pos atau membalas komentar yang sudah ada. -- Konten yang kaya sehingga Anda dapat melihat setiap komentar sebagaimana dibuat oleh penulisnya. -- Tombol berbagi untuk menerima komentar. -- Pengguna dengan peran Administrator atau Editor dapat melihat alamat email dan IP penulis komentar. -- Alamat web yang dapat diketuk untuk mengunjungi URL penulis (alih-alih gambar avatarnya). - -Akhirnya, kami memperbarui UI untuk melihat Balasan, dengan layar kecil dan penuh. Keren! diff --git a/fastlane/metadata/it/release_notes.txt b/fastlane/metadata/it/release_notes.txt deleted file mode 100644 index 9251d9afc52f..000000000000 --- a/fastlane/metadata/it/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -L'autenticazione a due fattori ora offre una sicurezza aggiuntiva. Dovrai sbloccare il dispositivo per approvare o rifiutare le notifiche. -Abbiamo ampliato l'impostazione "Collega a" per il blocco Immagine in modo da includere le opzioni "File multimediale" e "Pagina dell'allegato" accanto all'opzione preesistente "URL personalizzato". -Abbiamo risolto un problema che causava l'arresto anomalo dell'interfaccia quando gli utenti copiavano e incollavano elenchi da Microsoft Word. - -Quando passi a Il mio sito > Commenti, visualizzerai un aspetto nuovo e dettagli sui commenti ancora più recenti, tra cui: - -- Un'anteprima del titolo dell'articolo o del commento principale, a seconda che l'autore abbia lasciato un commento all'articolo o abbia risposto a un commento esistente. -- Ricchi contenuti in modo che tu possa vedere ogni commento proprio come lo ha scritto l'autore. -- Un pulsante per la condivisione per i commenti approvati. -- Gli utenti con ruoli di Amministratore o Editor possono vedere l'e-mail e gli indirizzi IP degli autori dei commenti. -- Indirizzo web che può essere toccato per visitare l'URL dell'autore (invece dell'immagine avatar). - -Infine, abbiamo aggiornato l'interfaccia utente per la visualizzazione di Rispondi, sia ridotta a icona che a schermo intero. Bella! diff --git a/fastlane/metadata/ja/release_notes.txt b/fastlane/metadata/ja/release_notes.txt deleted file mode 100644 index 4de06b39a4d4..000000000000 --- a/fastlane/metadata/ja/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -2段階認証では、さらにセキュリティが強化されました。 通知を承認または拒否するには、端末のロック解除が必要です。 -画像ブロックの「リンク先」設定を拡張し、既存の「カスタム URL」に加えて「メディアファイル」と「添付ファイルページ」のオプションを追加しました。 -Microsoft Word からリストをコピーして貼り付けたときにインターフェースがクラッシュする問題を修正しました。 - -「参加サイト」>「コメント」のページでは、デザインが一新され、コメントの詳細も新しくなりました。 - -- 投稿者がブログにコメントを残したか、既存のコメントに返信したかに応じた、投稿タイトルまたは親コメントのプレビュー。 -- 投稿者が書いたとおりのコメントを見ることができるリッチコンテンツ。 -- 承認済みコメント用の共有ボタン。 -- 管理者または編集者の権限グループを持つユーザーは、コメント投稿者のメールアドレスと IP アドレスを確認できます。 -- 投稿者の URL へは、アバター画像ではなく Web アドレスをタップすることでアクセスできます。 - -最後に、返信ビューの UI を最小化および全画面表示の両方に対応するよう更新しました。 いかがでしょうか。 diff --git a/fastlane/metadata/ko/release_notes.txt b/fastlane/metadata/ko/release_notes.txt deleted file mode 100644 index f6ff334c2ff0..000000000000 --- a/fastlane/metadata/ko/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -이제 2단계 인증을 통해 추가 보안이 제공됩니다. 알림을 승인하거나 거부하려면 기기 잠금을 해제해야 합니다. -이미지 블록에 대한 "링크" 설정을 확장하여 이미 있는 "사용자 정의 URL" 옵션과 함께 "미디어 파일" 옵션과 "첨부 페이지" 옵션을 포함했습니다. -사용자가 Microsoft Word에서 목록을 복사하여 붙여넣을 때 인터페이스가 충돌하는 문제를 해결했습니다. - -내 사이트 > 댓글로 이동하면 다음을 포함하여 새로운 모양과 훨씬 더 새로운 댓글 상세 정보가 표시됩니다. - -글쓴이가 글에 대한 댓글을 남기거나 기존 댓글에 답글을 단 경우 글 제목 또는 상위 댓글 엿보기. -- 각 댓글이 글쓴이가 작성하는 대로 확인할 수 있는 풍부한 콘텐츠. -- 승인된 댓글 공유 버튼. -- 댓글 글쓴이의 이메일 주소와 IP 주소를 확인할 수 있는 관리자 또는 편집자 역할이 있는 사용자. -- 탭하여 글쓴이의 URL로 이동할 수 있는 웹 주소(아바타 이미지 대신 사용). - -마지막으로, 최소화된 화면과 전체 화면의 답글 보기 UI를 모두 업데이트했습니다. 뚜렷하게 보입니다! diff --git a/fastlane/metadata/nl-NL/release_notes.txt b/fastlane/metadata/nl-NL/release_notes.txt deleted file mode 100644 index f01d88ed54ad..000000000000 --- a/fastlane/metadata/nl-NL/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Tweestapsverificatie biedt nu nog meer beveiliging. Je moet je apparaat ontgrendelen om meldingen te accepteren of weigeren. -We hebben de instelling 'Link naar' voor het afbeeldingblok uitgebreid. Deze omvat nu naast de reeds bestaande optie 'Aangepaste URL' de opties 'Mediabestand' en 'Bijlagepagina'. -We hebben een probleem opgelost waardoor de interface crashte zodra gebruikers lijsten vanuit Microsoft Word kopieerden en plakten. - -Als je naar Mijn site > Reacties gaat, zie je een splinternieuwe weergave en nieuwe informatie bij reacties, waaronder: - -- Een sneakpeek van de berichttitel als iemand een reactie bij het bericht heeft geplaatst, of de bovenliggende reactie als iemand heeft gereageerd op een andere reactie. -- Uitgebreide content zodat elke reactie wordt weergegeven zoals de persoon deze heeft opgesteld. -- Een knop om goedgekeurde reacties te delen. -- Gebruikers met de rollen Beheerder of Editor kunnen het e-mailadres en IP-adres van de reagerende persoon zien. -- Tikbaar webadres om naar de URL van de reagerende persoon te gaan (in plaats van zijn/haar avatar). - -Ten slotte hebben we de gebruikersinterface bijgewerkt voor de weergave Reageren, zowel geminimaliseerd als weergegeven in volledig scherm. Ziet er strak uit! diff --git a/fastlane/metadata/pt-BR/release_notes.txt b/fastlane/metadata/pt-BR/release_notes.txt deleted file mode 100644 index 1bcdec1db5e0..000000000000 --- a/fastlane/metadata/pt-BR/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Agora a autenticação em dois fatores vem com segurança extra. Você precisará desbloquear o dispositivo para aprovar ou recusar notificações. -Ampliamos a configuração "Link para" de forma que o bloco de imagem inclua as opções "Arquivo de mídia" e "Página de anexo" juntamente com a opção já existente "URL personalizada". -Corrigimos um problema que causava um erro na interface quando os usuários copiavam e colavam listas do Microsoft Word. - -Quando você acessar Meu site > Comentários, verá que demos uma repaginada nessa tela e fizemos ainda mais mudanças nos detalhes de comentários, incluindo: - -- Uma prévia do título do post ou comentário principal, dependendo de se o autor comentou em um post ou respondeu a um comentário. -- Rich media para que você possa ver todos os comentários exatamente como o autor os escreveu. -- Um botão de compartilhamento para comentários aprovados. -- Capacidade de ver os endereços de IP e e-mail dos autores dos comentários disponível para usuários com as funções de administrador ou editor. -- Endereço da Web tocável para acessar a URL do autor (em vez da imagem do avatar). - -Por fim, atualizamos a IU da visualização Responder, tanto minimizada quanto em tela cheia. Está bem elegante! diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt deleted file mode 100644 index 95c008c28139..000000000000 --- a/fastlane/metadata/ru/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Двухэтапная аутентификация теперь обеспечивает дополнительную безопасность. Вам нужно будет разблокировать свое устройство, чтобы одобрить или отклонить уведомления. -Мы расширили параметр «Ссылка на» для блока изображения, включив в него параметры «Медиа-файл» и «Страница вложения» наряду с уже существующим параметром «Пользовательский URL». -Мы исправили проблему, которая приводила к сбою интерфейса, когда пользователи копировали и вставляли списки из Microsoft Word. - -Если вы перейдете на Мой сайт> Комментарии, вы увидите свежий вид и более свежие детали комментариев, в том числе: - -- Быстрый просмотр заголовка записи или родительского комментария, в зависимости от того, оставил ли автор комментарий к записи или ответил на существующий комментарий. -- Теперь вы можете видеть каждый комментарий в том виде, в каком его написал автор. -- Кнопка «Поделиться» для одобренных комментариев. -- Пользователи с ролями администратора или редактора могут видеть электронную почту и IP-адреса авторов комментария. -- Настраиваемый веб-адрес для перехода по URL-адресу автора (вместо изображения его аватара). - -Наконец, мы обновили пользовательский интерфейс для представления «Ответ», как в свернутом, так и в полноэкранном режиме. Выглядит чётко! diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt deleted file mode 100644 index 6e4a92e867c8..000000000000 --- a/fastlane/metadata/sv/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Tvåstegsinloggningen har nu blivit säkrare. För att bekräfta eller avböja aviseringar måste du först låsa upp din enhet. -Vi har utökat inställningen ”länka till” för bildblocket så att den nu utöver det tidigare alternativet ”anpassad URL” också omfattar ”mediafilen” och ”sidan för bilagan”. -Vi har rättat ett problem som gjorde att gränssnittet slutade fungera när användare klistrade in listor som de kopierat från Microsoft Word. - -När du går till Min webbplats > Kommentarer möts du av en uppdaterad design och ännu bättre information om kommentarerna, inklusive: - -- Förhandsvisning av inläggsrubriken eller den besvarade kommentaren, beroende på om det var en kommentar på inlägget eller ett svar på en annan kommentar. -- Formaterat innehåll, så att varje kommentar ser ut just som dess författare utformade den. -- En knapp för delning av kommentarer som godkänts. -- Användare med någon av rollerna administratör eller redaktör kan se kommentarsförfattarens e-postadress och IP-adress. -- Man kan trycka på webbadressen för att besöka den (i stället för författarikonen). - -Slutligen har vi fräschat upp gränssnittet där man svarar, både i minimerat läge och på helskärm ser det riktigt stiligt ut! diff --git a/fastlane/metadata/tr/release_notes.txt b/fastlane/metadata/tr/release_notes.txt deleted file mode 100644 index fec106eb4408..000000000000 --- a/fastlane/metadata/tr/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -İki adımlı kimlik doğrulama artık ekstra güvenlikle birlikte geliyor. Bildirimleri onaylamak veya reddetmek için cihazınızın kilidini açmanız gerekir. -Görsel bloku için "Bağlantı" ayarını, önceden var olan "Özel URL" seçeneğinin yanı sıra "Ortam Dosyası" ve "Ek Sayfası" seçeneklerini içerecek şekilde genişlettik. -Kullanıcılar Microsoft Word'den listeleri kopyalayıp yapıştırdıklarında arayüzün çökmesine neden olan bir sorunu düzelttik. - -Sitem > Yorumlar'a gittiğinizde, yeni bir görünüm ve aşağıdakiler dahil olmak üzere daha yeni yorum ayrıntıları göreceksiniz: - -- Yazarın gönderiye yorum bırakıp bırakmasına veya mevcut bir yoruma yanıt vermesine bağlı olarak, gönderi başlığına veya ana yoruma gizli bir bakış. -- Her yorumu yazıldığı anda görebilmeniz için zengin içerik. -- Onaylanmış yorumlar için bir paylaş düğmesi. -- Yönetici veya Düzenleyici rolüne sahip kullanıcılar için, yorum yazarlarının e-posta ve IP adreslerini görebilme olanağı. -- Yazarın URL'sini ziyaret etmek için dokunulabilir web adresi (avatar resmi yerine). - -Son olarak, hem simge durumuna küçültülmüş hem de tam ekran olarak Yanıt görünümünde kullanıcı arayüzünü güncelledik. Harika bir görünüm! diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt deleted file mode 100644 index 65b2758aef92..000000000000 --- a/fastlane/metadata/zh-Hans/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -两步式身份验证现新增一层安全保障。 您需要解锁设备才能批准或拒绝通知。 -我们扩展了图片区块的“链接到”设置,在已有的“自定义 URL”选项旁边添加了“媒体文件”和“附件页面”选项。 -我们修复了在用户从 Microsoft Word 复制和粘贴列表时出现的界面崩溃问题。 - -当您前往“我的站点 > 评论”时,您将看到一个全新的外观,甚至更新的评论详细信息,包括: - -- 预览文章标题或父评论,具体取决于作者是对文章进行评论还是对现有评论作出回复。 -- 获取丰富的内容,让您可以看到每条评论,就像是自己写的一样。 -- 用于批准评论的共享按钮。 -- 具有管理员或编辑角色的用户可以查看评论作者的电子邮件和 IP 地址。 -- 吸引点击量的 Web 地址,用于访问作者的 URL(而不是他们的头像图片)。 - -最后,我们更新了回复视图的 UI,包括最小化和全屏。 看起来非常棒! diff --git a/fastlane/metadata/zh-Hant/release_notes.txt b/fastlane/metadata/zh-Hant/release_notes.txt deleted file mode 100644 index 0f6f0e6c1a6c..000000000000 --- a/fastlane/metadata/zh-Hant/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -兩步驟驗證現在增添額外安全性。 你需要解鎖裝置才能核准或拒絕通知。 -我們拓展了圖片區塊的「連結至」設定,新增「媒體檔案」和「附件頁面」選項,以及之前就有的「自訂 URL」選項。 -我們修正了使用者從 Microsoft Word 複製貼上清單時,導致介面當機的問題。 - -前往「我的網站」>「留言」時,你會發現全新設計外觀,以及更新的留言詳細資訊,包括: - -- 快速概覽文章標題或上層留言 (視留言者在文章上留言或回覆現有留言而定)。 -- 多種格式內容,你可在留言者撰寫留言時查看每則留言內容。 -- 核准留言適用的分享按鈕。 -- 擔任管理員或編輯者角色的使用者可查看留言者的電子郵件和 IP 位址。 -- 可點選的網址以造訪留言者的 URL (而非大頭貼圖片)。 - -最後,我們更新了「回覆」檢視的 UI,包括最小化和全螢幕檢視畫面。 看起來簡單俐落! From 80ade47739fe22a4e0ad3a6fc7820a0df96fc25d Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 1 Dec 2021 12:39:29 +1100 Subject: [PATCH 335/371] Update Jetpack metadata translations --- fastlane/jetpack_metadata/ar-SA/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/de-DE/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/de-DE/subtitle.txt | 2 +- fastlane/jetpack_metadata/es-ES/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/fr-FR/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/fr-FR/subtitle.txt | 2 +- fastlane/jetpack_metadata/he/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/he/subtitle.txt | 2 +- fastlane/jetpack_metadata/id/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/it/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/ja/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/ko/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/nl-NL/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/pt-BR/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/ru/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/ru/subtitle.txt | 2 +- fastlane/jetpack_metadata/sv/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/tr/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/tr/subtitle.txt | 2 +- fastlane/jetpack_metadata/zh-Hans/release_notes.txt | 13 ------------- fastlane/jetpack_metadata/zh-Hant/release_notes.txt | 13 ------------- 21 files changed, 5 insertions(+), 213 deletions(-) delete mode 100644 fastlane/jetpack_metadata/ar-SA/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/de-DE/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/es-ES/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/fr-FR/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/he/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/id/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/it/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ja/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ko/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/nl-NL/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/pt-BR/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/ru/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/sv/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/tr/release_notes.txt delete mode 100644 fastlane/jetpack_metadata/zh-Hans/release_notes.txt delete 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 deleted file mode 100644 index d68ca0a68a18..000000000000 --- a/fastlane/jetpack_metadata/ar-SA/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -تُزوَّد المصادقة على خطوتين الآن بأمان إضافي. ستحتاج إلى إلغاء قفل جهازك للموافقة على التنبيهات أو رفضها. -قمنا بتوسيع إعداد "رابط إلى" الخاص بمكوِّن الصورة لتضمين خيارات "ملف الوسائط" و"صفحة المرفق" إلى جانب خيار "عنوان URL مخصص" الموجود سابقًا. -قمنا بإصلاح مشكلة كانت تتسبب في تعطل الواجهة عندما كان يقوم المستخدمون بنسخ القوائم ولصقها من برنامج Microsoft Word. - -عند تتوجه إلى موقعي > التعليقات، سترى مظهرًا جديدًا وتفاصيل التعليقات الأجدد كذلك، بما في ذلك: - -- نظرة سريعة على عنوان المقالة أو التعليق الأصلي بناءً على ما إذا ترك الكاتب تعليقًا على المقالة أو قام بالرد على تعليق موجود. -- محتوى ثري بحيث يمكنك الاطلاع على كل تعليق من التعليقات بمجرد أن يقوم الكاتب بكتابته. -- زر مشاركة للتعليقات التي تمت الموافقة عليها. -- يمكن للمستخدمين الذين يتمتعون برتب المسؤول أو المحرِّر الاطلاع على البريد الإلكتروني لكاتبي التعليق وعناوين IP الخاصة بهم. -- عنوان ويب قابل للنقر عليه لزيارة عنوان URL الخاص بالكاتب (بدلاً من صورة أفاتار الخاصة به). - -وأخيرًا، قمنا بتحديث واجهة المستخدم الخاصة بطريقة عرض الرد، الوضع المصغَّر وملء الشاشة على حد سواء. تبدو رائعة! diff --git a/fastlane/jetpack_metadata/de-DE/release_notes.txt b/fastlane/jetpack_metadata/de-DE/release_notes.txt deleted file mode 100644 index 840573b98194..000000000000 --- a/fastlane/jetpack_metadata/de-DE/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Die Zwei-Schritt-Authentifizierung ist jetzt noch sicherer. Du musst dein Gerät entsperren, um Benachrichtigungen zu genehmigen oder abzulehnen. -Der Einstellung „Link zu“ im Bildblock wurden neben der vorhandenen Option „Individuelle URL“ die Optionen „Mediendatei“ und „Anhang-Seite“ hinzugefügt. -Das Problem, das zum Absturz der Benutzeroberfläche führte, wenn Benutzer aus Microsoft Word kopierte Listen einfügen wollten, wurde behoben. - -Der Bereich „Meine Website > Kommentare“ hat einen frischen Look und zusätzliche Kommentardetails erhalten, u. a.: - -- Eine Vorschau auf den Beitragstitel oder den übergeordneten Kommentar, je nachdem, ob der Autor einen Kommentar zum Beitrag hinterlassen hat oder auf einen vorhandenen Kommentar geantwortet hat -- Formatierten Inhalt, damit jeder Kommentar so angezeigt wird, wie der Autor ihn verfasst hat -- Einen Teilen-Button für genehmigte Kommentare -- Anzeige der E-Mail- und IP-Adresse des Autors für Benutzer mit Administrator- oder Redakteursrolle -- Antippbare Web-Adresse zum Aufrufen der URL des Autors (statt eines Avatarbilds) - -Außerdem haben wir der Benutzeroberfläche eine die Anzeige von Antworten in minimierter und Vollbildansicht hinzugefügt. Schicker Look! diff --git a/fastlane/jetpack_metadata/de-DE/subtitle.txt b/fastlane/jetpack_metadata/de-DE/subtitle.txt index 7716252479d8..152c5e10be9a 100644 --- a/fastlane/jetpack_metadata/de-DE/subtitle.txt +++ b/fastlane/jetpack_metadata/de-DE/subtitle.txt @@ -1 +1 @@ -WordPress – schneller und sicherer \ No newline at end of file +Schneller, sicherer, WordPress \ No newline at end of file diff --git a/fastlane/jetpack_metadata/es-ES/release_notes.txt b/fastlane/jetpack_metadata/es-ES/release_notes.txt deleted file mode 100644 index 5a567719165d..000000000000 --- a/fastlane/jetpack_metadata/es-ES/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Ahora, la autenticación en dos pasos cuenta con seguridad adicional. Deberás desbloquear tu dispositivo para aprobar o rechazar las notificaciones. -Hemos ampliado el ajuste "Enlace a" del bloque Imagen para incluir las opciones "Archivo de medios" y "Página de adjuntos", junto con la opción preexistente "URL personalizada". -Hemos corregido un error por el que la interfaz se bloqueaba cuando los usuarios copiaban y pegaban listas desde Microsoft Word. - -Al dirigirte a Mi sitio > Comentarios, verás que tiene un aspecto renovado y que se han actualizado los detalles de los comentarios, entre otros: - -- La vista previa del título de la entrada o el comentario principal, en función de si el autor dejó un comentario en la entrada o respondió a un comentario ya existente. -- Contenido enriquecido para que puedas ver los comentarios tal y como los escribió el autor. -- Un botón para compartir los comentarios aprobados. -- Los usuarios con perfiles de administrador o editor pueden ver el correo electrónico y las direcciones IP de los autores de los comentarios. -- Dirección web que se puede tocar para visitar la URL del autor (en lugar de ir a la imagen de su avatar). - -Por último, hemos actualizado la interfaz del usuario para la vista previa de la respuesta, tanto minimizada como a pantalla completa. ¡Tiene un aspecto fantástico! diff --git a/fastlane/jetpack_metadata/fr-FR/release_notes.txt b/fastlane/jetpack_metadata/fr-FR/release_notes.txt deleted file mode 100644 index 65c960b748b8..000000000000 --- a/fastlane/jetpack_metadata/fr-FR/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -L’identification à deux facteurs s’accompagne désormais d’une sécurité supplémentaire. Vous devrez déverrouiller votre appareil pour approuver ou refuser les notifications. -Nous avons développé le réglage « Lier à » du bloc d’image pour inclure les options « Fichier média » et « Page de fichier joint » à côté de l’option préexistante « Lien personnalisé ». -Nous avons résolu un problème qui bloquait l’interface lorsque les utilisateurs copiaient et collaient des listes à partir de Microsoft Word. - -Lorsque vous accédez à Mon site > Commentaires, vous voyez une nouvelle apparence et de tout nouveaux détails de commentaires, y compris : - -- Un aperçu du titre de l’article ou du commentaire parent, selon que l’auteur a laissé un commentaire sur l’article ou répondu à un commentaire existant. -- Du contenu riche pour que vous puissiez voir chaque commentaire tel que l’auteur l’a écrit. -- Un bouton de partage pour les commentaires approuvés. -- Les utilisateurs avec les rôles d’administrateur ou d’éditeur peuvent voir les adresses e-mail et IP des auteurs des commentaires. -- Adresse Web cliquable pour visiter l’URL de l’auteur (à la place de son image d’avatar). - -Enfin, nous avons mis à jour l’interface utilisateur de la vue Répondre, à la fois en mode réduit et en plein écran. Quelle classe ! diff --git a/fastlane/jetpack_metadata/fr-FR/subtitle.txt b/fastlane/jetpack_metadata/fr-FR/subtitle.txt index cfbc14033bc0..637264694425 100644 --- a/fastlane/jetpack_metadata/fr-FR/subtitle.txt +++ b/fastlane/jetpack_metadata/fr-FR/subtitle.txt @@ -1 +1 @@ -WordPress plus sûr, plus rapide \ No newline at end of file +WordPress plus sûr et rapide \ No newline at end of file diff --git a/fastlane/jetpack_metadata/he/release_notes.txt b/fastlane/jetpack_metadata/he/release_notes.txt deleted file mode 100644 index 3a71403a7cdd..000000000000 --- a/fastlane/jetpack_metadata/he/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -הוספנו אבטחה לאימות דו-שלבי. יהיה צורך לבטל את הנעילה של המכשיר כדי לאשר או לדחות את ההודעות. -- הרחבנו את ההגדרות של 'קישור אל' בבלוק התמונה והוספנו את האפשרויות 'קובץ מדיה' ו'עמוד עם קובץ מצורף' לצד האפשרות 'כתובת URL מותאמת' שהייתה כבר קיימת. -תיקנו בעיה שגרמה לממשק לקרוס כאשר המשתמשים העתיקו והדביקו רשימות מ-Microsoft Word. - -לאזור 'האתר שלי > תגובות' יש מראה חדש והוספנו חידושים לפרטי התגובות, כולל: - -- הצצה לכותרת הפוסט או לתגובת ההורה, תלוי אם המחבר הגיב לפוסט עצמו או הגיב לתגובה קיימת. -- תוכן עשיר כדי לאפשר לך לראות כל תגובה בדיוק כפי שהמחבר רשם אותה. -- כפתור שיתוף לתגובות שאושרו. -- משתמשים עם תפקידים של מנהל מערכת או עורך יכולים לראות את כתובת האימייל וכתובת ה-IP של המחבר. -- כתובות אינטרנט שניתן להקיש עליהן כדי לבקר בכתובת ה-URL של המחבר (במקום הקשה על תמונת הפרופיל שלו). - -אחרון חביב, עדכנו את ממשק המשתמש של האפשרות 'להגיב' בתצוגה הממוזערת ובתצוגה במסך מלא. נראה טוב! diff --git a/fastlane/jetpack_metadata/he/subtitle.txt b/fastlane/jetpack_metadata/he/subtitle.txt index 05e2658adcdc..aaa145748a90 100644 --- a/fastlane/jetpack_metadata/he/subtitle.txt +++ b/fastlane/jetpack_metadata/he/subtitle.txt @@ -1 +1 @@ -שירות מהיר יותר ובטוח יותר ב-WordPress \ No newline at end of file +שירות מהיר ובטוח ב-WordPress \ No newline at end of file diff --git a/fastlane/jetpack_metadata/id/release_notes.txt b/fastlane/jetpack_metadata/id/release_notes.txt deleted file mode 100644 index c2e22c953f09..000000000000 --- a/fastlane/jetpack_metadata/id/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Otentikasi dua langkah kini lebih aman Anda perlu membuka kunci perangkat Anda untuk menerima atau mengabaikan pemberitahuan. -- Kami memperluas pengaturan "Tautan Ke" untuk blok gambar agar mencakup pilihan "Berkas Media" dan "Halaman Lampiran" di samping opsi "URL Kustom" yang sudah ada. -Kami memperbaiki masalah yang menyebabkan crash antarmuka jika pengguna menyalin dan menempelkan daftar dari Microsoft Word. - -Jika Anda menuju ke Situs Saya > Komentar, Anda akan melihat tampilan yang segar dan bahkan detail komentar yang lebih segar, termasuk: - -- Sneak peek judul pos atau komentar induk, tergantung apakah penulis meninggalkan komentar di pos atau membalas komentar yang sudah ada. -- Konten yang kaya sehingga Anda dapat melihat setiap komentar sebagaimana dibuat oleh penulisnya. -- Tombol berbagi untuk komentar terpilih. -- Pengguna dengan peran Administrator atau Editor dapat melihat alamat email dan IP penulis komentar. -- Alamat web yang dapat diketuk untuk mengunjungi URL penulis (alih-alih gambar avatarnya). - -Akhirnya, kami memperbarui UI untuk melihat Balasan, dengan layar kecil dan penuh. Keren! diff --git a/fastlane/jetpack_metadata/it/release_notes.txt b/fastlane/jetpack_metadata/it/release_notes.txt deleted file mode 100644 index 9251d9afc52f..000000000000 --- a/fastlane/jetpack_metadata/it/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -L'autenticazione a due fattori ora offre una sicurezza aggiuntiva. Dovrai sbloccare il dispositivo per approvare o rifiutare le notifiche. -Abbiamo ampliato l'impostazione "Collega a" per il blocco Immagine in modo da includere le opzioni "File multimediale" e "Pagina dell'allegato" accanto all'opzione preesistente "URL personalizzato". -Abbiamo risolto un problema che causava l'arresto anomalo dell'interfaccia quando gli utenti copiavano e incollavano elenchi da Microsoft Word. - -Quando passi a Il mio sito > Commenti, visualizzerai un aspetto nuovo e dettagli sui commenti ancora più recenti, tra cui: - -- Un'anteprima del titolo dell'articolo o del commento principale, a seconda che l'autore abbia lasciato un commento all'articolo o abbia risposto a un commento esistente. -- Ricchi contenuti in modo che tu possa vedere ogni commento proprio come lo ha scritto l'autore. -- Un pulsante per la condivisione per i commenti approvati. -- Gli utenti con ruoli di Amministratore o Editor possono vedere l'e-mail e gli indirizzi IP degli autori dei commenti. -- Indirizzo web che può essere toccato per visitare l'URL dell'autore (invece dell'immagine avatar). - -Infine, abbiamo aggiornato l'interfaccia utente per la visualizzazione di Rispondi, sia ridotta a icona che a schermo intero. Bella! diff --git a/fastlane/jetpack_metadata/ja/release_notes.txt b/fastlane/jetpack_metadata/ja/release_notes.txt deleted file mode 100644 index 4de06b39a4d4..000000000000 --- a/fastlane/jetpack_metadata/ja/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -2段階認証では、さらにセキュリティが強化されました。 通知を承認または拒否するには、端末のロック解除が必要です。 -画像ブロックの「リンク先」設定を拡張し、既存の「カスタム URL」に加えて「メディアファイル」と「添付ファイルページ」のオプションを追加しました。 -Microsoft Word からリストをコピーして貼り付けたときにインターフェースがクラッシュする問題を修正しました。 - -「参加サイト」>「コメント」のページでは、デザインが一新され、コメントの詳細も新しくなりました。 - -- 投稿者がブログにコメントを残したか、既存のコメントに返信したかに応じた、投稿タイトルまたは親コメントのプレビュー。 -- 投稿者が書いたとおりのコメントを見ることができるリッチコンテンツ。 -- 承認済みコメント用の共有ボタン。 -- 管理者または編集者の権限グループを持つユーザーは、コメント投稿者のメールアドレスと IP アドレスを確認できます。 -- 投稿者の URL へは、アバター画像ではなく Web アドレスをタップすることでアクセスできます。 - -最後に、返信ビューの UI を最小化および全画面表示の両方に対応するよう更新しました。 いかがでしょうか。 diff --git a/fastlane/jetpack_metadata/ko/release_notes.txt b/fastlane/jetpack_metadata/ko/release_notes.txt deleted file mode 100644 index f6ff334c2ff0..000000000000 --- a/fastlane/jetpack_metadata/ko/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -이제 2단계 인증을 통해 추가 보안이 제공됩니다. 알림을 승인하거나 거부하려면 기기 잠금을 해제해야 합니다. -이미지 블록에 대한 "링크" 설정을 확장하여 이미 있는 "사용자 정의 URL" 옵션과 함께 "미디어 파일" 옵션과 "첨부 페이지" 옵션을 포함했습니다. -사용자가 Microsoft Word에서 목록을 복사하여 붙여넣을 때 인터페이스가 충돌하는 문제를 해결했습니다. - -내 사이트 > 댓글로 이동하면 다음을 포함하여 새로운 모양과 훨씬 더 새로운 댓글 상세 정보가 표시됩니다. - -글쓴이가 글에 대한 댓글을 남기거나 기존 댓글에 답글을 단 경우 글 제목 또는 상위 댓글 엿보기. -- 각 댓글이 글쓴이가 작성하는 대로 확인할 수 있는 풍부한 콘텐츠. -- 승인된 댓글 공유 버튼. -- 댓글 글쓴이의 이메일 주소와 IP 주소를 확인할 수 있는 관리자 또는 편집자 역할이 있는 사용자. -- 탭하여 글쓴이의 URL로 이동할 수 있는 웹 주소(아바타 이미지 대신 사용). - -마지막으로, 최소화된 화면과 전체 화면의 답글 보기 UI를 모두 업데이트했습니다. 뚜렷하게 보입니다! diff --git a/fastlane/jetpack_metadata/nl-NL/release_notes.txt b/fastlane/jetpack_metadata/nl-NL/release_notes.txt deleted file mode 100644 index f01d88ed54ad..000000000000 --- a/fastlane/jetpack_metadata/nl-NL/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Tweestapsverificatie biedt nu nog meer beveiliging. Je moet je apparaat ontgrendelen om meldingen te accepteren of weigeren. -We hebben de instelling 'Link naar' voor het afbeeldingblok uitgebreid. Deze omvat nu naast de reeds bestaande optie 'Aangepaste URL' de opties 'Mediabestand' en 'Bijlagepagina'. -We hebben een probleem opgelost waardoor de interface crashte zodra gebruikers lijsten vanuit Microsoft Word kopieerden en plakten. - -Als je naar Mijn site > Reacties gaat, zie je een splinternieuwe weergave en nieuwe informatie bij reacties, waaronder: - -- Een sneakpeek van de berichttitel als iemand een reactie bij het bericht heeft geplaatst, of de bovenliggende reactie als iemand heeft gereageerd op een andere reactie. -- Uitgebreide content zodat elke reactie wordt weergegeven zoals de persoon deze heeft opgesteld. -- Een knop om goedgekeurde reacties te delen. -- Gebruikers met de rollen Beheerder of Editor kunnen het e-mailadres en IP-adres van de reagerende persoon zien. -- Tikbaar webadres om naar de URL van de reagerende persoon te gaan (in plaats van zijn/haar avatar). - -Ten slotte hebben we de gebruikersinterface bijgewerkt voor de weergave Reageren, zowel geminimaliseerd als weergegeven in volledig scherm. Ziet er strak uit! diff --git a/fastlane/jetpack_metadata/pt-BR/release_notes.txt b/fastlane/jetpack_metadata/pt-BR/release_notes.txt deleted file mode 100644 index 1bcdec1db5e0..000000000000 --- a/fastlane/jetpack_metadata/pt-BR/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Agora a autenticação em dois fatores vem com segurança extra. Você precisará desbloquear o dispositivo para aprovar ou recusar notificações. -Ampliamos a configuração "Link para" de forma que o bloco de imagem inclua as opções "Arquivo de mídia" e "Página de anexo" juntamente com a opção já existente "URL personalizada". -Corrigimos um problema que causava um erro na interface quando os usuários copiavam e colavam listas do Microsoft Word. - -Quando você acessar Meu site > Comentários, verá que demos uma repaginada nessa tela e fizemos ainda mais mudanças nos detalhes de comentários, incluindo: - -- Uma prévia do título do post ou comentário principal, dependendo de se o autor comentou em um post ou respondeu a um comentário. -- Rich media para que você possa ver todos os comentários exatamente como o autor os escreveu. -- Um botão de compartilhamento para comentários aprovados. -- Capacidade de ver os endereços de IP e e-mail dos autores dos comentários disponível para usuários com as funções de administrador ou editor. -- Endereço da Web tocável para acessar a URL do autor (em vez da imagem do avatar). - -Por fim, atualizamos a IU da visualização Responder, tanto minimizada quanto em tela cheia. Está bem elegante! diff --git a/fastlane/jetpack_metadata/ru/release_notes.txt b/fastlane/jetpack_metadata/ru/release_notes.txt deleted file mode 100644 index b8f828925298..000000000000 --- a/fastlane/jetpack_metadata/ru/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Двухфакторная проверка подлинности теперь выполняется ещё более безопасно. Для подтверждения уведомлений или отказа от них вам потребуется разблокировать устройство. -Теперь, помимо уже имеющейся опции "Пользовательский URL-адрес", параметр "Ссылка на" для блока изображения включает опции "Медиафайл" и "Страница вложения". -Исправлена проблема, приводившая к сбою в работе интерфейса при копировании и вставке списков из Microsoft Word. - -При переходе в раздел "Мой сайт" > "Комментарии" вы увидите новый дизайн и обновлённые сведения о комментариях, в том числе: - -— быстрый обзор заголовка записи в блоге или родительского комментария, в зависимости от того, оставил ли автор комментарий к записи или ответил на имеющийся комментарий; -— насыщенное содержимое, благодаря которому можно просматривать каждый комментарий сразу после его публикации автором; -— кнопка "Поделиться" для утверждённых комментариев; -— пользователи с ролями администратора или редактора могут видеть адреса электронной почты и IP-адреса авторов комментариев; -— кликабельный веб-адрес для перехода на URL-адрес автора (вместо изображения аватара). - -И наконец, мы обновили интерфейс вида ответа, как в уменьшенном формате, так и на полном экране. Привлекательный дизайн. diff --git a/fastlane/jetpack_metadata/ru/subtitle.txt b/fastlane/jetpack_metadata/ru/subtitle.txt index d6b7a8fe3f90..40f194becec2 100644 --- a/fastlane/jetpack_metadata/ru/subtitle.txt +++ b/fastlane/jetpack_metadata/ru/subtitle.txt @@ -1 +1 @@ -Более быстрый и безопасный WordPress \ No newline at end of file +Быстрый и безопасный WordPress \ No newline at end of file diff --git a/fastlane/jetpack_metadata/sv/release_notes.txt b/fastlane/jetpack_metadata/sv/release_notes.txt deleted file mode 100644 index 9e3be4fcb84d..000000000000 --- a/fastlane/jetpack_metadata/sv/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -Tvåstegsautentisering kommer nu med extra säkerhet. Du behöver låsa upp din enhet för att godkänna eller avvisa notiser. -Vi har expanderat inställningen "Länka till" för bildblocket så att den inkluderar alternativen "Mediafil" och "Bilagssida" tillsammans med det tidigare alternativet "Anpassad URL". -Vi har åtgärdat ett problem som fick gränssnittet att krascha när användare kopierade och klistrade in listor från Microsoft Word. - -När du går till Min webbplats > Kommentarer kommer du att mötas av ett nytt utseende och ännu nyare kommentarsinformation, inklusive: - -- En smygtitt på innehållets rubrik eller överordnade kommentar, beroende på om författaren har lämnat en kommentar på inlägget eller svarat på en befintlig kommentar. -- Formaterat innehåll så att du kan se varje kommentar precis som författaren skrev den. -- En delningsknapp för godkända kommentarer. -- Användare med administratörs- eller redigerarroller kan se kommentarsförfattarnas e-post- och IP-adresser. -- Tryckbara webbadresser för att besöka författarens URL (istället för deras profilbild). - -Slutligen har vi uppdaterat gränssnittet för vyn Svara, både minimerad och i fullskärm. Det ser bra ut! diff --git a/fastlane/jetpack_metadata/tr/release_notes.txt b/fastlane/jetpack_metadata/tr/release_notes.txt deleted file mode 100644 index fec106eb4408..000000000000 --- a/fastlane/jetpack_metadata/tr/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -İki adımlı kimlik doğrulama artık ekstra güvenlikle birlikte geliyor. Bildirimleri onaylamak veya reddetmek için cihazınızın kilidini açmanız gerekir. -Görsel bloku için "Bağlantı" ayarını, önceden var olan "Özel URL" seçeneğinin yanı sıra "Ortam Dosyası" ve "Ek Sayfası" seçeneklerini içerecek şekilde genişlettik. -Kullanıcılar Microsoft Word'den listeleri kopyalayıp yapıştırdıklarında arayüzün çökmesine neden olan bir sorunu düzelttik. - -Sitem > Yorumlar'a gittiğinizde, yeni bir görünüm ve aşağıdakiler dahil olmak üzere daha yeni yorum ayrıntıları göreceksiniz: - -- Yazarın gönderiye yorum bırakıp bırakmasına veya mevcut bir yoruma yanıt vermesine bağlı olarak, gönderi başlığına veya ana yoruma gizli bir bakış. -- Her yorumu yazıldığı anda görebilmeniz için zengin içerik. -- Onaylanmış yorumlar için bir paylaş düğmesi. -- Yönetici veya Düzenleyici rolüne sahip kullanıcılar için, yorum yazarlarının e-posta ve IP adreslerini görebilme olanağı. -- Yazarın URL'sini ziyaret etmek için dokunulabilir web adresi (avatar resmi yerine). - -Son olarak, hem simge durumuna küçültülmüş hem de tam ekran olarak Yanıt görünümünde kullanıcı arayüzünü güncelledik. Harika bir görünüm! diff --git a/fastlane/jetpack_metadata/tr/subtitle.txt b/fastlane/jetpack_metadata/tr/subtitle.txt index 962f5aa74b37..b35dc8720905 100644 --- a/fastlane/jetpack_metadata/tr/subtitle.txt +++ b/fastlane/jetpack_metadata/tr/subtitle.txt @@ -1 +1 @@ -Daha hızlı, daha güvenli bir WordPress \ No newline at end of file +Daha hızlı, güvenli WordPress \ No newline at end of file diff --git a/fastlane/jetpack_metadata/zh-Hans/release_notes.txt b/fastlane/jetpack_metadata/zh-Hans/release_notes.txt deleted file mode 100644 index 65b2758aef92..000000000000 --- a/fastlane/jetpack_metadata/zh-Hans/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -两步式身份验证现新增一层安全保障。 您需要解锁设备才能批准或拒绝通知。 -我们扩展了图片区块的“链接到”设置,在已有的“自定义 URL”选项旁边添加了“媒体文件”和“附件页面”选项。 -我们修复了在用户从 Microsoft Word 复制和粘贴列表时出现的界面崩溃问题。 - -当您前往“我的站点 > 评论”时,您将看到一个全新的外观,甚至更新的评论详细信息,包括: - -- 预览文章标题或父评论,具体取决于作者是对文章进行评论还是对现有评论作出回复。 -- 获取丰富的内容,让您可以看到每条评论,就像是自己写的一样。 -- 用于批准评论的共享按钮。 -- 具有管理员或编辑角色的用户可以查看评论作者的电子邮件和 IP 地址。 -- 吸引点击量的 Web 地址,用于访问作者的 URL(而不是他们的头像图片)。 - -最后,我们更新了回复视图的 UI,包括最小化和全屏。 看起来非常棒! diff --git a/fastlane/jetpack_metadata/zh-Hant/release_notes.txt b/fastlane/jetpack_metadata/zh-Hant/release_notes.txt deleted file mode 100644 index 0f6f0e6c1a6c..000000000000 --- a/fastlane/jetpack_metadata/zh-Hant/release_notes.txt +++ /dev/null @@ -1,13 +0,0 @@ -兩步驟驗證現在增添額外安全性。 你需要解鎖裝置才能核准或拒絕通知。 -我們拓展了圖片區塊的「連結至」設定,新增「媒體檔案」和「附件頁面」選項,以及之前就有的「自訂 URL」選項。 -我們修正了使用者從 Microsoft Word 複製貼上清單時,導致介面當機的問題。 - -前往「我的網站」>「留言」時,你會發現全新設計外觀,以及更新的留言詳細資訊,包括: - -- 快速概覽文章標題或上層留言 (視留言者在文章上留言或回覆現有留言而定)。 -- 多種格式內容,你可在留言者撰寫留言時查看每則留言內容。 -- 核准留言適用的分享按鈕。 -- 擔任管理員或編輯者角色的使用者可查看留言者的電子郵件和 IP 位址。 -- 可點選的網址以造訪留言者的 URL (而非大頭貼圖片)。 - -最後,我們更新了「回覆」檢視的 UI,包括最小化和全螢幕檢視畫面。 看起來簡單俐落! From ff3fbe2833c399f5f612708c8677eff16cb0fd93 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 1 Dec 2021 12:39:29 +1100 Subject: [PATCH 336/371] 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 41b142ac01b7..e3274064a181 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -6,4 +6,4 @@ VERSION_SHORT=18.8 // build for the day so I bumped it to 10/02. On 10/04 we'll code freeze 18.4 // and this should be the very last build for 18.3, so we should be fine. // – Gio -VERSION_LONG=18.8.0.20211129 +VERSION_LONG=18.8.0.20211201 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index ed27db44d379..7f0611f3f15b 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.8.0.1 +VERSION_LONG=18.8.0.2 From b351d33f195709949b21b0d654599d2019df7972 Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 1 Dec 2021 13:27:18 +0000 Subject: [PATCH 337/371] Fix for Reader Detail view navigation bars on iOS 15 --- WordPress/Classes/ViewRelated/System/WPTabBarController.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/WordPress/Classes/ViewRelated/System/WPTabBarController.m b/WordPress/Classes/ViewRelated/System/WPTabBarController.m index fdb3224466d5..cf5230313565 100644 --- a/WordPress/Classes/ViewRelated/System/WPTabBarController.m +++ b/WordPress/Classes/ViewRelated/System/WPTabBarController.m @@ -160,6 +160,11 @@ - (UINavigationController *)readerNavigationController _readerNavigationController.navigationBar.translucent = NO; _readerNavigationController.view.backgroundColor = [UIColor murielBasicBackground]; + // Set a clear scroll edge background to allow for featured images that extend behind the navigation area. + UINavigationBarAppearance *appearance =_readerNavigationController.navigationBar.scrollEdgeAppearance; + appearance.backgroundColor = [UIColor clearColor]; + _readerNavigationController.navigationBar.scrollEdgeAppearance = appearance; + UIImage *readerTabBarImage = [UIImage imageNamed:@"icon-tab-reader"]; _readerNavigationController.tabBarItem.image = readerTabBarImage; _readerNavigationController.tabBarItem.selectedImage = readerTabBarImage; From a42d92a5ae453bef40c991d6f36de23dfa88b187 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 29 Nov 2021 14:02:03 -0300 Subject: [PATCH 338/371] Add: lookup a self-hosted blog --- WordPress/Classes/Models/Blog+Lookup.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/WordPress/Classes/Models/Blog+Lookup.swift b/WordPress/Classes/Models/Blog+Lookup.swift index f5932c3558cc..1da056a8b44a 100644 --- a/WordPress/Classes/Models/Blog+Lookup.swift +++ b/WordPress/Classes/Models/Blog+Lookup.swift @@ -45,4 +45,17 @@ public extension Blog { // assemble the predicate as in `NSPredicate("blogID == %@")` try? lookup(withID: id.int64Value, in: context) } + + /// Lookup a Blog by WP.ORG Credentials + /// + /// - Parameters: + /// - username: The username associated with the blog. + /// - xmlrpc: The xmlrpc URL address + /// - context: An NSManagedObjectContext containing the `Blog` object with the given `blogID`. + /// - Returns: The `Blog` object associated with the given `username` and `xmlrpc`, if it exists. + static func lookup(username: String, xmlrpc: String, in context: NSManagedObjectContext) -> Blog? { + let service = BlogService(managedObjectContext: context) + + return service.findBlog(withXmlrpc: xmlrpc, andUsername: username) + } } From ffdddade97d5dc64906ad427a8e5086d1e375a99 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 30 Nov 2021 11:25:45 -0300 Subject: [PATCH 339/371] Refactor: change the callback to return if quick start should be presented --- .../Blog/QuickStartPromptViewController.swift | 6 +-- .../NUX/WordPressAuthenticationManager.swift | 50 +++++++++++++++++++ .../FinalAssembly/SiteAssemblyStep.swift | 2 +- .../SiteAssemblyWizardContent.swift | 6 +-- .../Wizard/SiteCreationWizardLauncher.swift | 4 +- 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index 0d7e699cc4aa..a3f8300cc29e 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -24,7 +24,7 @@ final class QuickStartPromptViewController: UIViewController { /// Closure to be executed upon dismissal. /// - var onDismiss: ((Blog) -> Void)? + var onDismiss: ((Blog, Bool) -> Void)? // MARK: - Init @@ -108,7 +108,7 @@ final class QuickStartPromptViewController: UIViewController { // MARK: - IBAction @IBAction private func showMeAroundButtonTapped(_ sender: Any) { - onDismiss?(blog) + onDismiss?(blog, true) dismiss(animated: true) WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "positive"]) @@ -116,7 +116,7 @@ final class QuickStartPromptViewController: UIViewController { @IBAction private func noThanksButtonTapped(_ sender: Any) { quickStartSettings.setPromptWasDismissed(true, for: blog) - onDismiss?(blog) + onDismiss?(blog, false) dismiss(animated: true) WPAnalytics.track(.quickStartRequestAlertButtonTapped, withProperties: ["type": "neutral"]) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 09a5f016ea99..b50184ac7488 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -323,6 +323,17 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { return } + let onDismissQuickStartPrompt: (Blog, Bool) -> Void = { [weak self] blog, _ in + self?.onDismissQuickStartPrompt(for: blog, onDismiss: onDismiss) + } + + // If adding a self-hosted site, skip the Epilogue + if let wporg = credentials.wporg, + let blog = Blog.lookup(username: wporg.username, xmlrpc: wporg.xmlrpc, in: ContextManager.shared.mainContext) { + presentQuickStartPrompt(for: blog, in: navigationController, onDismiss: onDismissQuickStartPrompt) + return + } + if PostSignUpInterstitialViewController.shouldDisplay() { self.presentPostSignUpInterstitial(in: navigationController, onDismiss: onDismiss) return @@ -519,6 +530,45 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { } } +// MARK: - Quick Start Prompt +private extension WordPressAuthenticationManager { + func presentQuickStartPrompt(for blog: Blog, in navigationController: UINavigationController, onDismiss: ((Blog, Bool) -> Void)?) { + // If the quick start prompt has already been dismissed, + // then show the My Site screen for the specified blog + guard !quickStartSettings.promptWasDismissed(for: blog) else { + + if self.windowManager.isShowingFullscreenSignIn { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + } else { + navigationController.dismiss(animated: true) + } + + return + } + + // Otherwise, show the Quick Start prompt + let quickstartPrompt = QuickStartPromptViewController(blog: blog) + quickstartPrompt.onDismiss = onDismiss + navigationController.pushViewController(quickstartPrompt, animated: true) + } + + func onDismissQuickStartPrompt(for blog: Blog, onDismiss: @escaping () -> Void) { + onDismiss() + + // If the quick start prompt has already been dismissed, + // then show the My Site screen for the specified blog + guard !self.quickStartSettings.promptWasDismissed(for: blog) else { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + return + } + + // Otherwise, show the My Site screen for the specified blog and after a short delay, + // trigger the Quick Start tour + self.windowManager.dismissFullscreenSignIn(blogToShow: blog, completion: { + QuickStartTourGuide.shared.setupWithDelay(for: blog) + }) + } +} // MARK: - WordPressAuthenticatorManager // diff --git a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyStep.swift b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyStep.swift index 7c288a18ab5d..037502535de8 100644 --- a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyStep.swift +++ b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyStep.swift @@ -26,7 +26,7 @@ final class SiteAssemblyStep: WizardStep { /// - creator: the in-flight creation instance /// - service: the service to use for initiating site creation /// - onDismiss: the closure to be executed upon dismissal of the SiteAssemblyWizardContent - init(creator: SiteCreator, service: SiteAssemblyService, onDismiss: ((Blog) -> Void)? = nil) { + init(creator: SiteCreator, service: SiteAssemblyService, onDismiss: ((Blog, Bool) -> Void)? = nil) { self.creator = creator self.service = service self.content = SiteAssemblyWizardContent(creator: creator, service: service, onDismiss: onDismiss) diff --git a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift index 638f22de271c..7b4c12a6b48b 100644 --- a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift +++ b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift @@ -36,7 +36,7 @@ final class SiteAssemblyWizardContent: UIViewController { private let quickStartSettings: QuickStartSettings /// Closure to be executed upon dismissal - private let onDismiss: ((Blog) -> Void)? + private let onDismiss: ((Blog, Bool) -> Void)? // MARK: SiteAssemblyWizardContent @@ -50,7 +50,7 @@ final class SiteAssemblyWizardContent: UIViewController { init(creator: SiteCreator, service: SiteAssemblyService, quickStartSettings: QuickStartSettings = QuickStartSettings(), - onDismiss: ((Blog) -> Void)? = nil) { + onDismiss: ((Blog, Bool) -> Void)? = nil) { self.siteCreator = creator self.service = service self.quickStartSettings = quickStartSettings @@ -258,7 +258,7 @@ extension SiteAssemblyWizardContent: NUXButtonViewControllerDelegate { } let quickstartPrompt = QuickStartPromptViewController(blog: blog) - quickstartPrompt.onDismiss = { blog in + quickstartPrompt.onDismiss = { blog, _ in QuickStartTourGuide.shared.setupWithDelay(for: blog) } tabBar.present(quickstartPrompt, animated: true) diff --git a/WordPress/Classes/ViewRelated/Site Creation/Wizard/SiteCreationWizardLauncher.swift b/WordPress/Classes/ViewRelated/Site Creation/Wizard/SiteCreationWizardLauncher.swift index cef687909adb..3bae7b2cbcc1 100644 --- a/WordPress/Classes/ViewRelated/Site Creation/Wizard/SiteCreationWizardLauncher.swift +++ b/WordPress/Classes/ViewRelated/Site Creation/Wizard/SiteCreationWizardLauncher.swift @@ -48,9 +48,9 @@ final class SiteCreationWizardLauncher { /// Closure to be executed upon dismissal of the SiteAssemblyWizardContent. /// - private let onDismiss: ((Blog) -> Void)? + private let onDismiss: ((Blog, Bool) -> Void)? - init(onDismiss: ((Blog) -> Void)? = nil) { + init(onDismiss: ((Blog, Bool) -> Void)? = nil) { self.onDismiss = onDismiss } } From 2f51b89b3404fadac7ddfee310bd1759d5a9ba8d Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 30 Nov 2021 11:26:06 -0300 Subject: [PATCH 340/371] Fix: show quick start after site creation only if the user choose to --- .../FinalAssembly/SiteAssemblyWizardContent.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift index 7b4c12a6b48b..f6eba1376fcf 100644 --- a/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift +++ b/WordPress/Classes/ViewRelated/Site Creation/FinalAssembly/SiteAssemblyWizardContent.swift @@ -258,8 +258,10 @@ extension SiteAssemblyWizardContent: NUXButtonViewControllerDelegate { } let quickstartPrompt = QuickStartPromptViewController(blog: blog) - quickstartPrompt.onDismiss = { blog, _ in - QuickStartTourGuide.shared.setupWithDelay(for: blog) + quickstartPrompt.onDismiss = { blog, showQuickStart in + if showQuickStart { + QuickStartTourGuide.shared.setupWithDelay(for: blog) + } } tabBar.present(quickstartPrompt, animated: true) } From 6897ad995330876b6a6450833cdefb91afb464e2 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Tue, 30 Nov 2021 14:32:38 -0300 Subject: [PATCH 341/371] Fix: for self-hosted flows ensure the blog is selected when triggering the quick start --- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index b50184ac7488..ca6f9be9e83f 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -564,7 +564,7 @@ private extension WordPressAuthenticationManager { // Otherwise, show the My Site screen for the specified blog and after a short delay, // trigger the Quick Start tour - self.windowManager.dismissFullscreenSignIn(blogToShow: blog, completion: { + self.windowManager.showAppUI(for: blog, completion: { QuickStartTourGuide.shared.setupWithDelay(for: blog) }) } From 7ade499827cb20d0b59208edd99a5cfbd52e203c Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 1 Dec 2021 13:22:07 -0300 Subject: [PATCH 342/371] Test: fix UI tests --- .../Login/LoginUsernamePasswordScreen.swift | 36 ++++++++++++++++--- .../WordPressUITests/Tests/LoginTests.swift | 8 ++--- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift b/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift index 10fbd820f6a7..aca1b7b68102 100644 --- a/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift +++ b/WordPress/UITestsFoundation/Screens/Login/LoginUsernamePasswordScreen.swift @@ -49,6 +49,30 @@ public class LoginUsernamePasswordScreen: ScreenObject { } public func proceedWith(username: String, password: String) -> LoginEpilogueScreen { + fill(username: username, password: password) + + return LoginEpilogueScreen() + } + + public func proceedWithSelfHostedSiteAddedFromSitesList(username: String, password: String) throws -> MySitesScreen { + fill(username: username, password: password) + try dismissQuickStartPromptIfNeeded() + + return try MySitesScreen() + } + + public func proceedWithSelfHosted(username: String, password: String) throws -> MySiteScreen { + fill(username: username, password: password) + try dismissQuickStartPromptIfNeeded() + + return try MySiteScreen() + } + + public static func isLoaded() -> Bool { + (try? LoginUsernamePasswordScreen().isLoaded) ?? false + } + + private func fill(username: String, password: String) { usernameTextField.tap() usernameTextField.typeText(username) passwordTextField.tap() @@ -60,11 +84,15 @@ public class LoginUsernamePasswordScreen: ScreenObject { passwordTextField.typeText(password) } nextButton.tap() - - return LoginEpilogueScreen() } - public static func isLoaded() -> Bool { - (try? LoginUsernamePasswordScreen().isLoaded) ?? false + private func dismissQuickStartPromptIfNeeded() throws { + try XCTContext.runActivity(named: "Dismiss quick start prompt if needed.") { (activity) in + if QuickStartPromptScreen.isLoaded() { + Logger.log(message: "Dismising quick start prompt...", event: .i) + _ = try QuickStartPromptScreen().selectNoThanks() + return + } + } } } diff --git a/WordPress/WordPressUITests/Tests/LoginTests.swift b/WordPress/WordPressUITests/Tests/LoginTests.swift index de436fd72fc1..54d4af16b796 100644 --- a/WordPress/WordPressUITests/Tests/LoginTests.swift +++ b/WordPress/WordPressUITests/Tests/LoginTests.swift @@ -54,9 +54,7 @@ class LoginTests: XCTestCase { try prologueScreen .selectSiteAddress() .proceedWith(siteUrl: WPUITestCredentials.selfHostedSiteAddress) - .proceedWith(username: WPUITestCredentials.selfHostedUsername, password: WPUITestCredentials.selfHostedPassword) - .verifyEpilogueDisplays(siteUrl: WPUITestCredentials.selfHostedSiteAddress) - .continueWithSelectedSite() + .proceedWithSelfHosted(username: WPUITestCredentials.selfHostedUsername, password: WPUITestCredentials.selfHostedPassword) .removeSelfHostedSite() XCTAssert(prologueScreen.isLoaded) @@ -85,9 +83,7 @@ class LoginTests: XCTestCase { // Then, go through the self-hosted login flow: .proceedWith(siteUrl: WPUITestCredentials.selfHostedSiteAddress) - .proceedWith(username: WPUITestCredentials.selfHostedUsername, password: WPUITestCredentials.selfHostedPassword) - .verifyEpilogueDisplays(siteUrl: WPUITestCredentials.selfHostedSiteAddress) - .continueWithSelfHostedSiteAddedFromSitesList() + .proceedWithSelfHostedSiteAddedFromSitesList(username: WPUITestCredentials.selfHostedUsername, password: WPUITestCredentials.selfHostedPassword) // Login flow returns MySites modal, which needs to be closed. .closeModal() From b0e044af6e4c760a6e56b6720a4055350be66d86 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Wed, 1 Dec 2021 14:24:54 -0300 Subject: [PATCH 343/371] docs: add missing comment to onDismiss block --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index a3f8300cc29e..e5e6363a687e 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -24,6 +24,9 @@ final class QuickStartPromptViewController: UIViewController { /// Closure to be executed upon dismissal. /// + /// - Parameters: + /// - Blog: the blog for which the prompt was dismissed + /// - Bool: `true` if Quick Start should start, otherwise `false` var onDismiss: ((Blog, Bool) -> Void)? // MARK: - Init From 2baed73ecbba7debb145967f48b42ca156c0b076 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 1 Dec 2021 11:38:27 +0000 Subject: [PATCH 344/371] Add: isQuickStartAvailable method Aligned the quick start availability logic w Android https://github.com/wordpress-mobile/WordPress-Android/blob/c02191f5b7dfb82845f8c85585d971211988aa7c/WordPress/src/main/java/org/wordpress/android/util/QuickStartUtils.kt#L196-L201 --- .../Classes/ViewRelated/Blog/QuickStartSettings.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartSettings.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartSettings.swift index 09bd87a2207a..4e73302acf49 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartSettings.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartSettings.swift @@ -10,6 +10,14 @@ final class QuickStartSettings { self.userDefaults = userDefaults } + // MARK: - Quick Start availability + + func isQuickStartAvailable(for blog: Blog) -> Bool { + return blog.isUserCapableOf(.ManageOptions) && + blog.isUserCapableOf(.EditThemeOptions) && + !blog.isWPForTeams() + } + // MARK: - User Defaults Storage func promptWasDismissed(for blog: Blog) -> Bool { From 23b5068d4e027bd29c1ab0a2561f8bdc61071350 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 1 Dec 2021 10:56:21 +0000 Subject: [PATCH 345/371] Fix: check if quick start is available --- .../NUX/WordPressAuthenticationManager.swift | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index ca6f9be9e83f..2d7fdf6ec4e7 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -374,23 +374,12 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { return } - // If the quick start prompt has already been dismissed, - // then show the My Site screen for the specified blog - guard !self.quickStartSettings.promptWasDismissed(for: blog) else { - - if self.windowManager.isShowingFullscreenSignIn { - self.windowManager.dismissFullscreenSignIn(blogToShow: blog) - } else { - navigationController.dismiss(animated: true) - } - + guard self.quickStartSettings.isQuickStartAvailable(for: blog) else { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) return } - // Otherwise, show the Quick Start prompt - let quickstartPrompt = QuickStartPromptViewController(blog: blog) - quickstartPrompt.onDismiss = onDismissQuickStartPrompt - navigationController.pushViewController(quickstartPrompt, animated: true) + self.presentQuickStartPrompt(for: blog, in: navigationController, onDismiss: onDismissQuickStartPrompt) } epilogueViewController.onCreateNewSite = { From 539cd5066a0eefbb74d7d13ea70640c9a23156ca Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 29 Nov 2021 14:02:23 -0300 Subject: [PATCH 346/371] Add: do not show the epilogue when adding a self-hosted site --- .../NUX/WordPressAuthenticationManager.swift | 25 ++----------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 2d7fdf6ec4e7..5e0ce52b70e7 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -1,6 +1,7 @@ import Foundation import WordPressAuthenticator import Gridicons +import UIKit // MARK: - WordPressAuthenticationManager @@ -347,28 +348,6 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { epilogueViewController.credentials = credentials - let onDismissQuickStartPrompt: (Blog) -> Void = { [weak self] blog in - - guard let self = self else { - return - } - - onDismiss() - - // If the quick start prompt has already been dismissed, - // then show the My Site screen for the specified blog - guard !self.quickStartSettings.promptWasDismissed(for: blog) else { - self.windowManager.dismissFullscreenSignIn(blogToShow: blog) - return - } - - // Otherwise, show the My Site screen for the specified blog and after a short delay, - // trigger the Quick Start tour - self.windowManager.dismissFullscreenSignIn(blogToShow: blog, completion: { - QuickStartTourGuide.shared.setupWithDelay(for: blog) - }) - } - epilogueViewController.onBlogSelected = { [weak self] blog in guard let self = self else { return @@ -446,7 +425,6 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { return true } - /// Whenever a WordPress.com account has been created during the Auth flow, we'll add a new local WPCOM Account, and set it as /// the new DefaultWordPressComAccount. /// @@ -559,6 +537,7 @@ private extension WordPressAuthenticationManager { } } + // MARK: - WordPressAuthenticatorManager // private extension WordPressAuthenticationManager { From c7e0b85d2a6eb8d6b199769bc83a6b3f3b9c3dc0 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 2 Dec 2021 18:54:42 +0100 Subject: [PATCH 347/371] Update translations --- .../Resources/es.lproj/Localizable.strings | 50 +++++++-------- .../Resources/id.lproj/Localizable.strings | 58 +++++++++--------- .../Resources/ja.lproj/Localizable.strings | 22 +++---- .../Resources/ko.lproj/Localizable.strings | 4 +- .../Resources/nl.lproj/Localizable.strings | 48 +++++++-------- .../Resources/sq.lproj/Localizable.strings | 8 +-- .../ar.lproj/Localizable.strings | Bin 4619 -> 4619 bytes .../bg.lproj/Localizable.strings | Bin 3614 -> 3614 bytes .../cs.lproj/Localizable.strings | Bin 4887 -> 4887 bytes .../cy.lproj/Localizable.strings | Bin 3239 -> 3239 bytes .../da.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../de.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../en-AU.lproj/Localizable.strings | Bin 3057 -> 3057 bytes .../en-CA.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../en-GB.lproj/Localizable.strings | Bin 3067 -> 3067 bytes .../es.lproj/Localizable.strings | Bin 4114 -> 4114 bytes .../fr.lproj/Localizable.strings | Bin 5336 -> 5336 bytes .../he.lproj/Localizable.strings | Bin 4586 -> 4586 bytes .../hr.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../hu.lproj/Localizable.strings | Bin 3297 -> 3297 bytes .../id.lproj/Localizable.strings | Bin 3469 -> 3469 bytes .../is.lproj/Localizable.strings | Bin 3414 -> 3414 bytes .../it.lproj/Localizable.strings | Bin 3926 -> 3926 bytes .../ja.lproj/Localizable.strings | Bin 3632 -> 3632 bytes .../ko.lproj/Localizable.strings | Bin 3476 -> 3476 bytes .../nb.lproj/Localizable.strings | Bin 3832 -> 3832 bytes .../nl.lproj/Localizable.strings | Bin 3691 -> 3691 bytes .../pl.lproj/Localizable.strings | Bin 3214 -> 3214 bytes .../pt-BR.lproj/Localizable.strings | Bin 4574 -> 4574 bytes .../pt.lproj/Localizable.strings | Bin 3712 -> 3712 bytes .../ro.lproj/Localizable.strings | Bin 4930 -> 4930 bytes .../ru.lproj/Localizable.strings | Bin 5105 -> 5105 bytes .../sk.lproj/Localizable.strings | Bin 4899 -> 4899 bytes .../sq.lproj/Localizable.strings | Bin 4927 -> 4927 bytes .../sv.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../th.lproj/Localizable.strings | Bin 3316 -> 3316 bytes .../tr.lproj/Localizable.strings | Bin 4905 -> 4905 bytes .../zh-Hans.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../zh-Hant.lproj/Localizable.strings | Bin 3102 -> 3102 bytes .../ar.lproj/Localizable.strings | Bin 146 -> 146 bytes .../bg.lproj/Localizable.strings | Bin 174 -> 174 bytes .../cs.lproj/Localizable.strings | Bin 176 -> 176 bytes .../cy.lproj/Localizable.strings | Bin 118 -> 118 bytes .../da.lproj/Localizable.strings | Bin 128 -> 128 bytes .../de.lproj/Localizable.strings | Bin 139 -> 139 bytes .../en-AU.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-CA.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-GB.lproj/Localizable.strings | Bin 84 -> 84 bytes .../es.lproj/Localizable.strings | Bin 128 -> 128 bytes .../fr.lproj/Localizable.strings | Bin 129 -> 129 bytes .../he.lproj/Localizable.strings | Bin 150 -> 150 bytes .../hr.lproj/Localizable.strings | Bin 119 -> 119 bytes .../hu.lproj/Localizable.strings | Bin 160 -> 160 bytes .../id.lproj/Localizable.strings | Bin 134 -> 134 bytes .../is.lproj/Localizable.strings | Bin 138 -> 138 bytes .../it.lproj/Localizable.strings | Bin 131 -> 131 bytes .../ja.lproj/Localizable.strings | Bin 118 -> 118 bytes .../ko.lproj/Localizable.strings | Bin 110 -> 110 bytes .../nb.lproj/Localizable.strings | Bin 133 -> 133 bytes .../nl.lproj/Localizable.strings | Bin 116 -> 131 bytes .../pl.lproj/Localizable.strings | Bin 96 -> 96 bytes .../pt-BR.lproj/Localizable.strings | Bin 158 -> 158 bytes .../pt.lproj/Localizable.strings | Bin 156 -> 156 bytes .../ro.lproj/Localizable.strings | Bin 148 -> 148 bytes .../ru.lproj/Localizable.strings | Bin 166 -> 166 bytes .../sk.lproj/Localizable.strings | Bin 140 -> 140 bytes .../sq.lproj/Localizable.strings | Bin 134 -> 134 bytes .../sv.lproj/Localizable.strings | Bin 146 -> 146 bytes .../th.lproj/Localizable.strings | Bin 154 -> 154 bytes .../tr.lproj/Localizable.strings | Bin 170 -> 170 bytes .../zh-Hans.lproj/Localizable.strings | Bin 110 -> 110 bytes .../zh-Hant.lproj/Localizable.strings | Bin 112 -> 112 bytes 72 files changed, 95 insertions(+), 95 deletions(-) diff --git a/WordPress/Resources/es.lproj/Localizable.strings b/WordPress/Resources/es.lproj/Localizable.strings index 403c9f15d5b1..e0b9d1c42874 100644 --- a/WordPress/Resources/es.lproj/Localizable.strings +++ b/WordPress/Resources/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 17:53:39+0000 */ +/* Translation-Revision-Date: 2021-12-01 08:45:30+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: es */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ para corregir las amenazas."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d comentario"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d comentarios"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Comparte automáticamente las nuevas entradas en tus medios sociales para empezar a atraer esa audiencia a tu sitio."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "La familia Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Actualizaciones automáticas"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Elige un nuevo icono para la aplicación"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Elige un sitio para abrir."; /* Title of a Quick Start Tour */ "Choose a theme" = "Elige un tema"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Elige una hora"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Elige un icono del sitio que sea único"; /* No comment provided by engineer. */ "Choose audio" = "Elegir audio"; @@ -1633,7 +1633,7 @@ translators: Block name. %s: The localized block name */ "Completed: Choose a theme" = "Completado: Elegir un tema"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Completado: Elige un icono del sitio que sea único"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completado: Continúa con la configuración del sitio"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completado: revisar las páginas del sitio"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Completado: Compartir en redes sociales"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completado: Ver tu sitio"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Copiar enlace al comentario"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Copiar la URL desde el portapapeles, %s"; /* No comment provided by engineer. */ "Copy block" = "Copiar bloque"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Borrador"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Guarda en borrador y publica tu una entrada."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Desde otro dispositivo"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Desde el portapapeles"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Desde este dispositivo"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimizará tus imágenes y las servirá desde la ubicación del servidor más cercano a tus visitantes. Usar nuestra red de entrega de contenidos global mejorará la velocidad de carga de tu sitio."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Únete desde cualquier sitio"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Únete a la conversación: comenta las entradas de los blogs que sigues."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Aprende más…"; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Aprende lo básico con un rápido recorrido."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Izquierda"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Iconos heredados"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Asuntos legales y más"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Deja que te ayudemos"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Inicio rápido"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Valóranos"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Puntúanos en la App Store"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Compartir enlace"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Compartir con amigos"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Mostrar entradas relacionadas"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Muéstrame el camino"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Mostrado"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Mostrado en la pestaña del navegador de tu visitante y en otros sitios online."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Se muestra públicamente cuando comentas en blogs."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Social"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Compartir en redes sociales"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Algunos bloques tienen ajustes adicionales. Toca el icono de los ajustes en la parte inferior derecha del bloque para ver más opciones."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Cambiar al editor de bloques"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "Cambiado a modo HTML"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "Cambiado a modo visual"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Cambia al tamaño de fuente Cabecera 1"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Ver todo"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Ver todos los comentarios"; /* Button label for viewing a post */ "View Post" = "Ver entrada"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "Esperando..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "¿Quieres una pequeña ayuda para gestionar este sitio con la aplicación?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "Página del plugin en WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Trabaja con nosotros"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mapa del mundo que muestra las visualizaciones por país."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Puedes reorganizar los bloques tocando un bloque y luego tocando las flechas arriba y abajo que aparecen en la parte inferior izquierda del bloque para moverlo encima o debajo de otros bloques."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Puedes cambiar los sitios en cualquier momento."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puedes actualizar esto en cualquier momento desde Mi sitio > Ajustes del sitio"; diff --git a/WordPress/Resources/id.lproj/Localizable.strings b/WordPress/Resources/id.lproj/Localizable.strings index 5bc826eb5292..18bd591f3683 100644 --- a/WordPress/Resources/id.lproj/Localizable.strings +++ b/WordPress/Resources/id.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 11:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-01 05:24:35+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: id */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ untuk memperbaiki ancaman."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d Komentar"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d Komentar"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Secara otomatis bagikan pos baru ke media sosial Anda untuk menarik perhatian audiens di media sosial ke situs Anda."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Keluarga Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Pembaruan otomatis"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Pilih ikon aplikasi baru"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Pilih situs yang ingin dibuka"; /* Title of a Quick Start Tour */ "Choose a theme" = "Pilih tema"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Pilih waktu"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Pilih ikon unik untuk situs Anda"; /* No comment provided by engineer. */ "Choose audio" = "Pilih audio"; @@ -1633,7 +1633,7 @@ translators: Block name. %s: The localized block name */ "Completed: Choose a theme" = "Selesai: Pilih tema"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Selesai: Memilih ikon unik untuk situs Anda"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Selesai: Lanjutkan penyiapan situs"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Selesai: Tinjau laman situs"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Selesai: Membagi ke media sosial"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Selesai: Lihat situs Anda"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Salin Tautan ke Komentar"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Salin URL dari papan klip, %s"; /* No comment provided by engineer. */ "Copy block" = "Salin blok"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Naskah"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Buat draf dan publikasikan artikel."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -2689,7 +2689,7 @@ translators: Block name. %s: The localized block name */ "Enable in-app notifications" = "Aktifkan pemberitahuan dalam aplikasi"; /* Hint for the action button that enables notification for new comments */ -"Enable in-app notifications?" = "Enable in-app notifications?"; +"Enable in-app notifications?" = "Aktifkan pemberitahuan dalam aplikasi?"; /* NSMicrophoneUsageDescription: Sentence to justify why the app asks permission from the user to access the device microphone. */ "Enable microphone access to record sound in your videos." = "Izinkan akses mikrofon untuk merekam suara di video Anda."; @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Dari perangkat lain"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Dari papan klip"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Dari perangkat ini"; @@ -3569,10 +3569,10 @@ translators: Block name. %s: The localized block name */ "In order to share your published posts to your social media you need to enable the Publicize module." = "Untuk membagikan pos yang telah diposkan ke media sosial, Anda perlu mengaktifkan modul Publikasikan."; /* The app successfully disabled notifications for the subscription */ -"In-app notifications disabled" = "In-app notifications disabled"; +"In-app notifications disabled" = "Pemberitahuan dalam aplikasi dinonaktifkan"; /* The app successfully enabled notifications for the subscription */ -"In-app notifications enabled" = "In-app notifications enabled"; +"In-app notifications enabled" = "Pemberitahuan dalam aplikasi diaktifkan"; /* Describes a status of a plugin */ "Inactive" = "Nonaktif"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack akan mengoptimalkan gambar Anda dan menyajikannya dari lokasi server yang terdekat dengan pengunjung situs. Dengan menggunakan jaringan pengiriman konten global kami, kecepatan pemuatan situs Anda akan menjadi lebih cepat."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Ikuti Dari Manapun"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Bergabung dengan percakapan: komentari pos dari blog yang Anda ikuti."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Pelajari selengkapnya..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Pelajari dasar-dasarnya dengan panduan cepat."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Rata Kiri"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Ikon Lawas"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Legal dan Lainnya"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Mari Kami Bantu"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Mulai Cepat"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Beri Rating"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Beri nilai kami di App Store"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Bagikan tautan"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Bagikan dengan Teman"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Tampilkan Pos Terkait"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Ajak saya berkeliling"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Ditampilkan"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Ditampilkan di tab peramban pengunjung Anda dan di tempat lain secara online."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Ditampilkan secara publik saat Anda mengomentari blog."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Sosial"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Berbagi melalui media sosial"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Beberapa blok memiliki pengaturan tambahan. Ketuk ikon pengaturan di kanan bawah blok untuk melihat pilihan lainnya."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Beralih ke penyunting blok"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "Beralih ke mode HTML"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "Beralih ke mode Visual"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Beralih ke Judul ukuran font 1"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Lihat Semua"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Lihat Semua Komentar"; /* Button label for viewing a post */ "View Post" = "Lihat Pos"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "Menunggu..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "Butuh sedikit bantuan dalam mengelola situs ini dengan aplikasi?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "Halaman Plugin WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Berkarya Bersama Kami"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Peta dunia menampilkan kunjungan berdasarkan negara."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Anda dapat mengatur ulang blok dengan mengetuk satu blok lalu mengetuk panah atas dan bawah yang muncul di sisi kiri bawah blok untuk memindahkannya ke atas atau ke bawah blok lain."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Anda dapat berganti situs kapan saja."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Anda dapat melakukan pembaruan ini kapan saja melalui Situs Saya > Pengaturan Situs"; @@ -8957,7 +8957,7 @@ translators: Block name. %s: The localized block name */ "Your media could not be exported. If the problem persists you can contact us via the Me > Help & Support screen." = "Media Anda tidak dapat diekspor. If the problem persists you can contact us via the Me > layar Bantuan & Dukungan."; /* Details about recently acquired domain on domain credit redemption success screen */ -"Your new domain %@ is being set up. It may take up to 30 minutes for your domain to start working." = "Your new domain %@ is being set up. It may take up to 30 minutes for your domain to start working."; +"Your new domain %@ is being set up. It may take up to 30 minutes for your domain to start working." = "Domain baru Anda %@ sedang disiapkan. Perlu waktu hingga 30 menit agar domain anda mulai berfungsi."; /* shown in promotional screens during first launch */ "Your notifications travel with you — see comments and likes as they happen." = "Bawa pemberitahuan ke mana pun Anda pergi — lihat komentar dan suka seketika."; diff --git a/WordPress/Resources/ja.lproj/Localizable.strings b/WordPress/Resources/ja.lproj/Localizable.strings index babe0584b8a6..ff346efa795f 100644 --- a/WordPress/Resources/ja.lproj/Localizable.strings +++ b/WordPress/Resources/ja.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-26 17:23:23+0000 */ +/* Translation-Revision-Date: 2021-12-02 09:54:07+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ja_JP */ @@ -9160,22 +9160,22 @@ translators: Block name. %s: The localized block name */ "widget.alltime.posts.label" = "投稿"; /* Description of all time widget in the preview */ -"widget.alltime.preview.description" = "widget.alltime.preview.description"; +"widget.alltime.preview.description" = "全期間のアクティビティを確認して WordPress サイトの最新情報を常に把握しましょう。"; /* Title of all time widget */ -"widget.alltime.title" = "widget.alltime.title"; +"widget.alltime.title" = "すべての期間"; /* Title of the unconfigured view in all time widget */ -"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; +"widget.alltime.unconfigured.view.title" = "WordPress にログインして全期間の統計情報を確認しましょう。"; /* Description of all time widget in the preview */ -"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; +"widget.thisweek.preview.description" = "今週のアクティビティを確認して WordPress サイトの最新情報を常に把握しましょう。"; /* Title of this week widget */ -"widget.thisweek.title" = "widget.thisweek.title"; +"widget.thisweek.title" = "今週"; /* Title of the unconfigured view in this week widget */ -"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; +"widget.thisweek.unconfigured.view.title" = "WordPress にログインして今週の統計情報を確認しましょう。"; /* Title of comments label in today widget */ "widget.today.comments.label" = "コメント"; @@ -9184,19 +9184,19 @@ translators: Block name. %s: The localized block name */ "widget.today.likes.label" = "いいね"; /* Title of the nodata view in today widget */ -"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; +"widget.today.nodata.view.title" = "サイト統計情報を読み込めません。"; /* Description of today widget in the preview */ -"widget.today.preview.description" = "widget.today.preview.description"; +"widget.today.preview.description" = "今日のアクティビティを確認して WordPress サイトの最新情報を常に把握しましょう。"; /* Title of today widget */ "widget.today.title" = "今日"; /* Title of the unconfigured view in today widget */ -"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; +"widget.today.unconfigured.view.title" = "WordPress にログインして今日の統計情報を確認しましょう。"; /* Error message to show if a widget view is unavailable */ -"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; +"widget.today.view.unavailable.title" = "プレビューは利用できません"; /* Title of views label in today widget */ "widget.today.views.label" = "表示数"; diff --git a/WordPress/Resources/ko.lproj/Localizable.strings b/WordPress/Resources/ko.lproj/Localizable.strings index c0a3b3977a86..a85a2ddaf6c0 100644 --- a/WordPress/Resources/ko.lproj/Localizable.strings +++ b/WordPress/Resources/ko.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 15:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-02 13:54:07+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ko_KR */ @@ -9196,7 +9196,7 @@ translators: Block name. %s: The localized block name */ "widget.today.unconfigured.view.title" = "워드프레스에 로그인하여 오늘 통계를 참조하세요."; /* Error message to show if a widget view is unavailable */ -"widget.today.view.unavailable.title" = "미리보기 사용할 수 없음"; +"widget.today.view.unavailable.title" = "미리보기를 사용할 수 없습니다."; /* Title of views label in today widget */ "widget.today.views.label" = "뷰"; diff --git a/WordPress/Resources/nl.lproj/Localizable.strings b/WordPress/Resources/nl.lproj/Localizable.strings index 24244c0d5bac..cee2c454f3fd 100644 --- a/WordPress/Resources/nl.lproj/Localizable.strings +++ b/WordPress/Resources/nl.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 13:42:39+0000 */ +/* Translation-Revision-Date: 2021-12-01 19:27:13+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: nl */ @@ -51,7 +51,7 @@ /* Plural button title to Like a comment. %1$d is a placeholder for the number of Likes. Plural format string for view title displaying the number of post likes. %1$d is the number of likes. */ -"%1$d Likes" = "%1$d likes"; +"%1$d Likes" = "%1$d vind-ik-leuks"; /* Format string for displaying number of completed quickstart tutorials. %1$d is number completed, %2$d is total number of tutorials available. */ "%1$d of %2$d completed" = "%1$d van %2$d afgerond"; @@ -611,7 +611,7 @@ translators: Block name. %s: The localized block name */ "Address line %@" = "Adresregel %@"; /* Adds a post to My Likes. Spoken Hint. */ -"Adds this post to My Likes" = "Voegt dit bericht toe aan 'Mijn likes'"; +"Adds this post to My Likes" = "Voegt dit bericht toe aan 'Mijn vind-ik-leuks'"; /* Title for the advanced section in site settings screen */ "Advanced" = "Geavanceerd"; @@ -964,7 +964,7 @@ translators: Block name. %s: The localized block name */ "Avg Comments \/ Post" = "Gem. reacties \/ bericht"; /* 'This Year' label for average likes per post. */ -"Avg Likes \/ Post" = "Gem. likes \/ bericht"; +"Avg Likes \/ Post" = "Gem. vind-ik-leuks \/ bericht"; /* 'This Year' label for average words per post. */ "Avg Words \/ Post" = "Gem. woorden \/ bericht"; @@ -1000,7 +1000,7 @@ translators: Block name. %s: The localized block name */ "Bar Chart depicting Comments for the selected period." = "Staafgrafiek waarin het aantal opmerkingen tijdens de geselecteerde periode staan weergegeven."; /* This description is used to set the accessibility label for the Period chart, with Likes selected. */ -"Bar Chart depicting Likes for the selected period." = "Staafgrafiek waarin het aantal likes tijdens de geselecteerde periode staat weergegeven."; +"Bar Chart depicting Likes for the selected period." = "Staafgrafiek waarin het aantal vind-ik-leuks tijdens de geselecteerde periode staat weergegeven."; /* This description is used to set the accessibility label for the Period chart, with Views selected. */ "Bar Chart depicting Views for selected period, Visitors superimposed" = "Staafgrafiek waarin het aantal weergaven tijdens de geselecteerde periode staat weergegeven, evenals het aantal bezoekers"; @@ -1555,7 +1555,7 @@ translators: Block name. %s: The localized block name */ "Comment" = "Reactie"; /* Title for the `comment likes` setting */ -"Comment Likes" = "Reactie likes"; +"Comment Likes" = "Reactie vind-ik-leuks"; /* Message displayed when approving a comment succeeds. */ "Comment approved." = "Reactie goedgekeurd."; @@ -2097,7 +2097,7 @@ translators: Block name. %s: The localized block name */ "Customize your insights" = "Je inzichten aanpassen"; /* Notification Settings for your own blogs */ -"Customize your site settings for Likes, Comments, Follows, and more." = "Je site-instellingen aanpassen voor Likes, Reacties, Volgt en meer."; +"Customize your site settings for Likes, Comments, Follows, and more." = "Je site-instellingen aanpassen voor Vind-ik-leuks, Reacties, Volgt en meer."; /* No comment provided by engineer. */ "Cut block" = "Blok knippen"; @@ -2701,7 +2701,7 @@ translators: Block name. %s: The localized block name */ "Enable site notifications?" = "Site meldingen inschakelen?"; /* Error message shown when trying to view Stats and the stats module is disabled. */ -"Enable site stats to see detailed information about your traffic, likes, comments, and subscribers." = "Schakel sitestatistieken in om gedetailleerde informatie over je bezoekers, likes, reacties en abonnees te bekijken."; +"Enable site stats to see detailed information about your traffic, likes, comments, and subscribers." = "Schakel sitestatistieken in om gedetailleerde informatie over je bezoekers, vind-ik-leuks, reacties en abonnees te bekijken."; /* Text displayed while activating the site stats module. */ "Enabling Site Stats..." = "Sitestatistieken inschakelen ..."; @@ -2815,7 +2815,7 @@ translators: Block name. %s: The localized block name */ "Error installing %@." = "Fout tijdens installatie %@."; /* Text displayed when there is a failure loading notification likes. */ -"Error loading likes" = "Fout bij het laden van likes"; +"Error loading likes" = "Fout bij het laden van vind-ik-leuks"; /* Messaged displayed when fetching plugins failed. */ "Error loading plugins" = "Fout bij laden plugins"; @@ -3848,7 +3848,7 @@ translators: Block name. %s: The localized block name */ "Learn More" = "Meer leren"; /* Body text of the first alert preparing users to grant permission for us to send them push notifications. */ -"Learn about new comments, likes, and follows in seconds." = "Lees meer over nieuwe reacties, likes, en opvolgingen in seconden."; +"Learn about new comments, likes, and follows in seconds." = "Lees meer over nieuwe reacties, vind-ik-leuks, en opvolgingen in seconden."; /* Description of a Quick Start Tour */ "Learn about the marketing and SEO tools in our paid plans." = "Bekijk meer informatie over de marketing- en SEO-tools van onze betaalde abonnementen."; @@ -3908,13 +3908,13 @@ translators: Block name. %s: The localized block name */ Text for the 'like' button. Tapping removes the 'liked' status from a post. Title of the Likes Reader tab Today's Stats 'Likes' label */ -"Likes" = "Likes"; +"Likes" = "Vind-ik-leuks"; /* Setting: indicates if Comment Likes will be notified */ -"Likes on my comments" = "Likes voor mijn reacties"; +"Likes on my comments" = "Vind-ik-leuks voor mijn reacties"; /* Setting: indicates if Replies to your comments will be notified */ -"Likes on my posts" = "Likes voor mijn berichten"; +"Likes on my posts" = "Vind-ik-leuks voor mijn berichten"; /* VoiceOver accessibility hint, informing the user the button can be used to like a comment */ "Likes the Comment." = "Vind de reactie leuk."; @@ -4630,7 +4630,7 @@ translators: Block name. %s: The localized block name */ "No internet connection. Some posts may be unavailable while offline." = "Geen internetverbinding. Bepaalde berichten kunnen niet beschikbaar zijn terwijl je offline bent."; /* Displayed in the Notifications Tab as a title, when the Likes Filter shows no notifications */ -"No likes yet" = "Nog geen likes"; +"No likes yet" = "Nog geen vind-ik-leuks"; /* Title for the view when there aren't any backups to display for a given filter. */ "No matching backups found" = "Geen overeenkomende back-ups gevonden"; @@ -5790,7 +5790,7 @@ translators: Block name. %s: The localized block name */ "Removes location metadata from photos before uploading them to your site." = "Verwijdert locatiegegevens uit foto's alvorens ze naar je site te uploaden."; /* Removes a post from My Likes. Spoken Hint. */ -"Removes this post from My Likes" = "Verwijder dit bericht uit 'Mijn likes'"; +"Removes this post from My Likes" = "Verwijder dit bericht uit 'Mijn vind-ik-leuks'"; /* Explanation of what will happen if the user confirms this alert. */ "Removing Next Steps will hide all tours on this site. This action cannot be undone." = "Door 'Volgende stappen' te verwijderen, worden alle rondleidingen op deze site verborgen. Deze actie kan niet ongedaan worden gemaakt."; @@ -6493,7 +6493,7 @@ translators: Block name. %s: The localized block name */ "Shows all followers" = "Geeft alle volgers weer"; /* Accessibility hint for a post or comment “like” notification. */ -"Shows all likes." = "Geeft alle likes weer."; +"Shows all likes." = "Geeft alle vind-ik-leuks weer."; /* Spoken accessibility hint for blog name in Reader cell. */ "Shows all posts from %@" = "Toont alle berichten van %@"; @@ -7372,10 +7372,10 @@ translators: Block name. %s: The localized block name */ "This post is currently uploading. It won't take long – try again soon and you'll be able to edit it." = "Dit bericht wordt momenteel geüpload. Dit duurt niet lang. Probeer het zo opnieuw en je kan het bewerken."; /* Post is in my likes. Accessibility label */ -"This post is in My Likes" = "Dit bericht staat in 'Mijn likes'"; +"This post is in My Likes" = "Dit bericht staat in 'Mijn vind-ik-leuks'"; /* Post is not in my likes. Accessibility label */ -"This post is not in My Likes" = "Dit bericht staat niet in 'Mijn likes'"; +"This post is not in My Likes" = "Dit bericht staat niet in 'Mijn vind-ik-leuks'"; /* Message shown when the reader finds no posts for the chosen site */ "This site has not posted anything yet. Try back later." = "Deze site heeft nog niets geplaatst. Probeer het later nog eens."; @@ -7551,7 +7551,7 @@ translators: Block name. %s: The localized block name */ "Total Email Followers: %@" = "Totaal aantal e-mailvolgers: %@"; /* 'This Year' label for total number of likes. */ -"Total Likes" = "Totaal aantal likes"; +"Total Likes" = "Totaal aantal vind-ik-leuks"; /* 'This Year' label for the total number of posts. */ "Total Posts" = "Totaal aantal berichten"; @@ -7954,7 +7954,7 @@ translators: Block name. %s: The localized block name */ "Updates the bar chart to show comments." = "Staafgrafiek wordt bijgewerkt om reacties te tonen."; /* Accessibility hint for the Likes button in Stats Overview. */ -"Updates the bar chart to show likes." = "Staafgrafiek wordt geūpdate om likes te tonen."; +"Updates the bar chart to show likes." = "Staafgrafiek wordt geüpdatet om vind-ik-leuks te tonen."; /* Accessibility hint for the Views button in Stats Overview. */ "Updates the bar chart to show views." = "Staafgrafiek wordt bijgewerkt om weergaven te tonen."; @@ -8415,7 +8415,7 @@ translators: Block name. %s: The localized block name */ "We'll notify you when you get followers, comments, and likes." = "We sturen je een melding bij nieuwe volgers, reacties en vind-ik-leuks."; /* Body text of the first alert preparing users to grant permission for us to send them push notifications. */ -"We'll notify you when you get new followers, comments, and likes. Would you like to allow push notifications?" = "We brengen je op de hoogte als je nieuwe volgers, reacties en likes krijgt. Wil je pushberichten toestaan?"; +"We'll notify you when you get new followers, comments, and likes. Would you like to allow push notifications?" = "We brengen je op de hoogte als je nieuwe volgers, reacties en vind-ik-leuks krijgt. Wil je pushberichten toestaan?"; /* Text displayed in notice after a page if published while offline. */ "We'll publish the page when your device is back online." = "We publiceren de pagina wanneer je apparaat weer online is."; @@ -8877,7 +8877,7 @@ translators: Block name. %s: The localized block name */ "You need to verify your account before you can publish a post.\nDon’t worry, your post is safe and will be saved as a draft." = "Je moet je account verifiëren alvorens je een bericht kan publiceren.\nGeen zorgen, je bericht is veilig en wordt als concept opgeslagen."; /* Example Likes notification displayed in the prologue carousel of the app. Number of likes should marked with * characters and will be displayed as bold text. */ -"You received *50 likes* on your site today" = "Je ontving *50 likes* op je site vandaag"; +"You received *50 likes* on your site today" = "Je ontving *50 vind-ik-leukss* op je site vandaag"; /* Message displayed in popup when user has the option to load unsaved changes. is a placeholder for a new line, and the two %@ are placeholders for the date of last save on this device, and date of last autosave on another device, respectively. */ @@ -8960,7 +8960,7 @@ translators: Block name. %s: The localized block name */ "Your new domain %@ is being set up. It may take up to 30 minutes for your domain to start working." = "Je nieuwe domein %@ wordt ingesteld. Het kan tot 30 minuten duren voor je domein werkend is."; /* shown in promotional screens during first launch */ -"Your notifications travel with you — see comments and likes as they happen." = "Je meldingen reizen met je mee. Bekijk reacties en likes wanneer ze binnenkomen."; +"Your notifications travel with you — see comments and likes as they happen." = "Je meldingen reizen met je mee. Bekijk reacties en vind-ik-leuks wanneer ze binnenkomen."; /* Help text that describes how the password should be. It appears while editing the password */ "Your password should be at least six characters long. To make it stronger, use upper and lower case letters, numbers, and symbols like ! \" ? $ % ^ & )." = "Je wachtwoord moet minstens zes karakters lang zijn. Om het sterker te maken, gebruik hoofd- en kleine letters, getallen en symbolen zoals ! \" ? $ % ^ & )."; @@ -9181,7 +9181,7 @@ translators: Block name. %s: The localized block name */ "widget.today.comments.label" = "Reacties"; /* Title of likes label in today widget */ -"widget.today.likes.label" = "Likes"; +"widget.today.likes.label" = "Vind-ik-leuks"; /* Title of the nodata view in today widget */ "widget.today.nodata.view.title" = "Kan site statistieken niet laden."; diff --git a/WordPress/Resources/sq.lproj/Localizable.strings b/WordPress/Resources/sq.lproj/Localizable.strings index 5969913afa95..36e6b3d85f82 100644 --- a/WordPress/Resources/sq.lproj/Localizable.strings +++ b/WordPress/Resources/sq.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-26 17:24:11+0000 */ +/* Translation-Revision-Date: 2021-12-02 17:03:46+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sq_AL */ @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Ndiqni statistikat e sajtit tuaj"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Kontrolloni titullin e sajtit tuaj"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Po kontrollohen blerjet…"; @@ -1627,7 +1627,7 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "E plotësuar: Shihni statistikat e sajtit tuaj"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "E plotësuar: Kontrolloni titullin e sajtit tuaj"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "E plotësuar: Zgjidhni një temë"; @@ -5841,7 +5841,7 @@ translators: Block name. %s: The localized block name */ "Reply to %1$@" = "Përgjigje për %1$@"; /* Placeholder text for replying to a post */ -"Reply to post" = "Reply to post"; +"Reply to post" = "Përgjigjuni postimit"; /* The title of a button that triggers reporting of a post from the user's reader. */ "Report this post" = "Njoftoni për këtë postim"; diff --git a/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings index 32532907077e9f846b6820be9d4888fcc00b997f..4ada2a438be4d9bfd4c0428997d01ecf331be7b8 100644 GIT binary patch delta 1383 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 brCV~B+#i*7`91l3jEObHhGN&@R$TcH7zn7x delta 1417 zcmZ9LTWl0n9LCRFcD8$&+1ZxTG}{dWLIVQTCSt5aw9pdK(w4oIQp$3=b9Q$+)0t)F z%*rm5s)-LuOoV?FOuQr-MIVee9uN`|C8#fi1booM7>Pa@Bk__bycj*Rix|zkopZkL zeBbYX=0yLA{^usR(6NbhY1dpyC*?}jm^ZBj+o>IJJ?hsVJJ@I*I=pyfZ^kH9wQY_~ ziA{@YPu|9J7SX7q`8CVIx;CiQ9FNZIusz~ZZOpLE+*VvNv-!+eK4(yi6jcq5@ICM# z7wIah>ZCts8D6!e(j5DKcuVNx(x7qa|Lo!lY3&~6dY2V4WWlMEz1y%|B9>uS1_lP; z6TyeG+?M6D*(!F~nnqmLai>NMZ^7_9xXG;+is~BXyCOcQl?{vJhif&f0V_k@%Ir>} z8(5pDQNyu4_>@1S&9v`m6`0Ps4GmYYVNZ|h2Gu56!DC1JA%tqJIK=46K zz5%B@UVx!+Dn?KinaD+dA_|X048c+FWKN@SE}D?bXc9S0eS|3~+(-<6T1w& z(y7euF?}y!-?W{&4{2o$^hpF}!!tc56Z&WlS;%1K4yv={Hge$W1bfOI8@miN$xSm; zuT`zi!kO?=JPkwY`qgao!zT5yWi*{SrkbOhxLIK-DN7mHm({k@ zcvITkYyArfY3y=6P%v;ld=pu>Wh&#(xrT|$+8%Cp!G>uexe z<>IZBlo{#l5(_?7hoKZ7f*pw=hH4c*Q7AO#Tufmkc?#ZB)-9Ep$ZbuF-HkfXQFIc0fX<@}=reQ) z{lW=cntOnoUY)?F!IIVW6 X`&IdXdOn#OWjOAj- zgK@)J&n7X_X-7U)L5^XSA$A zp*k)^I}$cTb!3=m&BV|(JnWJM(6fIvi9O%3pl8Dxy(<$#RuP-zf^>p>FAa^RHN!J; zcG_^OhU@0iH63}lc~l{~Z@k$8{hDbb9qSi=?IQgEl4pf}X~ADJ4Yxx6QisXB9LU-N z9bSkIlDyhOF7ZQytF1-QZAsF!poSM?ba>fz0xf~hd*qtfOE!TEb4gsa>#eQYNmN{4 zn$Zmph7+{~RK|2k??0Xbu`{}oG>R1%vn>x>bm?&D&%RMO4oikft#~4Igbc6;I%h&3 zQ|V-UIZhQ&XUE3I$d~-!(~DEO4n67~HEvf*=zHi8Ey+&f67o%t+~>M3esM_3v<@V1 z@qOJZEnTfyg=n;GM0W(KOPUivR7QsNZ!vgoZwzSf9Bx>)YwIu;xDC_v_VV8Ye#UCR zY1_nB2!0?#!5hfeVn}cNC;IM(&{N2|9#s7{`?0i!Dg0Cn`IPmv(ZITn9KW^ZQS=Wg zi?N_$({iKDU(Lkql4a}d1oW%J2Omm68@`cFU>B9z^bhB>z_NU(hvJG%f_cE0`O~%; zlzmD#oSD^p9fiti431Jj;jcwS&$wP-!E%G5vMl6NY=!9KF*>UexYW>+jlGIpendK= z&2%is%|<{gcauRz^iaW)vb8mB(xXavi?gn>@e}RwjvwV`z z@~`q2_$&Np{CE71{LlQ3a6lLkCWI40N~jC33zvm$Ve_WgA@+(V#hkbyZi?@U*Tg&G zH{yM9NBmQYN{6Lm(xkK~y&=6P-H<+zK9RnXevmo&kUT2S%eUpP9OmVLxo zR1RE0<$zSF2S5lR5C?<=mjY5R9N<8OgnB?d6vQ1-5El+e{Ih-}Z5jenkt!@pV|ix& z$M=2zw>xQDrt9_g{-7R@L`5kk#}i7jYuQ5&FIQKrT=huz>NRWEt>3V*=h01Q^OmjK zw(r=v>#^OBr}m`x_U?OP|C3K0c>0-xhn_urEef^n%*x-qi&z(B`{Lt{one5qI zURzx#mPR*>of|)oCN7j;z>^i7RBMJgHEr#yQ)a*DxCcG|@R6Cu?D?EoF;Iq4k5I3y zt|?GFX%XZx&KPpd?7bf&`i%FWfc{|ql6#U9bEOo zD=DmqF1 zDP*x4GAT!)vyrZ_I>J;(bv#Xw>pKJm%tr>EAqabjNA#c;*fKqm;z8lQ6Chl}CWWNk z^Ra1xOZ2k3HP0h(sBD9I3<`j68^%_D6L|wWP(31!!<^E9>DEmbP~DtizNOQhke*ZJ z;hLL98n$`i4uR~Dcl+Oh*#^DPXWLd#R#&!o;>kEEfY-z@(M^ob*q+HKB%K{&zJqY3 z!hGr>oe>vN<~4z^iNh;{gYy(r5AQ=so?*HnJWwQHo(G^%pI$d941DcU)Zm!bhIVXFH$9YvT9?2QPBewLYY9X;vMsg1812)W-~v7)4B;7U zTH%y%s$Gre?l3gS8M@Ha8*-bp-32R<3b2kBY#jpt;Y4NOzY96y`A!HNNB-OpP})}P zs!$|zGr$`e<2TU=uEWGEZ%%1PR-+jRU1Lt5X`l&hgv@#x4^hey&$F`~ z*K)mu`gV{DyadP~4llZ_-cd3fv-?BnTAR2VG0`B}En{z>fKK=ifH|I0hzn{K* zmvz8MJW!4tG6>HAi_nRa%nE8gyh>ClTk5&i8SQ`U#iNN|97^#a?texifRpbW>AWK01{rObUmp1LPB^= zxFUQaTob+&z7nnrw`h|Ev>=%c` zqIgmKK>S#|Dqa`A6Mqzckt9i#x}|N>UTIJ|BVlPuVv;8X(ks&2(r41Q(yy^(Y)@=B zR*1b6dn@*C>_a&scgq{)Uiq{`7fKOBeVbj diff --git a/WordPress/WordPressShareExtension/da.lproj/Localizable.strings b/WordPress/WordPressShareExtension/da.lproj/Localizable.strings index 896a47a2cec09e0e3a87723b3e0691aea3198097..16f5fa01a6b66647e9600d02d15ed3f5e27732f8 100644 GIT binary patch delta 1278 zcma)*Piz!b9LL|xy!l(Po27+TTXx*CND5YnNhOV<%R;+_vMjqZ-Q8~6^>ycUJM8St zc4l^CMN_%-f+4_*7eGUTMiNfM8_Go!NJvN%NKEvg#)BR-{)-xnG4aiAd$1A1TqcwE z`@Qe)`~CdpQtzeSv&TooQF$ymzUlChiKD4w>EoHKrcdVbg{k87%xr0U>=iUuHt_EG z%7S^K`kYl8w)Z*pMc4BiFB650h>qv0jy*ztflrdXuD@A$!G6QFgWjNJGJ)(ew#ZxJ ze)6TbeYdWezJ+rKO|NEpUQw?b$j7Y_OQFuT%9%7~zC)XgXt-7u1Af``GqNp%_u+2)V0BB(8LkJ*?by zC`dA^XC|g5Xi_xWp`jtN3Zpynal=r3nivghZTuklAQf7YJBa5|!}7^bT=%)V1L9P5a@@vtzjSP})5kXy@a$-LNd|uJaxYcw{tJkRs%~GVn-{J6n(o zNxA~qUE@mzr5^Gt7pCxdJ-DB|3Ag@6{NKZT#e@8I|F559+giXZ0p^I5*hzrkPNKj4>d2w|a5I3N^-MPWsFN4O?@ zCVVCQDf}&l#a-fvm=KHNDe-;rns{BjDXxm&NURi|%E$X*DT@yjetSaB$$z;Nis3@R6g(UU+fj_~?o3OS!zU z%p5C>ubP;gI*Cu6F1}1ko68oRu58cP&d!;tTVveY{ffVLUl7($=A5#P2RREV3yb=4 zlaZ23amaDqb2+i_PVDg@oI1t=>W6s5VO8T0DOdAmZp1X4(4|Eko6%7!4qHB%4x=k+ zywSDrwBypCsO#B!33j%lCz!K6qSf3j(IO4E#p$BncZVV7>dr4lDpVA6Q63T0Kn`N4 zf-v$BM*#})rm-BY@diCPNLZP=4y$A`nWFAzT}lFqT~cSTd}vc#;J%ghX%JxId1>tO z3U-)4q5B|H<~2;1g=?fraZvXuZt^;|NrPe%Vo@=KS>TZq(zGZF_x&a&72+^x+B+Yc zHn`L(>g)5Of`H1idB|Y^`0K#f-tSc2CO%A$sqb^YaM%fIP5`K`9prV_Vw<78peiJl zAcGC!iNSpe-J$QszXY=bx;fx^ZnLN_Y4aqS2~q&BQ^%?05PZT59nPTXnF(I^F)5dM zorT!qG{B69Eg(GVi^<^NJO$OF`!G^yJ3#~w3<;R$0Vq6R)f@(9@JYyhTqX>cZNh+7 z01zmeD;Q*^T4Y8VoG?1jP7GO2h_f*3J+OomE#Yms2O?eB7TREp4_Ga50iRKhNrO0U zy+tP1OSK}m4(kv=V(~>Bj5z`lOsTBN3lyI zk<58OEHWW(;!#oq$1G~Ov@5IeK`33}e$y~O6UHb#6B?pKAxA+coE7zzx4Eyoc2Qp; z^cLyc#{uxt#5VQC&_(^0N!s!(>TB)*saT>TuiFhuz^D{&g7An|gZYK}ZxMf&u)cY- z&SB80T{ujqN!QDrEHD9F+g_C`JkQ+y{|AkQ19a^C~mG_8u$xMM0$xBU?{ z{%7gDAebkPg8!+1dm6U$YFy+pBMk`Ig|ST0DBu9UOc2cBK;|VkIYU16*rNjqHOzBltD_fO8Wl||AwsKCns9aXAD?caYq?TNsd@K20^6TXF zKE!2^?UV(dQ+3Mq_#mjpqbjN fc3%5b`&PTzv#KZPIg6rKJl6UTKbmiO^_>3`fAbaq diff --git a/WordPress/WordPressShareExtension/de.lproj/Localizable.strings b/WordPress/WordPressShareExtension/de.lproj/Localizable.strings index 653f9aa3a479552f2c393709afa2bebd342acdaf..f91ef13e619e389f8c7cd48163d5ed5e929d6e73 100644 GIT binary patch delta 1456 zcmX|*-}}-)@Yt(7FSI4ah74%94R-8C!vTnD{{w5T6(m(1c_ps4*rwMT34YlK8<0CK}@<#!G@xVj|vROa$Y5+RZdMJ!zlI z|NndbH+paMK7HWaSfndoD3Yntw05+tSEx}vHnPpM>{|W!iJ95C$L3Fhm+z7d%T^3J z0KbW=VT-up;mQ4^sHw_*KdYHGBk5Ysfw z@dVLH!Or0gpl}g*UhoZOoN8rMt&kk!}$(bsd7-WM>hB=cQB`28Ej#R@5S@zP$JWXjjfqAZ`WaFe_)SEhzyVXKDGgQ=U zh3&ADV`_Xo)O+E6Ck#Z_|CeH+DifqJ zNhN0wBh(0`TDEH{yS_$DLSbW25e(+*kZ&`5CHuIojge(}kn3S@y>K0`4`v%|W*ZF# z-U$0~2OJ3PSiI!x<|G3L(Kt|F82-Tn@Mdsb4^9%61gfaZLK7@OnMa!e(#Uud3EU%Z zT#UJUx&FfqSu6ol#H55yp@R&OiSD2RDl^eB)7HvFSMo$P^A1g#N;qHe2+qJ$t>I1< zlwrfHs5TSGSSx$!w5r<%-nnD|gW!w7=fUo_U|KVaN{Q%dkx-V89Nq?NE(fjzt_8jbd=u;sCW2b&|COD{8^|kv^|s$ O&4=D-eF0u=Q~m?DD$Di& delta 1441 zcmZ9LYitx%6vyYa(|yluajA8?ax0aJN_og5!2l`kHdaepy1Q+cLYKQcx4YAwompq@ z7Ph5SVqz2w3dav51`;3mNPI-l1ko6yiNp_JqKSSX3c;8dOi(@;5}$W=fkeOTCil)c z|Nr@&|Gm(8q4W76-g9Iqp5LC!Yhm{sp(eU}7Rqbc1W>F!F!s6o3Y8s4>y zXgWqi6{=gN178SpXriG}A0U&mYX}#xZe|jiPSG$M@W`QM5a%CwWbCH@@or5+6c?PV z+B|3>JcD(kPR7wGaZ+x{ZD$GB*<`~#avFBwQ#HCUk*;W%k_NS5HuB^Mp;g;-@w!xZ z3^2ltd9&)GB%UEiv+)$Y4KL&JMuWJ_C@YOk+}sP%#(P-nf@RlIDP}V@NcPf{+hS~l zu(ercR)qym3`$~b@&B6NV*k5z&yn|HkdcB~!R+Ktj9^P73Y8RH{}Xqe)_r zJcYBK@zq&1(nn~%=q{s9fvst@F*OtDv+OdaItvN0QNLNl28EBC9)!zsZ1EJggR62j z_a~R)DO>I%_P+u(q@5-h(D#zM>aHSA_7obdO+LSzHUGWGsJeP`J#K&+-+06 zL<}a0Z6-?z#N^$us_98(q8_1HhJu)u+5+2sYzt}>Lf#Fc!i~b=NSpf<8a5Hm0)x01t^NqU|Cd&xK{V0%mtPu;H z7)<%j*yxyBY-f@c!d^NXXrggo5C_&qx*!zlfS;6hXjRw3oZJTAhcoblf5nhSOkBO?W?Yb)mIx)kJ%U&FtN>iC9uH z-M0qiyxbw~7Mg!`O3$DQYX)t&|edkhFlMX~~kPRFe)!C!`OhucY5R ze$NWeHc#3!>pAXu+4H8%%Tc*aUL#M+HTfy|S@}xS-A#$6x0_Kd4D<#vfun&}gXeuRNoCpnRv?P`lJe)mPN(>K~DHk%N)Lk(ZheHope%EJFVR8Ish@ diff --git a/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings index 757bd63a7b9967342e4a3a47d6cbc9570b841ca6..b925b6822b67f89b9a812d68d79ba0b38506649d 100644 GIT binary patch delta 1177 zcma))UuYCZ9LINdXLoj2qh~aCi6&-@Ce#=rVu@m_81u(ySrb^4`g9fCcpihGIEzlR0J`_>f2SEzbKJ}r+DrzZx>TWIpBenQ6%rL*- z_xJmLzAqy$BVR>#cZ)r!SJ}U;uWH4CgP&FRABu(}1F^&LM1z*ZgQ=lS%`NF8n_IWE zWrjyav!8GOm~@Qo%;}%d@%+SIrt*z~?RxBy6h?&0a}>9*tuVZI#)?_M9iH>b+Br!o8!^&goIJPsGpeD_E+0aMqSJcR^2})Hu_>H4v zie^I*|8@1og0H7(B=2eoQu1G`qc$cbVwhyiq}Vk)>arN93y;RBS9C1w**GW}>>^f< zn#@9b*c{r_medT-q^WMhoibcElPu`Oqw}+6Lo2tk?*L#YPk> zj+ur#!3t_K`;ITmTFh^r4K)R`u}N_i`v%s1I$9CKZe=@7D;MZcmoJdFow63CC;W;? za-ln}sI~d$xM5N@4T?Aur&D&RGLN>8 zCUBQ+dDQaQGt?@s4(wqY_}Vo+fwzfdy#GkQzmD&AdwV;344YbpI&~d;zLma<3ws4D z0=xV#sct$>il)c@6l&Ojv=I$fhGJ)6Lu9zJVWn9%6k4?93zev8%_(D&Cx-RDd~8{o zkGGStG!bt_L0AYtT`=Bzv9Ejw`y%i4A4+)rB3WN=3DnK+K>c5W$C;z9{ZK&SJfMIG zljNEOyPMfrxUP1jVzc>QKA+}fZic(d{lNXgJ?CBn4#*%38bBY20}~trB`^bSf^Web z_zC>Y*Yiz$E8oHQ@frRUKg-|XzZW`%USU!=CtMb;3O9t?!acYHcELUvhbedxUWBvo zK70y)gTKSS#9DEK*dgu_6Jkl67O#r8#KfFbE!9i=q>OY-IxWpeSEL8hGwBstj@F^= zD2=Akc{GdephxJryh{F3zAHbJf0o}UN0kf8b>)uoMEOJcN3B=4slBS9o>MQWx7d%% F@V`vXcy|B* literal 3057 zcmds3OK%%h7#(}YV~?S9+K@K14Y^I5q#>@G@+h<~%l z@9OS3(fdeW;$-qv|LI2`d;EzrPd;__+|vVt=bsrG9!Wv`=-BwP7cTC3?$X5MRLgYw z!1I|b#A~?@G}D=%EnM!I>z(gg2;vv@7w}TiI7^lX221A9e8wu8C`BDc9Hy%Wa}Hjz z31SpgT$^G8oklM8+1y3PCmur+mb0Rb;NnU)mzl_E7PE=2qFiv5@XLmWmst>!KwY+h zmMxq3x~irtOE9w;oFM9)l=^V_=GzC#lmc{eA+CBl>0LRP@Ss$dC@P!f>f z3RLg~hPr1mq)b=Idvy3zNjKFq(FmMI9)5wLmK#!o?!3I1Cw- z_{gEG282sI-Wgonq@Z#T4=pj%@&kCFNx(b{K%rryY&ozD9%j@-MeLxWi5;L700fFQ z68g!x8kvCx3t9u(!kA$(l!jjKfF<0h3Gc)m5NXObUk77$*r70FEPnc>*YHD7GaK$;J-w zK?*z)P2nuMX*|(H>hjdpjvXN7Lp0=d>w;ofRD!y}Jc7}nf3E&5;%^exzNyy@3>vxf zqhuLZY@omMwq0zR?e_KR(`Z`NB{NxKlOp8Ig{}pAU9v4!Gy%tb;{;xKx(W(QuVO?9t$ z?{0eTHd_F>-%W12>u$QEdHy%w+-8~E+^Ojw+uiYAa=+bjz5mncgqZM#a83A3_(u3n z_+D5SehrDC_RwG`9kN1h=;hGw;dr<|d_FuLz7l>jd@cM*_-pZuI3iAnGvZ6)hvKK= z7vj2jUHnD7DM^wlwMxgOQ_`3;En(@3L?tFwrB|hQr7xu)rQag)$jQiLBo}!x@=oOa z$VYNWZk3P7y>d#PmOc43`91kt`MP{V{xj-CUyptq{VMuXOpYCn^~OGk{Sf;@i7RbN uk20WKQ1VJyc}00!`CM67ZpLHrzWAlM8-FW)LkOO5sP+y2L$^Hfzy1bXYu}mx diff --git a/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings index bea29891854dd011a6fee535fa179f32172d5792..104514e17500d32e3fb18f5b365ed6d641061f02 100644 GIT binary patch delta 1168 zcma))UuYaf9LHyNXLoidjX6?tccn=)*Cy$|kRpXB)|RG8YO2@EdAFC#^^#mCx0Aai zo89Z}-sxFlErKY4q7FXTfG80a1VKt)Qc6LKNFNINAox<$7ZITzgvvY;h2ig2^@d=Y3S}2vRqk>4ivg`TcrW(c!lmMp#;s6RCoju7-i_yu7Z@G?_ z8L3q4M*f83@v2Ybma~{mab{B2nN62j)pAOdSF3JyD$Q+P^b4Uq;s@L--j((CT=O(d zuq9pyMZ|d$=`{>i@{BaA2Y)&fE@gFQ*=*kC)U$lo=b7RR&}WF(n>Ji)F^X` z+!hW#BGz%=V8*a~n`g%?Z^`n!e5PVDpKr`n2z5NRafQ|@w#!UzzWH01cweRBG})nL zleKx<^2*{6>Bg+Yg91;AE7DoTNH!t7M0Sh!(6*=MT5;5Cbu)}cg-?$L5hb_UFcSQQ zpkXAl`95vs4F=x@%jRMk)@VM(m)v@5BI6h|&ldDIh`X;o{zRS1Rd0J%mO$r;rKWhG`g4_b@;_pZg= z3vurv+_eGnruVJ~+U~f|_8rYT{;$}W_>lC8t5PE{*e|Z=2ln1)@S(b%7l%nq(6-pa zZG<;$ltCQ0fB_R&zyT#X5cm+Pwrdl1zjy_0kIuFr+y6!R9MHfD_zc_t--FxWPY9p} z!>|WVz!bFM8CZua@B?@WuETHO-%_`uvhW`kH=S|62ct ZbdVl0M3TfKuaQs4SL9prv*_AF{{?r%aJK*e literal 3125 zcmds3OK=oL81CJfo$M@P1~7m~%uj#>WLbg=$kT+7D455ZeI?cg))vb(Ra#>qAtY|j$Z@Y4>X0Rx9tT`XQ$3<}&g(>@CVpq`fmhnK;2B?_&L zREbxBx+YZU6$U}oXHer+u;>BwD)U3%hYx;Xvb1)8sIXsXzb2N z4-zWR;(}uW_;144sBb1?Q6IAh=KI_)oU?<99U!W^26@#n-ChhYTP0{YNI{l*GI5__ zbd009-EW zKzPiTnc=}D4620on3AyUAcO~#M9eb?6bzUZ+r?qk9Fi1_; zn;CL&D%*s1YRI$&q%qg~V2LN{#M^ftL|U{hG{Be~FzetVK4To{0=1oRN@S~ptc>02 z(2(rVY@Kfq)Z4ZKR%|N5I-T=OiU5QYmBx3o6HHY75IBka#Sv_2ld)Suk}S@EEM!Vr z!WgaK#I)C^v_-4QL3CZ_el43tPGrZ}HIbDr3KI-@!rh{=W7YJv$}Sq)CEr4R`w(DX zYG5&6CS5d^WzwK$(db$OQdvZkUaJR`;-E6UZa|9w&t;XhB>T+K63?&b1z6jz$*+1jB{}nl@hM{TrMpXtY({2 zfRhnYxHb1lREydi17zscaIVXaElL*RxM`T-Lb?k{gxKcmr1=Meyq*rc(vqZrFh;` z9J#R-FB=y6^$EkPMh#Qf=-^e33 z+Q~3NC`f6^R0P;afo}uoA#w5+xlV49FUi;B8*-cc7EvOdk<*cM#Ey88S0jH!6Vblt zndorza`c_(_2?(jTgp-8tTLkHl~r7wJ-_~#FxAdPAB+;EXnV3zy YmiQp??FJy>FB+*o$>qkg@z^l%7d{^1L;wH) diff --git a/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings index 5d8d87d71dbc1742d18aff2b9d7aa8b17f636013..96374f1077441ea6e11024c861f50e39fcafd0c4 100644 GIT binary patch delta 1157 zcmaiyPfQe79LML)yqPyU6eJ+KU|9P=K|sV96^(5Tuwc=y%XW8`1(!cQb|1@xVP@Ew z-4=-@dafHm!@ybBL zAQL*pj*0V@Zn^^wV9VXEsw8WxaZ+$=sv;&P1)}N2N?UWN&7z>rKNh1-K4*BnUdv#J z7-_0A3ms>_qTM?Zs^;i4*{j(znr){NR)#pVcqyCpZNL1ynypHh9aMJ8$!LB;*X$`) zq0}RirEZ90>=%9>s!`Kss@TGQgms^fmF8o+6i-#>EIJf&XJ*aZoEo9ux*-FJVhH*+ zM!OqlQqw6r5Arw_qcdiqbb{JL($m9z8O_1&4o8i;Yu)utOpvO|M`Buf3WrR?p@zfO zQJYxpkzfsc?e;zoYCI7Op9#CPT+AIE9qcdI*gVvo$zaE&<^p?@$CKcZaZ8fDbduzC zhdmW)F8{d;4VG?U7hte_q!jGUtly++wxSFv!)k60lPuAUtv;e<^GCe<3!8s{{UPt) zx0UHF{cd~D?_05-Y^@Trb1uSt@;r+xdpv2a?@9Zhp>J5Fvg>04#G(L?IFscX4<{Rt z_Ux_yU%YA1BJ_6Lq-Toq?a>loeKX+&PUaT5Tioy5I`@Qo0XQH7KL~<;5Cb}x1qHAO zu7TU&4p;-P`Fg&QZ{s`pem=#|^H=#*{=U#HoDimki^6xpval-L5bnYwFa-Ny3?|_@ zcnMyG_u${~U-%fl5^KcIkoUR)Nhi}5>Bl~gbFNGWMnT96i{E7E;wU3!Ts zP!JtPDYSqV(F(eW9-wD(jl3lPEU(G`$QwS($9&g)KlvW{o-3Tvs2owk%B-@a{Gi-o H56kd>vdMBL literal 3067 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 hn`7qtCO2UK zEfP{63<;)+f8+stAYcOeK!YY~ATdS~5=;!yXo87}z7b-gLIiyD%x+1{B$G2U|NnoN z|I6IjaA(8&!e6^yszR?%XBjFO2w$sBI}q;P3tx_OPJWUWgkcpgB0An zwjMCI8a@&ti3z_NkLqQT*V;3te%K(`wXjz)EH+>eR~T|St(Tm1O0Tk-*r@Mn*spI4_m7?yFI@7$S zHc*x^N%8dGZP3MG7?8T;G4HTJooSet*1~oEn3x{397s#+;k?-K@}UL@b{ZPf=~{)1 zC)nVUW!KW9@HFlGYmI9rk4nW zrF9?#V%otZEllHtWxB*qia3wSVcbgJ$THD5LVox3LS@SC}8(ABk@RLI4JYvIIL5T_d zf#L2MbPKs`&>R~<*vVygC%4aK@Rzh#^CCD{z4rb$~=^5;$5&9I?D;SdD z$!0$!Hpvc`Ov|tDZypd@Q3igH+n`O2LQIZxn_*CU4faM`1WW4!E3^sJNC(VETO--J zFT}RA!Mft!*f12Us{Idx+FrOHZHKSb?q}E{mPugtby+7x38XXb_fQF0 z%oK`9Hs#T(Zo05v-U~;94?CGZDX&toX_?r5t8W2Ym}_}9oNsF9o?ph-;DMHag_bQb zmhnb*JWNcRMTx>vxCXze`<}|hi#Bl_g0tlCWP$~`M9M5fTHJ~f(FW^#UrKR=!&&Lbus^-bM^m?CP z{8%1AuiXNzN(j%w^Q&me>76uOGOL%*Xx(LWsGg4_yjH8;d1IfI+ys@y5= zWA1bA8uugjFTaZK;WzSI`5`{XALGyQ7x|k)T-YPb3hxLX3TK6j!e!xGahsSBhs30q z73al8@tk-={6)Mg{&7NlB(0RXrLEEqDJ4~<eZlR)h2WXsh2XW|!%$CXV~B=+3hxhR!};*L;V;9FBB{ug$QMnWil``xt$=b_ zxvt!3Zc+ucU0tJYQO~PCt9P|GwI%Jkb}PCu+AN7-X+&q@-;EFCZzgK0q+~9VgM+G3AUZXQ{r&y$rRcyl zVb{9p^qk80877RGEW3wVC2Cplhp<7+E01y9j?e&}r8*f;mdkntI=zX=^Z}w#6_1u} zY8n>Y@EpUrT92xLsSK-NwWv~KYDl9t9^(SftZsxhp?4))=RcX$G;FIyE3d>yOsp=d zRIfT?QJYv9x8xzSA(z>q8hdQj=<>2UlFPl!<#JKE@v^4cq~_unKRc8nw!;k9ZrA0P zhjZNWngMyGF|95VtTA=ge(2_u8vq_rOWgKoEt+~zM4KGs*hQ07G8xW0GeVBo85bg( zB0NXafMstREQl@Z{s;YU6u(Q4p1INjQ&JZ!dphJjWL9-_7!teTyr(mi$yCZ@B29Es zu;H3_a!X!`?Im_$&ec~ng$tahnZUW#Cd$FYV0^%+sdRx7-V4LN&Q>0`Z8|KM)EKcW zg0p1Cog_v~Wiy-(G{X$BX}bhYEwqobkZ;!U3J5ECn*$pP=#}$OTi|XY&hP+$@A2R!>~qpI*cbxvipmM z$p~EXb;A9IX5QPf5N%wwv}w%1ms7n=q&meT}NM`uhC8P ziy#VZ!cJjKph8(#7Jl;tJX<`wJbOL!o;N*bJr_Nni`&KB;;=X&9v9cd%i>k>rudEc zlXy>(Bt=R{8>G$BkTfc((!69!wp5W`mEM&;lWs}BdIR1*?*Z?)cjc(}9q;?zk7Pkk z$gOg}yd#5BwYad4JLGH0TW%0_y@#1hxh)2fKq?gA2h^p{3Aj z=v?U2aCi88_+t3`@cr=Lk$9v(l8c;-ycM|@`763Hx+6Lgorumvm!j9BKPvsoY2`-j Y$=Ipb2XTMAB*$NGTxt9St~TL+0KuEt2LJ#7 diff --git a/WordPress/WordPressShareExtension/he.lproj/Localizable.strings b/WordPress/WordPressShareExtension/he.lproj/Localizable.strings index 098584ba6316640c541c34814c52a32f7e1ab3d2..28ca3514b9d9cbbb69bc58db31687d447724b036 100644 GIT binary patch delta 1427 zcmYLHTWl0n7~Z*@nZ3=N-R+H1%CLL79Xj3F?#xz7 zMPe`{N-)Cj6?`DUL`;l^5Fe-}1Who}7%A;aD-~@mX;~8lLZ~k${&`+c$a>t+vrJ{$-3T@WvBaIIoy9_;MJqAftM{4 zP0Loz#3p#iFM;)Z;nwzDG^T6n%Sl@|6ISE4WYXwwdof|rl&#k5iSFhQ)nd5O9`4do zdLpjURLV>>g{eWKc89VCRAw1`%=vqAVzZd29zG~LJ{E#0OTG%%$_`$N=DrxMPtv(gmQ5>aZvBW4TiU{_W)Ms(Yt z&9%DKqgz&6V=|`MH0QKKk@G5ZnlyI$!6GPQRH!CpVnh0%p<7*Wgp|YA>;NBWFfE9X zHE^CU-Ml|9qFVWkkw|}%wgizlZl?MpyXj#}THKgRLg%woVx~^rpm3B)t8F3LWA^2J zL|)LM-L2bWx~-yy9cj?w6uhJYIH5q<7t*6$YS2vBG=ZcQPJQw`Rfn?B=?0dwC579a zn!}Bu`n~no9~NI#RRuruD^|5^i^WtMd&COoLOIXkbcK-STH2|l4IBRE7M=d7Tx`l4 zgV*_G>b`u+JXeRJ%x$YlG?@D*J|ivO)<~*f)#93-fCIiZk3#N|47o#Q;Iz09?)tYv zt9QxL7#ShA$T%74#zTfokSUUNsbrdrk$W&8RlpuksgIH&1dWjyG6Gk8tqXLd`VCPd zc^t{WI-#bJk}SE2s0_)*5O4<%Gw`&3-LuBLGOkSJL`Gdz&UXk|e{ooGFg`zuqSz=I zH$p1^30G4xF+ub z+k4sX+?`ybrm`Bo@m0g1bfCsSjWJZoknvoMdw9#@?awG8GvsC*gNNuXjti3|<;z``dkYE2#8bh~E6~pj-pcyVHON#WI z)NO+9app+Rn95r8Rtvji1r`UMtI#o?<7X)M7&n~U@toaB+{#sFDy!zwNa#a>P9XqK z`F(KQUj+4D3EI);aep~yDrM-o@{GSgjG~WQWE##(HF6x!xtjBA@P=3oE0t4>4%gfZ zkGWkZU6))xxc+e6cRglYjGHN9mN9iqh%uO6rjI$ve8OC22AP}8KkQO=1-q8rz}B&C z>;QX?y}(}QwsAYSZtev49(R_zz+L3Nz6ZWpzu=erwbDlEB`GX*N~UyOnvfm` lb_PxaJ_=k6%*p}z8M#jGk-w0?lJCp^DwWC=7yP)O>_5Pl-je_T delta 1530 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 cM|(s2Nc&#3rNSNA$>{{i<|@ASA;GI5$Y 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 GxBD*zESr@8 literal 3414 zcmds3TWl0n7(Tl@JG(orGJpjvR1TMN(XuU|D9Ei>LEBQgx0V*x)19+Br+aqJIG2_s z@L+t<#Kc5jBr*EngT|;aF+NC4c=3T3iHRn@dU+r*##kXSJ{kWryW5shASM`zZL>4e zIp;s$|NYh4j(z%-P7CGKk&@4 zf|UZn7CJ1 z9<{u@zBXf#DNeB`uy1og47?lL!u2MOTP}4xJjkqax`!0Xsm$nLCe1uf^E%E1OQ~FJ zIHc$WTRLz%H*k@0>gIKQ#Gitk&EO3d)&Y6c!Y+A42ke%s^LpDdAQs{-4n|5;2IDA& z2%13*S*V0CvXMY8^6<9oD6NPYI@wFC0_DsqC6md#?u>9sT#7mIElA!oDb5MU7;&iU zVq)7Jn2Qo-mSkc6MY13&m{ZV@dbHmyW z$IDWAq~s=Xn%EM!L*aBdxBZS}Hb~EO+cvM}^;Pvc$-`t(fUna-)L;akustR$IP~ne z@EuGF1>svBHUxFCCA=CDHgzO2Shz?*m0&+W@=WFi^Z-cUJOxDIZll61XaJbS)E{jx%5YI?(Nt!ztZg`xtj6B*keKtRw@Bk;d7qtx@AfH=wg zsX-`dL$Rv^ku3CpOk`Z{#KWWl9kZg=rSq~H>xIxI;Z)OU&_sHep7qi)L~fLVPK1@$ zTW{&U`Ly%;I;pon-wt-6E>&z&M}p4lHzBFZGp}!4hEkbCLteKwD1k<$cpI2UkQ(5Z z>c2_+^95^Lgmr;~M(kW4EfSwY`8VGd#iHD9e_lPCbh>KOY>IMPfS8$_DTM8IU{_Qq z2pIZe7Mv2#Izrx>U|5YZCoyzJAmRDG?*O-`PEiaBoelcB#FP9}A19}L2Vnk69T#en{nl03Wt|1SW0yosd@N({ zMZnoOnEZ2_w@?PYj@Zz|GKlQaMJdXr{1v*KEb;zQy@BUYQvNP+-MTMM4wE8G3u=`Z zhq1hL1mp&|D3^W5MEx}f0qO)mn4@SIu)xkCBOfh69#^d|wQTdo>{bt)U=?q0mT(h3wFU(Dkqu?g}3c4}_<~Z-g&~KMsEp*%#@F z3`Vk%^O5%>pF}>7T#bAa`62R~qA0r3qHI+GmD4tSPUR2&uE-7Ctzely` zuINxS6FnDwJNj<)12v?!s2kM1>X16Ey6SoLCG|b^lKQQBBc{eS#`eUH#6F9C6}uis z@o0Q!{A9cse>o9Ov?q=xiiy_~ZzeuUTuNL?e3$q|i)$-2taWPr+Nfq|T)UvXqP?bl nsQsk<+0@#!w<+5+)AUx;<>ocbohbMThiX@Ju70gwntT2RovAN5 diff --git a/WordPress/WordPressShareExtension/it.lproj/Localizable.strings b/WordPress/WordPressShareExtension/it.lproj/Localizable.strings index 8386b75e29f74281437d228454ff3d60e3991546..b7af2d935ba1966fd11af2cdb4ee954d6a62ec89 100644 GIT binary patch delta 1385 zcmYk6TWl0%6vub&!^|{YO79o?bpeY=Xd1MrX$Ymzv|38po$a=?W&Jw)b^F=bnd!{z zN{fId2BRdz=6DP6Kmx|wlflHK7#=j?!GsWRBp4oyKKLL}P@*RK;5WOA@pZp*{^$Jv z=Qn$ERED6S;?Xph zJu*4Sg!8VyY>ttm%xP1)?1Vh~u_AvKiYjJ9Sj)sWM2+eVv zC!k4NK#=R=Gf8SKph4FOiNi#T;`_iN~W%|nq=P`BQkd^>qbVFWGBoBHkj1P(m5iOaB5^CWiWlm^dQDn2@PmYp& zo}!?bjW;ugIa;CtYa%E|Y`eS64Vj9-iKH+rX*<`?j=6>Mds!eG?}Xb%rCQ0B?Cv;~A*nHP#+N*jSoRwSQ zYk4btU~F19$-J`rTNvb;M=t-aKE}!E5vN2k+%kILPrYlbzABEa|7~uX)N`k*AW(cb zRkSP;1hnL4q5~jRl^x!fsoK=o$C*{IXchk z{u7vBj8L}rs|IRnOwo`c>QuD~j1xDyeY@NYFR4AyXe800@_q2zFYdAap75EtOB@u3#iW=KSHv^oIq`Gx zmiUwSv-pS9EOkkJ(rzgwoh(VmrL)qz(wbZ+x6A#qC7+UCm(R-|${))&*MtMuQs$5fkP;1qv)I;iFbwNF$zNubSe^l?RYtlxwq;^ufpnal!s$J8*)b8pN ux~1Ft3;N6YJNi}q8$&X>jXnb#j`6l}$+&LZH~x`pI%*!TnSw`a6aNC2;>-a6 delta 1466 zcmZ8hU2GIZ9KZdzy}jK#dWf`0d+pE`C=d%ZLWl@jN->1ekGs9=9sRgWcc<5B_hy#e zy^|IS!6%g$U=k%J8e=qKA~8Z@v?Ro6#0SzCm0;w_7oRjyFcOVEIJ;My=CiaXFUsp<{ zhO1LH_GZE=K*>|=iqs;c84%L{xrJpE-kuj8do-Ux6Ze-tTZNg@jjk>vIcb@4@q~>k=<4s)X^X!*o2HEwy&8Oau#?g29+Qz z*PG(Ig>8Hrf;n}xe5m8n8stQeQ43G=LI7PKn;bc7QQC!FVdKA)wR;NOYaV+Oj`xs&+Jt z4ZDc{Etqh6rPTINj(AdMKdU<$3Cr4`7*K``BjjFw6I?o7O>z5i^2m@6L*OR#KYpOcuBl0UKMXhd!&QX zfRvX`OYce_NFPhf(l^o%(l4?sr{wi=r@T|{mxp91&z_a3?921=Ir$Cw6ZtFoepHJ- z9z7P#MHiy4N8gIRrwGb=rA2u{F%(m=6;F9hxu$%r{2ALA8;KQTe(YZCq1vGyP@hv@ zP_L^u)F0K~v@UJ8wqG03PH1mySG6VWj&@JGuW!`5^qqQMNBWEUEBgETNBWZ9_Jw|1 jzoY-2XiV%)n2DDYR}#yK?~_WhC%Gs2?3yO_WJCKu>!9Iv diff --git a/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings index 027b4e815b62d4a8cc9419d78f46b880e3d96abd..250ced82e15e959caeef14475bbf16621694cac2 100644 GIT binary patch delta 1449 zcmYk4eQXnD9LMjj_kKkR0%Kug$IB)N%-=LZvKbHyWaubc*S%TTa@Rg>&))7z?^?FO zm?TDpB{2E~OaKjUi4Z|XAkhE`LC7Q~#zbRK6B5)IUuF=L5E3BzT+54ja(`Uz_xrwl zo*S(gtr%ImtGTjDkHt|UnKIr;o4uBu+0ghx)^T(BjeY$Cn>G(_!7@`N*p92(Rz1GO z&cJo-l$Y19L2*M<*JfP9ww$)*nT**VU2Qoi>#9wLmF@^5ElxJpx2CkLVI@_R&Dz=a zR%D`>+Y^|FRk{-I_bI_HZ(0p$y{IQp)@EtCiB#8Ca~abn0(EMJI7cE{(uuTcc``FO zWUE?UGtA@ETMGV(O9V-l{*KnL@ zTPCi#sF<`TFtOzF&=bXX-JFW6Xca%lRSC^G-87sO9^mHSbIc|-(ri08!p*}6*z%XU zOD3vQ>KKXiXHaL52q*1qemViWYJ%RJlsgLmPAq;$4T0Mcl!)-M~0v7*?V_c`)70LFiT2eDCd{CM{WWo<{A3lY`+H28H=zs*QfGyCa z)|eqBaTnI;y9bs*A@oZ~fwVV5)hFOb_#6(yq3w&Jd-V|`H!lHyz&~&j3bAD^2yH(B zLnF__Rv1Pt8B6AVj2Eeo`D1{GiX^adghC*Wsddk)6&4WS*c6PL`1ljS3D1;!Kab-$bHuZJ{r z!SLgFiQ8xtpOdTcabkLhpO3F84V>O$?jFXS{ss7+xKY$S13OTTMP+_LmKqFbB`1yE z8MqFG78Ks6)})H93Qz1~Mc1ncK7uhgLs;C`)3cxtU*MPEsDKwd_7A_hC$1N>7i(C9 zzwH@|mH69%DO4TA@o{Oo|NpS@4S)Hh6w$l{7vVIiJ4T+%B>3DSwbzvL2?-DQ&hs$j z0V1X|y)Sjh;|PVF55fm}OANi9PcE3M^$sF8`7IoSakzq;hVs04<3@rhA5F5rcO~`P}iv&)NPugMS2=tNjK7A+N3wod3u;W zLZ7D3(qGeenF?k$^DMKNX=I|zCT1UVm>Kge_pS1!eQ*1A`}X<{`;PiPW0$Z&wvi39 z9qa(RgWbnoV!vm9Wyje&+;nahx0qYXwQ_lGklV|B$PJz4C-W8jO1_)l$iKyJw*ep3GRFZBogdH**5e*ZljcuM^b DxNi1I delta 1432 zcmZ9JYitx{6oz-MJ3BMf)!LSZZaPS*gHcWhFGai&MU4=x6!ZsDBB_u@ta*P(M%?p zoHOS=@B5sEvW2qQ4uUz<;R$sqAr*!rQEfP;j~HfrPal$Jp{Uek z8WuFHpu42UkQE(DmMNv;x+$yD7AbBft$`PeBurRRn`XrPyW~);yT{koWEvKX(Z7yxlbC%@5luR_!DVKj>wu3Xi+sw>cjyLWh#+}sGjP(@4vrM zRV7P~B!liJyrv|N%9@@dlhiDj^xGp3oweA`hVt&EWZo_wyRT$>kK?#F)Id*Ml`WX3 z*okXHK4_&9hK<{%{Bqj>MxF-{bQgBZqfk;4a@cxEGhiP;^2#F^`(ydj+&>gl`7 zV>hBzmMhGL8oHpO>;M@RoCoiN%U}haVyn>8VhL*EiqND`mizAIs_V7bdJqFYg1g`h z$ad*-8Ap9YnHz5a*^a9N{oY!sQt`cbSk=Hh_!%!*1S{TJN1gqkHT)bhoV{yd*Pe(A z90$LGyW!V{4o1`USTO)H=%VvkbbzZs4MGW{%xbABbWT{eCJcT8m%w}A*mUi{8|Zg# zZ$TI*xdl#wti36Qmc(KK<~$e^zZ_mhW$Y$wzrn58_8?BQ0J1apeD9zdr^ln%KSpy7 zvX49(`9x?*DBk=~J$xH3gz}BN{Fsd>JUtJlX3l{rZ!H>RJ?JJ|ifXu$DhNKpSUY$(v4nB58vfQ;#0i(;-#$P`_hyFoXI!B@wxVUE!Erc|kWh43BF{s68G z+8%e*qy56RQvE^Qu7N%f2F+j+1f)u|%vWPu3vUE9zSS1pEe2mL{r z9aD~?x5Oa2!Iw_KN5LJOBjY&YIPLhtalvuPamBGpP=tqgp6DbrB2G*YH%XoZ|Ab%U tukkDVD*q?{x4;O`2`>q%@VanXxGJs{H;6*N_=-3!&WP97IFY+R`WJEY?>GPe diff --git a/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings index df693f2093deb9de055d14e162cae6212d813f13..5288afb318e8f3341047e977bcf581b2deeb2a84 100644 GIT binary patch delta 1380 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 delta 1468 zcmZvcPi)&%9LMeWPh8s_>AzK7o9%TisAH_7AngEbQ`>dWk+ogpv zFJajqDsG@%D38M~OacipKoctC07D=FVmrVD>;MQ3umj@81_#u`gm|{wO-S4j|uXPVC1f|iNM)n%!(&q_&J6?*AjeJlN2+_}2eOK&UN;_TvZ6{lnU@*z}$b(>BIL+q$uH;iTt z&83lziiBQ~vbzh3w!?@N%R#8H36^RuO3p~C5`Z12?Am4_v7KI0y6N6{eEVV=k?;W6 z$f=@v1KUfmisl$S1lja69nckJ4}D4PqwgsFZTAS;WCX@L+cRmKspLl+OJ0*8FCgSi z^(Lk9Cp+_pLTLOF!uI^6<+vX5=uhzzjE@0kqHp*i1~DVV81w4YLZU0$3u0ddZf#@* zyyXI9Py^c5<+hd%{?Yv53Sx^19ap#+&g0g(1_wCISzLufoWuH`Wh2%-71}2sq&MXU zSF)Qou(nc69uRB;pWtfM^;k1Kla7Vh&arJ(5PP(l2rJV>-a-@)m|>v*MQCxl7Bb{T z){HcpDUOsP**~*4|U>hruhR1x3 zKg<6WQ)3Uu4#W<}DzR5$=VO;*9}D}0F(D<)31@`2g!hCGh3mo%;aB07D2fTOOB@vU ziWB0r2*rx%ibQORFRX|c#E-;p#6Klf+9Ms6GSVsOHR%oMZJC$5O4P%g_a z%9rKueuvd^*gOQS_fOdZ2f`$xCQ(R D<67bh diff --git a/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings index 1f61b74d6c8df1b3e64fd5f02d4d8f70a773c247..3ebd6ca1393e2f779e05ef6f8a5d2e3224b988b4 100644 GIT binary patch delta 1495 zcmX|ATWl0%6rP!#%kIwBu7wr|ZTk0uqGF+HFcN~4?G0Gkx;uNL+g<+MIo+Mz=|9WN z?3RK^e2@o8Q1Zu^045}8)JLN+riPeU^}&RoJ{T_#`esZGDiXtsiT~^rUQf==-=XYIx22HxNr<~1Ebl7YgoidjWrtP%KTyCfbF8V zLF$z!I&EO>{Mz^F0E}4K_3pE?2 z#TJaB21C{~TyeA{Zn2)O84KYSHq3UXW4PeZIeuGDApvgFCf=+!l8#|g29w_5570?r zcvng@ToW?mhO=Zi&U~t&V;9;?i_uOWWdjrROMi9Kejd@?Qol0SESZK=rKhDK`l)b6 z)aERQYSK=6P29G>;DaE?*QjYL4ammW;)-RjXftq%DczE4D}no3b}>zhh6(g6-$e5X zSh89^5A6^x*K-rP;Ub3NYIC>(G%W3)0l6!hPZ;GYidn=3!j|sv?CZS0su_>-SyhL})0|S{^AFUYenF1iF1WvhX)Jxa~BoL(w|jCKZ$fa&yp|>V4|u4HmU(?fnCMeWZoBiHmvN6+z5~X*|cR= zfaqXF`zTf)dw7&XT!{nD;am=LgwyG($}d_W4fe8Ulienq(!g$33Ws3XlTZSiCC5$s z2VvJsdLP3Ku3}~=LuVy6ZyU8b`v-$mt)}kLM&aSmsAr*ziB4~*+e6tnW|v?S^apj< zo`tjpm3E%k$FaBUKI8+ThW9XSLs)Ar>5XG->-1{4pVs7LWc~qL=6*q)7|uU9Mw`v% z2kv8S%7uQM@9qi9d?JiR}vd@~ZrWd`}USA>|2WT&XB8D(96O%5CMY@?TI5J{3F?w1TU_FN1%CPK0Wq%b|}# zYoVK=@57tIcT`?g)E>1@-J`}-N4==NsjjKts=urMM7kmnIT?(699fI})DfdcA42~F DnDXq9 delta 1554 zcmZ8gOKclO81_EAUhlf;k~B@zJUVS!3Tm4sLgG!dD(2qAGGLZXb2Dg+3D5O6>UPSC0xKm{RG6_7xP3%zit%KLygaA0b7Y?9Sj58a=nF<*hP*95(ciR zqp(yZnIk9soRe=uu29V=ePIlaIR}9xB|1kSGO*ueu z_r!+5vSFh1h;5qwls}&1A4xX-N6WDndXT{^af?R1KkT5%;c(A{Rri4BU&AiYDSwJ#wStK2+=xeZSY@qsDVHB+)r*>14rVRT#$aP_R_o*#ClcfY3Wx*hXYWSVj}Z3O6Vx$HlYn}G&sz>n^-c#v4)l$1~TNl=Tt zVu#oh>;zk7Uu4g-@39xTd%00A!DYB7xwpCZxsSLj+_&5{?suN&6~2?-&mZOE{45Xo zDsS-~-`L=v=3nDK=CAU9hNbY4@N_sGJ{x{D{6_d)fe|`|Ug4;a6bgbaRE0~zcaiqU zeUX{S>BxHIInfYb7rzp(iPxjMqmxlJYDOE;U!(s@ZBm~!CoM`<=^5#H=@sds^riH* x^t1GvEXh0M2j#dtBWL7-{HA7%Q7=~wmXLp^brunNy+Dt=QQHW9yQb4G!aQ;YXY8!iP$8i!f@s6F1H@lnt zad1!-ap4jv0*#7jdrT#ekbsI?1qVpg0~ZA1!UfR-^nlbBQ6U5z7{@N62t>tcG^20c z@BQBA+m3C=UQeEoCgGI&d}O-w^b2QZ&L)zn7t7`?Msceu+ zb=h30S);4Z*p9pA`N4Da12`Z!en9WYy>wGk>24D9z;tXs8+To+Q9Nz? z#0$`jY1i^;f(_)@3z=o?nRXQs&vU$7hFGK=&`x!@qgjO#c$Ji*eKeu<4d^GyqfKl4bhK^pNL#GifIvgjtfySO;(+H z%ZomS%eBI!VFsw#M^E7@VXgZiyRgWfrJURyoll$PWi;;C0kN6*5gJtoI$MIJXjd~O zdYC`ZJ=u&klTFXe&9JFh&?6%w^mB3W=xp3DP{0ypVYbI>VrZtuO7at=f#0`)5h(V|Cst?mI zL_|+2J@-(m2FL=Rr7-dDFgJk$w!jte8Tc050(UvUDO@jikelYxoW-qib#9Bh%zemR z<-X*8;rsbP{xN=(pXQ7FEBqyXhrcewg(;yXye6C%E($xsJHn^p)8e=|EvCi1xFK$f zm&9H1Yw@P|gZQ&_KsqdqN~ffZRF}?47p1qQ+EsbK+%J#GMR`r$l(*yy@-_Jz`8)Yn z*aZjSF&KwcxCP&YJMew@3H%D)Rl1c!N?iF!xuN{7M${hlxO!Q=qJFGiQ*WxjX^QrQ dHl^v>qPDJG(B9K_wePjtk&Z|#GED6b^al&=ny>%> literal 3214 zcmds3O^g#&9Dmc9PCH$Z0bIa^mB%+oDT@jMvdDg+$g*48X-nCK^0xEZ&hB*HF!N@Y z5;>R{6XVTj!a+TFA;cJsCyj}T(ZqNlCLTQKK}}4&7!@_%O#Hv;$1cm4QDO{DlW98h z{vW@ucFMIapZE2BqaT(cvJzEeaV^nx&ystW>dTg|xUYNVs@3=RtXbRpz&gBs!^TaU zw`|?E{lOi{ovB@YyB~V^kv)4K-M9b1V+Z>WJ$`s#aA)2m3vrPiCxg4G%GgQ-_!I zRXK-D*%Whz1J`E6#JjP}d_Hm1@u|o0sO8KUgQPr@&1FV&hQ)1K(s3?)l!}K*4yIt|T6hOD=YVK6e@e7S!fEkzN$y>>Co>fLfk$zJ1-M3LDJC3?iX3KvTNbBDQ54R54NR)Ua-eDV zLTp;#QnRFQ%!&#ED!0Zsg8|^(hOxEZscemSFg>Q8$GpO@<<~7AP+dR70^4-9LVH0K zCsjX%4dRNyJqq2S@8(;A*#`2h6(VfEhf(nTN~7!Q~op zfK~tyD4H+mrzV_3dFFcxm7o^~BI6{hCQy@+|4=ZUCuRqAjoM4NAbM6mNm>2v>voh5D}%e}}N% z1+&g$(5_t=rWF#{K>voDPO)IOoA+yNV;BvW=CjnMWvH1e)EIO9B=%XIf`GvnbC8sH z&STI9oeO)Yr${DEq~lP{{Gv6TpV}B--wxD`i4pT??O1A<=|X*`zCArcC>DNdi(ib@tITD$UycD?@c`NdPyjLESN9DZyjC@Ic zTYgWzB7Y%&EB~x0imr4ko0MJ3h%&AaWm;hhR~pK*%InJe%IC_}Xd=2ZdOVtoo{zp3 zeIt5VmDFx^t-4(uQpeRvwW6L?Usf-vAF1D|zsHuuR>n5QF2>%8eHr^cb~WA|?~iBV zXX0PSf6$g_`?Nu=pizx$FKDl5uWD~V5HHE@$58mbh84n<5*5Uiw#`%O3FF{nN{RnE}kCsqv0T$!6jvB&P0<2 zhMom$wqel%JL#6#Rw_8_0FOl%oTpowJzbvf8k%(>`Z8xJyJ)peG9N4UPXU#V?136EfHg{OWMk7s z&P2+qAw!>|W&FV>8cxDyT}PT#Qknx;R9^s^YT8EbiUsm(a(!%M;fmODiM-bI550MY z9F*J1B`HPDCsvZG)Jnb+J1)KxX=S>{!i_Wlg`*dJw=`-`fno3qs8FURK;%+#V@LCz znp;M`=-?}%njdkIrEG4{Tt*&BJIJZT(&q6ravWUolW4f5bS=;%UUK=SiIk?7gH1eQ zq_9WBNd6dzuGRs+0dg(TMNWv_Tj0>gC!5n7l%n9ZL z<|1>M`GNVDUCDN^>)Fk0A6sPS*)!}p_G>Q1?c=K48{FI6Y3>|%p1aC#;nRE{pWzGq z9RC)7hQG%D$lvDg@DGJ$!tr)tv#?Xh3U%R_a9a3CxGc7aE5!lP6^Zz{ct!k1ydmBZ zA4aN?*~sO{SCRWsA-X);8QmQ{8|#Q|jBSne#R{=%>}u?8>_L+n-yeTJek;Kw;)&&n zZBkB}lys>ky()bwU6XDkcO{P|N%Cy+KRGT#xmzAd$gj(9%Ad$r*j(cG}sw zd>4{ACXl`<9I{*51I8)G2u{5jC z&37AR6I*ZCj$5f7JO1**;)#=!<9cBh3}Dkmrkhu`rA#K! z>@6&z+S@g@WovpIm2nkK4nVVj4BaescXyL7`3kwt?r)w-&O)1>0c6|Qo;avGW!-Ve z-|P-PuRKF_+oc{*)D4vCvn*qQbOf5BQ^QEpAsDq>9h(mMnmYk<{vEXhS=C+uump88 zJE-X{7^4Z-*PbPDcK6Ce-G8P}(|`+0PF{Ip1Or%wx=};p=q_?pZ{(4)LC@K=?;be5 zT{>1*^1NF#E)A7SSsHYak8zBiO^+kDVw)as5A)GPjxzTFt zjKDI=D=~jJ^-UoyGeEUV*j`Xo>RTN_$6eKvm>5TNk=P_lfjF7xTbutUy}619!uIt~ zT1i&uBuiYocn}p~#UO+HPI7_kkW_WSLg^$jP{AeF1DV}G+fi-k-F+T>irD!C)$ z_(Y#&=u~)fKLu~Fc8ga!B6bip{BZYVUA*R#l2+;8fq;pt6g+*(d9|sVBW>dI>`OGE zN``|^KbhHdKHaD31zJD)nO7t7MX+b@R<9`lVo<qkO)$9H0?{I6Ue4BnV&tvJ`;iNg@1?_1Qks$0rAyK+>7MkD9Fc+CEsw~P^1NJ;PswZY8TqQb f?LqW~=;`RE(O+UxtR-f}Hex?27nK|2W+V6)xd!hL diff --git a/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings index 1523b48ad3c53dc908d6b52a755f1fae44ef78cc..75dc950b138ed48af2e30308802eff3efaa08b14 100644 GIT binary patch delta 1302 zcmaizTWB0r7{|}tXLcs-Hfb)^tUcMJc!@@fP!Vczvq_qmbhF)^?4_GzbFy=?JMQev zW@dKHwn!?93I#D9e6SS}8oay+;)7Ux5UYIdKOdIZ@4z}9T=2k;>a#xiww!f$OJod_ndC} z7S4{DUd{Bp!d%@zKHfG}4DUU>T>=|*%RvS2^X>2_@~ z9NwMux`sk|-EBcsMy7ouWiqA=%h_1nGE2xMadBYJe{lvJ$+SAiZ1WoqVC2VrbG3ne z?o{a|a&x54XMK12ukV-)?(YN3L&L6_nqhW};jgmm4Nco}#;j+$sG*zE=jKnT%uk z$Xy7aAr}T!WoHE>!8K3@Ca?k81$bLH2AyReyX`Hdd~Qm!Yn$dm3{tNyE+cmbW=}EP z6*J5dy-rjM@1_`#?X6Nx2e<&zca180^!WxjJD_EH*Mc>3|Bv+gqE1(fb~iAzou&h1 za1Oi;J^^2YE$|Bi7@6r|BFrR{Vk~BrX)@=SP39fu67xCpJKN7j*}K>y>?B)Y&#)KR zi|iFH#!YZl?rH8t?mTyqdxQIse}IqklYENL@~8Rd_zV1H{ww}F{yP7w&?gM63rB=w zLRx4Fj|=C8*M&=Br`Ru!iUo01d|BKSKNi0b|CA0&4@z-qT3V7?(zDWr^rm!G&d4RX zD!(9a%J0fw%D*W<8B|_TE{FI~Unm+H4vni1t4OV=P4!9jHT6C9in^uoTBioJQ7xy{ Yw5PO}wD&dTBkh{D)xmV+$5%8XruWsApKjwB^yq`OW;k=lA{o zK65U_F2r6P8y1I7o_c!tnbV1p(Xr&SskD*F=JJIz;}erp#j{gzx@4l6a>bgRv*(?o zuD9R^xVre<(y_kU^0|qWRjPmi*TKla6)f z0&<>fB~P(RV=)>{R;O(%r~uCmFmRnG$zipPFGgeJO{I}+$a=$nU%)aV{Zb3L!bY01 zDKzgcqKN_Ml#p#X<=)<2@+Ds-7bE>Glj#cdX$>IXcm3R;70g>fK>lRAsB-tVvPy2s zvXqH?o?RmyV)LHK5oB5rjCt5{oq&ABode_bQ?_gr48I0o8Cp(Z$h0s>(t%04^e~m| z*^%sHwbk6VrF`5p0fyzE7~MPS0=Nh*8&2B@1Qtet5%%v4Ius5%RW}2I`t-DITPd{S zQTNp2c*Zj!M)hEmv^JGOxavCqyIT>SNsPPDtmjdTHm2bs0;UgV@J_&ma3^3C&eKiY zceGxvdN%DsW`2NbmtDVR7<6u96fI#Rl*pwJH0gH8iWnnv{66xl)TB2POiJyXa1a)X+!hW2@}$N=|-j-&BikE^b;S${}q) z*jlI}40q?~PK0Q{^*Cvt7oKES;I16G(Y;KZDQ#s6X{r{p%#c;N@%RjrWPV`EwBRuC zF1RM+fDY%QGW6-72gw^s=bF+@J`=O6^uCA#cN!yq2Oo-TcmqJ6k(pPRb>?H{bLIx~HM7Co zVtF>k_OVIUVm)?+{hd>}N4b9PBsa^gaqHYQ?mGWCe}Yf&S^jzcUH(J<6MlpLj{ly& zDF{MTXcoGJBf^j{CO~0Ua0M)^)`S;?tHP(krtq7nijRmRVn$pRuZVAn?@6rGEVWCA zqyfp4=AUDKf{ZZ4j2egCQW7=uW*3N4$YirtN?QQLg7M;~w^(XX{Ue#aI-`Bs@|7b`w J6v^2=;2(2`*oFWA diff --git a/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings index 9b792f98b653399432fb4afb9dc7cde17a600414..8f02a0b23b25d3e79aec3c77b5c6c961060efe4f 100644 GIT binary patch delta 1505 zcmYL|TWl0n7{||<%g*d}FVhxEE7YFSQV5imON6KdSe8PG*si;?-L5S()7jJQX=i7q zb6MFUqA@Wspn;s|1Mpx1iTa?4A;Abf7>pWC#7OkP7vlqoAtoqlyu}31%r3HM7?4{A|j_digXO7jEk3W0jIU3`7B+K=X zWj;pl3ajZ>Va47fPvSDs(75dp%XABA+cxS`hfEhc9y(0S#bOR?WfpNHKd(8&tRU<- zmNSvZ2G+e9WdlX9n_l2sGNnL`#e!&a!rk-$*FRWLiD%&Ae&SY%>rNHy zvgYBi(-|ezsM4&7%V&RCNqZoo!(xw=^=A#@&eLVFk6z=B3u@MKsVZ)uZwOtxjy8%Q zx8YG$>o%Uuu*4P1sjFl77<0O+5IVv4y$mu>bHu>(1oY8V4p*&OqYrhTrZ1L8%EUvg zhNot=3Z^k}9pxi!%5;wC^C)AP9yVFhbpgKA{Zunbd%%YFa-Azi0?heB?(oxx89xSo zXlRIjC9EBoOqa{ZV;mX6rm5gs0#-~?+>hrp-|*w-oYCwPwO!h>e z3NR?Moi+#3zy=1}>X4^qWL;(fWZ20AnCl9jOl$*o{p}-;r8yXtG0W_D+5$T)fIJfz z?4yTL4JCNa;DjYU{GKXE8QN#2? zViV0LJ1H*>(MVh-G3pfyI$0)!67*RyZ3>|9}FP3HZR zRH>caRJ!czDEKFB_8k(;%bG|J+#J%wvB&9_)XokPX3|-#!ypd@Z%gTCl5O-ts)Ih9 z=-b}jFmxYENNe&?)i#Ju*vK}DPqOdHyDx4QS z7QPdH6n+x^5IePkBN)s$5gPXm9 Kb8Rkd{r>^K-@U~E delta 1436 zcmZ9KTWB0r9LCRFH?y6colTmQkZdzGN!8Zof+*Hv>o!d#nkMOHlkA$L>ty!q?nx#y z)48PGv}yEFg3$O^sGw2=Zx2;$z)LG4En50eE2XcBPbw&CR76qGGrMU~XJHOIGym`W zzVADiwqM$QdYBPbhm*$P8KZ!Ur81eFGv_VaIqG_TuyE{nW%0zxrBhRBVwAN$+w!sH z=hZD^mOf)*&9}9{F>Sq|^=gjo`I7^dhh1MAB-UJJzi!Npj-?03GQ>A=Ue(|fy9M?! zQbS%?!*D&%@faq-&MvM033+8$K{xr|%U^pZ}jTz`T1+6Xncy0RUT%+BSB4gPGZP|$q6QlrzgY5Je^ttx)w?^u1O1#)~lEU|6k0bJAr6Z*Nk;8k{;oXJ!i zJU)s|Z1`|N$hPFw#6j#E<6l!q176SaGv@y-_z0?N3MjBvU>})8a&ya<5cI)%h&l})O5O0aybr#U9)b2mC-l}e!9}$>noC)Mi5IEnT6;`l0M|X&M!EZ4TX$(F zm`3XQ`YipEO=HiY5E%ZbI||M5>GmQ@(S1xrkipPH(oikJ(C7d$Y%?&!<8@VRS^FVM zg?A{Oz|^MZ}*#eIy z-dmqu3R=gxZ`48>1ko4y~Xw=sfxeT}D^XHS`n1F-hhjW`rS(!z?jBvr)E( z-OC-;Ql z^FCi$=AYtU=0D)C^Xo!X*d-hi#)L)TCE*p}O_32B#a3~*Xo(=66<>>Rk)DVhc{lP! z7b|rQ* z_HFD>nNtGgl(MS4puDB*S&#R`OY!sZPt>jIG4)CHdSXXnPhzBAs&7Tri)Csn MTHaVUmimr=00UUOCIA2c diff --git a/WordPress/WordPressShareExtension/ru.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ru.lproj/Localizable.strings index 50041c15d20cba60859485c99b0e6e36e75552f6..8f2c8cd0914ba425bcca1df0ce2cb9f3e9b9f62f 100644 GIT binary patch delta 1387 zcmYLHTWl0n7@jlp&(2=DyR*A3E%r90mQv`2isjPQwo572P)f5q+Y4K|4&Br3(CN;y zGp&@1$OB%2qWG(cRE!BGYQlp`;sb`5XksjenCO!a65@**6QGL5C-qEs(VU!z^Plhk zzW@8qS#4Zxd}XR7swPIq#wQLYCl5`fp41Lcr|C>)RzEUl%x9D4VD4z%vKJPgI<|ED z#K}|Wt@zUL~}V~DfvX!qIp{x(zA18F{-6m z$D#PFme;cxh34~Sel$)EI&G)qO{kD+d`s~4PdI30SevIQxjd284jWXlO=Tfxn2exZ z$uVVB)iRbE*A^KjJZvi3qNW>bNK3b=g(GDBx~Uko7xG!B*J&B;*Rs>pz~4v@?&TkD zPN=$V(6K$bHLqJ%GLcJbHeH)EB?k*CMNOK%aIXw&iGpontu(T5*wC$6JTBJbr~C;} zM@$P$|54B8pY;sH#gjI^NHSGiH8C9j3>a)AGcc6Z*hQGxIc~8x&8G1tl4y z^X6h<4t2LSJvT9s)@_Ap*y@Ouq39JGP;iCi$(TMptMr>$n`RklgA-ry0aZ$lIN4ww zUr{>X#2in=h7Jy~{8;dEL>N+*==@5Qcrw4n5Fk%G;3m;`od|QgH+-pc@Ww3Pjo32VKw! zJ59No0Xl0aR6z&qc1k+bvDN|TgRSrw>}16uT=8$gdiNGQ7icV}AQW%5xNGUX-)>%!~75flQAb zcewk6BW|*eRFgpxBL+E27RfpCF1bpsk#EUgd=f?wfJu|lj9w~IYuTwD}Si5JE9#M9SY zVON#wjO#iO^wZ??_ delta 1494 zcmZ9JYiv_x9LCS(?P=HBIqld6*~-osvs|*V3X?HhcVi>OvdymDgs7}cTR23 zCI#j~{NRUu5co%eAz(BiUNS?NUlebN8etkjG=4OO=r=zI^AC$DNmWrzna)tz(B=7TMpqJYK+fuUWBizwr#V9osaiVHt;Ewq(Qqgl zQH>0ZNpiG!m713mIaucG(7~3K$0TWRembM(Q$-0`*V^C>zJ~RI%=#WVRg$!Ly3B6d zG90FJ`U0KkQM5SCs9LhAsR=&e=iwF`tehN5DLLGeX)dSdMvkcYIW?b$KiHjoOlm;g zT4z9>Q8P5!mCa@fP-m%dPadZURgnj>hN^3M_?$ZDmy{RxY=5w0K-b8*PG>-gB0Af=4kg`CLt}_9B_w9y((jP{^*QqL745%eADr>BgFDKQeJSgNkUqQwVkzPj>%(*IWRJK1sJW;KkF zdRXLYg(GxEna@BkzYDH&bT$0Sc5HR35VUl9rh94)};bK1tlEe5tj$fND?SfZ54e+CV zD?G54^SV?8ZpT*W#kJx($of&bA0B!R!Yj7jJCdXxwVH9fm2{JkO19(QlPKLznwci^ z_s%6(3wyDw9Rgw{91sQ|ZLNp3vTA5AE5M3fsZ>cVnrYpbD$3~67LYtu@Pp)mb)gYn zaQp^ex_z+ft%qOSd(qQ=bTMT51D9hPtVngRVDr0Xig7wntc!%8!nGS*o0Iwlc{MY<_{sAFGA{AsO*@uw_ zh(czGP7G2Y=g2kk9=S)>mn?Qmqvg0IYB_DWYI)7_roajnLX9vaoEL5i9|-q^@2xG? z8S7Q+PqunnzirZ%ExTTJ-`;DVwLfqF%Mo+r99JD*I6roN>-^ib#|5qx*P82BH|yTx z9&?{|FS}RWYocAO75l`fcv4J@&xtRI-$)KAB)u%%@raF{KF<};pI+YU_FnOR249uS F{{RQipA`TA diff --git a/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings index ac43f5df89a24d05a8bbca7da9155c6d828c79de..bda0d020b96af0dfd5c048175c868157387b96c2 100644 GIT binary patch delta 1455 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 diff --git a/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings index 87ff1ec4cae2479f072fa4258c1acb46581c3718..9a352f8ec0455a29b8f9523ac7abc519ac758b20 100644 GIT binary patch delta 1349 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 w9>}e7hy08@D4&2W`uv zmX}vLG8UONsp{Ekt!mmtS5s=$cD>ww%cYK|ju=*18z6;pIx{|!(G1U|c}0a2TnFsI z!M41jjMZjM!<}nRskXHf-sIyr0V+=X=aiIa^K=P!uFa0qioHM&4-%_DO~Wen_4UCO zz6O`^?se1YIpVNAl{${?Ozbt>is8C&3vc4{%4UY!Ev3|=VbV;0wQANO>1&s#4^Z78 z>S)z7Y|DkK+%YxR;%FL}(ww?VO2n|HhIGSI$C$xWOFfXlTTV{g(LdR*>#9deZeCe) z&{oL;G0bK%uHjKvYmD4gHq=ly(^9XxExBy$4pKvVmDy#ca+#`5JlaZejP1>gQ?KS& zjkp^r9~#NA$XfyAm9{ilpsMbWqIWmVsYU_nK~iC{M_bk0DT?ZogABW5J9SNCy0wG! zh^I9mCdMi2(Y9dGmw+|8 znoU!a7CgA@o7|pPV*999m}~fJhQbVHTOm}?Aw-ddO2}ZV%GOo(?XY(luKRbuyZ*JE z6qS*QsP-^*j3OF91m}^7Q|!iWWk38GOu_TgAnt^IB>^7?B>2l8JRQ3q9tqqVDWYLS z*s#v7JMfLtd+A%L1H&tU)3C?iEoO#Em3WW}GBSDCpUu=uHIu+fbPN0-ZU!a%9^8m* zj?QSb><~xQsYUCC1zmE2x0S815{Sct;$Gats0SOg$r74ke09cFVXTBDKjax@%Km-F zP-)qu&=E)l_2#XkI0chZFT@zq#bB?PNt1e!fE!3cE}G!uNP|?U9X=70U6rQm?gk`F z$z$-1q+CW~z}La#&dK3cpT^W(x{0)HIizf4he=(h-aMW`HI^$uI(t-PvrKEYvH@1Y z{jgpdfOvEd^Ry9Okajhkz@oSX9+GoxFUj0(gg@l?dL0?_D9h#@#@({nR0LmyN8wUv zS}q_B-9}CUrCEuqkcxc{XXVb56mLUSYgWf?Op-<6g=o=`{XfsQqIesye!{}J`jB}dR_@A2b5VQd?6;s+GFw9 K>KX*WHuWF+L#@;R diff --git a/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings index eda670f8e583bfc7b55c6393dfa87eb9cd9dccbd..e64357935e1f7dd34afd3e1d6d6723385f6f4d5f 100644 GIT binary patch delta 1408 zcmZ8fdu$VB0KfNZ8p>c#w(t$yC^Dyu3W-q=2V}(2t?hN)=pNqnzI8{hz0$iD+A^jw z_-c5JkH-SW%zzQ~4>W|Bf&VxYFa%;CVjxDHe;8s64hcccqIh3#GsawUe|-0Qe|NU} zZ1sW8v92Wz{VyqMRD(mYVSQWNNF>cv`;*(#mYvD&*qO^0c8ws3TFRT24b0>-=r?8w zYGoEb-@gTFx&k^=wr(b^(E3!$$VE0MEts}Jhn|dw15nW%Mt^WvN$bfNfa$cE?hZl& zM(sh57Xh*!y-k<3^0xcy0dYoO#cV$#Vw}w%kU5?IE1xD^NEhMvEG{Mw7JK&lC%k3!3 zxfJYabA)4NIw$+!PN!*AsMG|`cWHJy4e16%BV-0d0x)4_-5l}@N;KZPQPXYUc-V56 z5`#!$8xhTwd-?);bQrXmNgE~|(MCMqf_bSy&mz1HYM`nYZ^SbPLxGO19nOBv@GUJZ z=qqMfQ_p%$1GclHGvQn*d@Xn@2NK=@hm?$AqZztl?8ss&AgVv3Q^HEW zhN1GqxjWn7v~k@hbpiqqtpq4s#D3~9U)Zf;I|!$PGZ}CGW@_@^2p9pHwEbUqe_sLz zze&6iM?S97$=ixPgN19 ze1JKlS|ZTx!EJ7@+!`+jaKd-E0w@nj_6~EEL$W+BbWVqB9qv3i&Xpce2Bz< zr^V~wlx~R9IQvKZkZ8e=>G2>_szQH>;uBh8HZXw)En()Hf+qEy8^x14zE^yPWn3y_?5Uv5~M&@lJ#Ue z86XXEJDDYmI8LxUQchL9DMrkx2eVJ6S)V~#UlFgKZ7%rDG+wwi5VSF>x`Ae$X!N7!TR`|LTcoU7xuaDChk z?qzNdw~u?5`;a@$-Qa%Y?sKy|!I$y1{BqvQuj5nvUj86|l%L?w@L%#j2#g>KtA(5} zAxsKW!bRb-a8D#h$ IRPhk_2jINyx&QzG delta 1434 zcmZ9JYfKzf6vubok7C&tmbTDMFVIq&S|}f^uh^!gP#ftk`{30D)|s8l?!fNMc4rp4 zYynMU)NTyW+g85V7-M7AC~DHwR%3ibYmCIuD3KTiV;Un#L#@VYNQ!fJkf^!e&OPUU z{{P>(wDHo$F)zW4d&}VC-9AZ;#$nhA&@j0H z?IVPuu+!O`mgA}s%TEDadk9^mHWO|H2={+}r6|n*=7>$jt$vu$`(bCjq(xv{)uJ^u zHRxk1jjj@VOS%FvDP`3FOr`Wx+d>e=-@*pmN5w zw(AH~R0(*KrmAZO`i#tiki8=xpd*;d04XY|T1SJTnxNSVIG(FQZer(1+lv48{fYui zDQbkB>peP<`Xx1_ONgrQ@i9szw*c z@`7M6lZ34S7>5xPU1i!U!p?P#(2T@zzC08wV5P5}59$;M0Ti%cW?VFK_R2)Hy)*+R4L%`*77G zdO=6sbK6!1Mtp;_cwi#^yu4f*?TfTkd%q90<4#Z|XO_+>`C4Em@r?oP1Q ze-UjFT*xVSQ8oAITE%zF^ZMCMxkcG$oV|&XoSV{}>(ByMisl5~Eq9+uSKC4>=0KHl z^t3lHCQM||9=_hC;8i$RBzI?gD))^tQZhP@9_DJ>NkbgnniT97F_$VhY2WD_m+q;~< z2k*!^CLHfLK5%^ExaOF0+#)E#O*}$06DpA;hKSpwNbV;0l8t09d77Lc-yq+k_D~0? zCaRS>LA^pvQtwhz)OBi}TBK>(NxSH+bS>RLdufU8rFGh*GxU@6$a(q-{T2NyBQm>~ zBTNf3$h^S3#JtK9tc%^uR;n52*TW5QZ*rHp_qkc_ zE>H36`7*wnkMbHnz+dF2`5AtWU*LZeSfNlT7Tm(U!XcqqhzKzuA*6%>;gm2bd@lS{ cBC?`OJRnBJxQN6L#ZSdA)(~rok*fgw4W|M4I{*Lx diff --git a/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings index b4a3756aa74968154eb012c511a427c8b9e581f4..eafe3f6676d07c9e1676edbf71a041fcb5942216 100644 GIT binary patch delta 1353 zcmX|!yVGvV($<-s+wHK^neEQ( z(%p7#)F^K$-V`^56cTEX7!w|USuydENHiEDAtWS(p!@-eMidE{n1FM4!AvrlxjEl= z&hO03R?b#Vbsh{>*XS_=4aJAe?Fnndc9NrQFQi;Ao!K##&5cjw-@-CeBRH-H9s6bc z7q=8QaSLDX??8sB!Oo;-I=0)rA(^zY(Ji)%QXXtK?L;JmG{c|h4-ac8(~d)wN;#>X zFtSk08&n!Fq^t1}wydR(s9``GL4!&~x2@?Gf}R7@Nz3sUG{L0rtg2evRl{1w*OUhw zsAV+MDk@#mLoN=|Rf`8g$V;beGD}8!S~NR`EPRJvk2f>Vtm#%w&q9$+raNM~ZnQgT zXdWsi9aI*STpoEM#o z8yg$(Pu%kQ-VKHUJ-TosHbVv&ZfbW9grOIAj@E{6ryKHTa##L0MmuxYVZCwSQqMK=sE03)?83vs zCOj`JZT3eC?fUf9>D|WAU37}`tHc&wAAE7&Iou(y#4}RG5`!2L2E8y4*{g>@VIUSL3sB?d z@lH^S?}O2&jqJaNicGP99H0uck-v3dZ82>AOo7G^q&k=&JsS7JmkC=}Jo-7+NG@Yv zFnWQ!`gRrgcR|6YrKROX_5)HEDv2CL@e^0zqd;0?pi{lGq_3ieFcBYEuNRa(&lS%| z_|nJ1onRHOlWaIG)s-ON@oYb(f}S zkzPz!(`|H!w&+nhL+_>M=(F@ZeUbi$S;j19Rx`~^8xv*5nZwL+<~w!+yO~X}@3YhF z411jYg#CtliEH87xDXfNa@+^pVeVV*3U`zHjl0KJ^0j<3zn%|I@)kpbC!Q30dJCVOp3Iz7&2HZi@sM~_oD)xqr^KJ7jnW%ZNQz2tO7BTWq>rTw(oN}}TqQ4;o8)G>Rkmfxl?(E5 Md0xJcAC$rW0J?_GrvLx| delta 1464 zcmZvaYiJZ#9L49oGox+Braoe_c++SS5%Vb2f}o-?qLR!$lTF+t+nJrayOW*FY<6d3 zHpv=FKd6bt#7o*mFchh1X{FIpsHv1bpnj;*R#Yk!u~e~zf^8^TuxRJ*YM`aew|npZ z{D0@1nO!xzYRW^h(;j!!r$#jxizoE{q%mMxsljx{&JOJ#&W((Y69Y9-o6 z3gr<=@@7>-&m@Xdz%nsE=w;_W0^@nWYR4p>95r$sTN(9q3zLqh}l zlFp)ea_frTKtf47X8@+tRywp(&kX394El>)OGl)2j_#VJ%^;>5uw#2FW#mvbyZrgy zcBttJ@T6?rGBfCFY7~S^JBkLngXtVl;)-r|w`#f#ypF-?$y($lH;jj#@^@|5G+-<7 zOhkG?wtzCE=teP_jBdkB5RWX9wPLcq5WJ5rir!%~V~=d8~U z?QGh_apRQtwS}F?O94cr@_;e~ftFTc_F|gdxBwt415WH^rD~oQ1+}ggM>}q%bHSj) z9hBj)9mEnLKXiJuOq6HcC`nhY_>c6nDjqN|O`oeo-AoP2Q){@LFs5V;)JoT*Q&jcR zU@(`0odIaTsEy{?E?-1iwhP+P1ol@9#WC1f3PC&K4PW-f!x#DotBvcj=>3QQL^AFdvHwF%YTJ$|X zh$Pp}^_riP-$#uT@2WFD&Kw@VTaF4o*k3WGHBqy-riSIa(^n>9O%ysM)VbB}P`17( zjqys-+P-7QuT2dXSS0Z+l^R}z&1t?jCt@;@tk&|s9Bsr;Q5Cly&2SsW)uA!ZZVk?L z&Ehq1usU!*Tc1Baa70N#a9@aXuw~* z$AwcVI=}d2brB`_+(@(DyYQ@sre{T{ey-5xq(7!bwnp)WM4 zP7Mccpm}l2coH|DJq+ByZt)LNf>yC*f+r@40&$-BjQEPUL|h?$Cu!16ZXvy-PNv8_ zxj>0j6SbAvMfFq1r~-AC`jp;8@1Wc0PI`Ie%Uoc-W&U7Ab|c%)cCaJt3HBuW9!GM^xhifQx0!3<_HrI>m^;Xw z;lAL0;O=q1aSvSy*SPBg*T=4T*LBz5JjqLZ1>eI%-sJc5@9^L7-|;v3JN&QwfV!?gHo-51gdQO(B!q00a9lViTo&#NkHs2sx7aS);tBDjcv`$8K0=R|fPVmf C==xv) diff --git a/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings index ecee5c70b652407abd4c1cd7a52fb771be23b0d5..df91d52eaea141f103b84c7b79d0a82ce82c8f1a 100644 GIT binary patch delta 82 zcmbQlIEhg|sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( kYI*TQJ8kiFHdi(iHgz_4Hhmze#UUuJps8=?J+V*`0Qb2Tq5uE@ delta 62 zcmbQlIEhg_sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?(kJHdi(iHgz_4HhmzeHBn!i QgF{eUR!!f|cVeL;0MeBWivR!s diff --git a/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings index 5bf7775aa98440e8a1c0dde18edeb45ba15e6670..eed61e6f57bb0227d43528cad63f6dd94dc4d3fc 100644 GIT binary patch delta 71 zcmZ3-xQonj~UD*^ySnh?MM diff --git a/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings index c91af66bf25830631974d8c0c9451705852490c1..b7b06ab059ee534f1c15c6695c2311076be7a2d1 100644 GIT binary patch literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UL5L? zpO%&x5t&<_np0j`6ycYjl9`y2SQ_e{pHrUBAt1&%^`;0KxYUP5=M^ diff --git a/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings index ca56c4c5d895b71c89757bb6644e3d7ae440f99f..3eb30fb3133a482a76dc119d366a8265f011e2ce 100644 GIT binary patch delta 76 zcmeBX>}J$YD#*z!E-^5;!pOwT!pg?Z5$cnfomw0bmRX!xl3!FD;hdkFo0?Zr92%CH fT3$TSTw5^Qu{5oyG%b}wP+UP%-_1X2VzvSRlLHtN delta 56 zcmeBX>}C{CD#*z!E-^5;!pOwT!pg?Z5gL}6T3$R+P=X`eu{5oyG%a LzPVrc#B2osu*MGV diff --git a/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings index 79bd5d69f0f5e143e345428de5d549d171916892..8dfa67aabec187a605ec74877e4c14be3ff81776 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= delta 38 rcmWFu5lPC0IEG#bwndnkWDO!)6H( diff --git a/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings index 79bd5d69f0f5e143e345428de5d549d171916892..8dfa67aabec187a605ec74877e4c14be3ff81776 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= delta 38 rcmWFu5lPC0IEG#bwndnkWDO!)6H( diff --git a/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings index 79bd5d69f0f5e143e345428de5d549d171916892..8dfa67aabec187a605ec74877e4c14be3ff81776 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= delta 38 rcmWFu5lPC0IEG#bwndnkWDO!)6H( diff --git a/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings index 3a4f67e7c034f26a56e41c0d8f2a4a465878ee03..1bc4d5e9572b4dba1c9654a248e3a068cf9ba748 100644 GIT binary patch delta 75 zcmZo*Y+%$&D#*z!E-^5;!pOwT!pg?Z5$cnfomw0bmRX!xl3!FD;hdkFo0?Zr92%CH bT0YTCQ7{}Vl~~LnD6XKXZ{h4eF+l+UZ~+%% delta 55 zcmZo*Y+w{mD#*z!E-^5;!pOwT!pg?Z5gL}6T3$R+P=Y-?EVDSXBypmiA}5ESxU8DK Kxr6t_1O)(@_YO$_ diff --git a/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings index 318f301ebac61ff0d2d0fab6ba3322f73ed883e7..3ab7ff98dbee00dd85b019350684393441b4dfe3 100644 GIT binary patch delta 72 zcmZoAYpt!7>zKNsv H#6$%EW{wRA diff --git a/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings index f0f831aab5c151a9ba7184221e7da506f27f57e0..025e1c7939768753dfdd684215cd7e2e93f5bc24 100644 GIT binary patch delta 71 zcmbQnIE_(1sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( aYI*TQ7tM+KqMRIp;tHDjcHR*a%M<_?e-+sP delta 69 zcmbQnIE_&}sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?%_;*2}CXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|sU zU!0X%l39|Pla(3ioez>qEXs@sC`wJwNlnS*5ENI?)VFbC00Txw2+hC&rD2pm0M>*a AMF0Q* delta 54 zcmXRf7f&k4$t*50Fu20V#LU9V#Ks;PmYG^!JW)`BGa{fUH9aRaC3B*_I0uKIxU8DK Jh3mv{1pubY4we7_ diff --git a/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings index f6c920172ff6c1623b3dbdddfb3362546c9bd6cd..6ad18e82fa83cc8034ddb0e7bd4cd6efa47ea2f9 100644 GIT binary patch delta 69 zcmZ3$xPVbVsURn_xWvHV3L_IU3nMEVd#F!lc4~1%SY~l%Nq$jrgmZpwZfaghacEd( YYI*TQFTIKS((D|9;tHDjP7~`D0r6}VU;qFB delta 48 zcmZ3$xPVbSsURn_xWvHV3L_IU3o8>FduUi@YI*TQL5Yd6(i8Rd*f|8nW!3b(Ce|wg E06?1zasU7T diff --git a/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings index 9a8a1018207f7681433bebcf51cc3d5fbe9a1572..2fbd4aa7b6ac9976ed18c06349eba53e09e05882 100644 GIT binary patch delta 78 zcmZo;Y-7|1o#(_f1pw5x52FA8 diff --git a/WordPress/WordPressTodayWidget/is.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/is.lproj/Localizable.strings index 30e125eac6a400e6e77a23ccaa7d63814d9d0593..5f38153784bb46f626e4a894dc1657d0da93a3f5 100644 GIT binary patch delta 79 zcmeBT>|)eUD#*z!E-^5;!pOwT!pg?Z5$cnfomw0bmRX!xl3!FD;hdkFo0?Zr92%CH iT3$TSN?jz%Ehn|4Br`8Pv4}%ZTtQRc$un$XmI46eOBqQ3 delta 59 zcmeBT>|zv8D#*z!E-^5;!pOwT!pg?Z5gL}6T3$R+P=Y(kEhn|4Br`8Pv1p>cIwyyq OxU8DKm2b$zECm4Rdk`)F diff --git a/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings index 304d544c8a6e53274d51953432eb60d5208dc0c2..b49a5f5248846956645a9a2772feb34bc6d6a2a9 100644 GIT binary patch literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|3F zjRH$10;Mxy(wXrB{6Nvt#GK5ks>G_y{JcyKL2(65eG_{R1~6b`gwPC}P#Q)>0RZU9 BB8C6} delta 95 zcmZo>Y-SWsD#*z!E-^5;!pOwT!pg?Z5gL}6T3$R+P(mnPfIlp=xHK^*v#KhwDlXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYu;; z0))BAU0R|34Xh~!n++Zsd^R|d+>udfm0G|dD6XKXZ)WSp00xYV5SoD#O2a5$0CD9V A9{>OV delta 53 zcmXRb6HhA0$t*50Fu20V#LU9V#?BEMmYG^!JW)`BJ-H*J(kiuJqP{pMhoHEun!cH> I%fv7R0F`DADF6Tf diff --git a/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings index 3da2a2bea6123af13dcf469c3c8a3d612122afe0..1a88de85e3d48c3aa7e674d9040a9d2af08d9836 100644 GIT binary patch delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BGylbM}b91)gToLQ1zR2<=)pPQSSS5h1rmYG^! ooP47DsLQb_$$K<+TO6N|v{`r^L*m{K9D?Esn)+t8P80nU0Qq_!1poj5 delta 64 zcmV-G0KflkZWm&3Y-w|JFfh~s0s{mE1_uaLR%vB-bCD4kA7Q=lW5|oeM8=e3yeYdl W$B<&P6RrRV5f>dMFETkmkxn4Ob`|je diff --git a/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings index 497fe31632a12e3f196dbd3f280e2644843a4462..8b932f477d088cbd88b045e110adc3a000c3bf82 100644 GIT binary patch delta 78 zcmZo=Y-Q9>D#*z!E-^5;!pOwT!pg?Z5$cnfomw0bmRX!xl3!FD;hdkFo0?Zr92%CH gT3$TSQdu|>D3_O+m!4Y0At1eZa(21pw5e532wG diff --git a/WordPress/WordPressTodayWidget/nl.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/nl.lproj/Localizable.strings index 04ad5a3fe20330fb841dcc1b327f13bc4804cc8d..216ce1971f55d6a597c2faccb58e3bfaaba86776 100644 GIT binary patch literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|^i znU|uQnXQ|XTAE!P>6BWPpPHQtR2Gz)m|T*XS{xaknp%{eSeBZ{AtED=vC$jK}&F)+Bo$i&RT%EZPV8kU(_UOZ7y!Zk8HHMJ-`u`D$&(kZnnKQ%kG js5l}hH8Hs)GqspQP+V3`-_n@@3>X<9Gy?~ehEYBMYP1zj diff --git a/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings index eaef483198e4aedcbd5c60af795c06fee1cdfe88..b9c5473886ed0a2f8fdf478fbaf2e679390c74a3 100644 GIT binary patch literal 96 zcmYc)$jK}&F)+Bo$i&RT$i&JL>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UL56} d58@>jRi$zWiYsX9Gk^gjBZOvPgVHd{3IIWo6-EF6 delta 49 zcmYdD5Kk(|$t*50Fu20V#LNQ3tf66^5oE(DU3Yz+6ju8`U6aWDX6>$In delta 74 zcmbQkIEPU@sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?$i`hA@UqhGK?NhD3%OAgc;U bKWF&LkjgMoPm7a7P+V3`-zzX?VvPa-$lwx< diff --git a/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings index f00c909d843d357c3c90c92c27288733e9c7f4bf..27741762e07eaeccc8f5666dbc2458024ce8d4d6 100644 GIT binary patch delta 71 zcmbQjIE7I^sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( aYI*TQH`R&y;+!0U;tHDjcAg;sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?(6}hA@UqhAM_qhD3%O5Q~wS Yp@<=KqP{98hoHEun!a0T!o(5<0C-^#v;Y7A diff --git a/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings index d4984d37a5a8a9c3c9a0035688f4eb2aab9662a7..c5a9761f4b68f274bbd32b620bef4765d741a2d1 100644 GIT binary patch delta 87 zcmZ3+xQtOhsURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( oYI*TQCu^BZ7I_v27CRP478@Yx1Y~=22#PCc>e~fpO>9#D0DB%7BLDyZ delta 67 zcmZ3+xQtOesURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?&hZ7I_v27CRP478@Yx1Y~

< zrBoeVlD2Q0V7ax4>0)OxNNzC2&z9u|j^0c4&@6mLo>AEAvJmSW*nhoBrCm~UD${El zIz!Il<3CZlySjtE9RFkQbdX9tw9LY&u(=U7%W^P5lC6Z3m}MPn7JFL$UlVqyTD2pV z9wZJTMY;r=lX;+k`@jPwV9<-vrx!sSyaATMm*6J2%L!b9>*S7cDp%x6+y(9$ca!^( z`zKNrsg3N99F7b{oXCA%mci&wHHJ z&cyD-9>m4C9M|J3@xK#O2|KZvxRkh(xL(zt>`sm+)ufSpGx=WfQu2l*N;OiG)FnM9 z%}FKctaMrWTDnzzPi~fn<*a;FUXg#3AEX*meJ}+ZVLR-BhoA+^@B+LD*oR)LY5Wfm Cy!@O1 diff --git a/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings index 02d767ebd89bdce3cfc19f98bf93db0338c3676d..be16a4bb25d260b51e3d6d0ce1d3ca0e1f8456fc 100644 GIT binary patch delta 1541 zcmaKsOKclO9LC4qhj-UDbqP|FQiqAsq!Fc2xga$NA?MLjNZeqrUrii$;vL&d*1MbC zv77Kva)MUvp~+AR7o<`NBpw$KLINUsDN=jjfYCnob#g;Qv{s2#wiaz%e;#;BT>J?prn zRv$P$H~;M8&*esSa|Xsy73Y%`ruiFW7WWrV^ut$nK+<6dOLSPO!_2awD2f;5eI&=0dY=g-E1jydl5z zau1FBdw2i)fsF{6@3OGZvz?ht=*0>gvP^!;CQ`PB2!>ueg-E+s z4Tkep&4DhloOxKmj+c3(GwgMydP&m>T(#;rrRv1Mg-FkGASyk?5|wlV(=~tl{gX|n zW|R3btmz1zu!(M&?$WJpDKo6QRo!*zPaHg)PGSQW$wX7LF- z-k#KPmXY<^E2d($ZOktV-CQBk$L#5f7^F4de!4Dp%Gn_ntIQ(McK&qxrZqAV7D-i^ zHho^+3%9JURbftL@lhG+CLQBC4yo$AjVF$qE_O&`zH~DlLnLlNR7bkeSZ-r^v@aYD zXA&4`Y#C}C&k_1juq(OI;tu5HW3Y%E2bYn<2HY0DYy$yyDxJ0rf*jhZbWk;X-+w_n zvJ+^Gpcu5K31-`EF_!ljLk>g^(aYBVadt#HyCY{^n>b@EH@jiFwkK><5d9`_fNElF z3rU${HRNc>VO@DJIVGTiH9$ZO7{J;Fs_-VL=%2xZ4U~?TP0L|rFqG(o+?538Q- zv6@oZO=NRv7@Ahy^4Ov`LS3DVSMOdT_CwkMsD*42muot^%0L3=z(sHcd7^P$V3cS6@fH$!*A RTzG%@P?#GG7wD;b;NN7Z1S0?d delta 1553 zcmaKsTWs4@7{~4S7CX-Bw)C=I)-#oMMMY&B+N6#3A??akXuB?Pl4iYx)A%GYb#2!^ z$ySEcJ|T^Zw(bmg~7YPZ8qDhE{Y2pE)i3grws^GZEN(N7&NEz>V%wJuuMLb4Hs?W=ZZYD^^K zV{?_Ez^^p9#P+t&#St!fHoy*W9Uo68T?1kS#!P$R65B-vd8uJ0Zsv+$*s(FPu|5QI z3*?1RFX>~?5sz!G*AuXersHVQDOc*qdum&!K7r0+U8i=lnpPFIH32yGQS!d9o4m!g z9nOpxCI*vq@aZuJ8kID%TK$s<=Zb+%-^9qL3F-Q>i_*tY9+oV;cD-rO)G(D?oS0{xZ)b?M`#zi9e?DuFDN!{j!9=JCcrEHFHn$H1i-2Wn`C2?xM3G%Yx9 zp~}omkN}u~i->$4>TaJMM}`T(Nf(=r?I&ZdYb~cLp6UCJASdz@yRH0`Wbcc5avI@ zWu=>Zptkl-B~YPcQdBb|_e|G@OtY;8@UhtdK&mH@Q*dTufNJ+p0eTc7S{DP(JVxF& zhUB8Sdu_e3D^sPY^Ut}7c+WGg1<~~9{*gzZR{VwR-VzBI}Bz@jK$Et_sOqj z$b?szmzc}Ur_2rJ7R$3Tdw@N~X4yry#JXiDWBhrv$NEf6l(pS<=>9254 z_+a=*_`3XroRFvG=jGSrH{`4GHF-n+P2N-@${yvA@|2=0rgC0ci@Y3pJMwYlX5_Bg js}87#)r{(?U#q{We@4}4Q?xHS5{)xkPlzSOU9EoutTOZ% diff --git a/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings index 4ebab97adf0afbecc4034411d0a4930571bf243f..fc8634d17f840f3d3001fb87a52b133c31878b0e 100644 GIT binary patch delta 1664 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 delta 1464 zcmZXUTWl0n9L8sM&g^|UGrN>h3f)1v6eyO~S}CQsZMldnZP`mNv~(SI&u)iKcb460 zp<+`T5+zgjF=cqcp)JnQ9^lOM|fvmL~0Jv6*$B=MrUH<_a8ZJAMR-!t_ISPbhXBxxbw zyg)Is&F~3d4yW0r&kb%#X{OSPX?BOvrAQ+o$y=$J9JT5eG?NyPP%Ji;qy3v{TAk3% zDmjFF#8NWKMoOK%mkfL`Vlv468x7}pAgz9`jc(uAAjK!e|EprrC@+EjAL z*h+&A-G-u0s+z9u)oJmWgBBL0TOFtHwQXg^o}DzMsY*}I)QoH)9?IqPslFlz++SwF zgCE)bGeg_61)4YKp$^9KQ;M2VwQNEXi*%HU1zLT@<9U+JLYkOGqd!8`6lP0EOaI3= zsHf%$7veF^)bTBOqLb?};s-(iYTZ%4Mk+}sX(5fImDDk{)&+`p17}F9;f}WnmWoT{ zQL+Lx9i$F5O=K&ngEzfNm=$}V-X3Iic<5e&`XH=#x0lp23fYXxjbxJ{HNY`%6au2( zuQ72Z!i1TpaqC&MY9t}J>ZyS)2Zf4~AUyO0;ayLIhmz%}*kGw();$d$Iqtz<-c9lf z(nhvCiqJ{Ia6?#*K?&UTRzXe_%PCoeQ=8Dak&5rSQAF24gPA zn9Z=rRRh!Za=7iRR+8i?tktfQ0BOVYT}Y!1jkckk)wdhw?CZr0v3BY)LKFJd!6LZ^ zz7ncFyCH61;jkQn9lkZC`^XX;?m?3fUOUhPBS5_;39Uj6>?-lQGGrz8$DA-yG7cfv zc_{Y{$PUa0}j`@$c@>w>h43bBnn;u90izc5-R%74CKJ9qwc9 zQ|=4y689ZqsGzV_`va})9+m8oO1r+yyvQP9d?~@U2@ypg8PVP+H=lx$@7Od;9cu& z^rpSXy_dcB1xeT_bO?jO5#gk8LAWmbCRT{U;%nmj;=j^bsZ|O~XQiLyarvlxR=y_R T@>Tk3e4V~on{N)T_?7Gc#Q& z3Y+-BC?dKXN%%sHZXm{Jq9J~f82BItjUh&(Q6nf~OwgbPqA@-a@3akOqfMGKb06n_ ze*bf3rf;V2`9eb8n%XwFJ)Ozs@`a({kecxk`?;qY`SQRZr zs&r>&f;fg%)&?BMc8W@Dl~%J|Ppj8Vo9I*@*}?+b@9*y~DxHJ%G1G7-{PQ(Zrfjj$ zUdnDDlufD_oiCXutqm`OFyZVPEG*-S3I zrKqS6P;a~`;u;=xnac2hZg|=tD-3Q^lCVw~iWe27Eqzm9`h{Ld1^U!~H&~4tQ$8Zh zhf92LYDd}_pU^himPaiw>!;hbkyzu@)ZCT}qq&++JgWKj6qPRD8>%(zx}&+C?KHFr z>iEz%O{2bPS)VnZrd4~A=CX!o(xTG)KY%)DI1WDtZke~ErP{J}=T@p4MB7&L4BK+2 zFE0)iHW_Z!a9y~{X)E&?YSM9Uw3WYE+0c4j*E~{occrOUcP!sVziHV)#tYryZkfIK z+`09&n%OuaEar;JQjl=>^q*m<;~uyJFANWDWTa(A1zr53=~=C1*BNCt%Or|QBG(>; zc8_jnv1Is=vzpwtdN|8$B4uJ&u$4;|ve`zBjy`O;)bX0N=UeD(mQuDxCW&D-2cg;M zqB8eCTD_*;RC5byN^}O5P0_s`Y>y=&6j}uR>Jqph&4cA~V#NrWL=-vfzXw^!z*I*W zR72lkx(5w5*L8NnMkYI9p{ww*x|*4_^wd;@!*~I#5B5VfB*9f_1-vOOV1xEKXwq_g zYkNn9hBya0Bb8aBH+#b1mvB-pVToy6W*RoC!0(|YV1<{#3GwbE`@BYUgPO!Ls5U;) z7;BVJj-9pPbSxRnr-)uNT(~b-h9{zn;joy1=VHC^m6%aVXoL~eG4Z)L#YQ<> zSV7H8>I69yictMA&_b%IF5mVjyzrM_I*?lUFs1vJk;COWd&8cR8*0 z!hw(s&+=VLY|yUMU2UITBbE9dkHThY8E|S6I%D_4VfEfAv(*%K`x+A7Dxq1;K{(Nfp-Gm1g-_H zbC{F4rQBWIT5bdP5Le@#;*N4N+takyi1WqOVqV-Y9ur>|&x-GhmxA%&J)w1>M(CB$xzMHX z@$mUbcjRE?c;sy4i^%s;IeKTb8l8$BioO^sQC-vRzwHdu^l>t{{Y67%q;)_ delta 1489 zcmZvce~1)i7{}jtXJ&VHcjk6xk2~+Y)0@=0>nczE=6jbXg}J)pibjF^o=Vg^e>9T1Po$A_}n(7nmnKw+DO3;H|D#h$(6=k8pT7YI- z>)~yo6<))O*NzY9hNlg&ZYFjzl{$^AqCQ2vT+z4d8Xk2Sp;W3`rlZ?vo>WZlg-cCK z$F{QG3$|0uD)9w*Ki)Uy1HH;=vC(aYJ7c(RCP_`2^WYYL0RB>%m&6mcMrMg&k|~qc zD~$UPv;>)<@Nr;y+nzzH8${bx_6*x{)0@j>vzn>fX8*VQsNe^@|JdYq%cYK2LpYvt zsv0Q}!^$eLIt#6`z$Q~4#y?50`T8VMzW31)N_2M0DvSR^v(waTJl%B4@JzN7js6TY z-646e`ytR7G=v;vARQ4*k%kT-i~W*O2~}<7G1w%ohcDE{uv%IKYoqJHl#=lRN+ORX z-DII9L~LaZ3+shv8@l1oXbhTS!*OP0LN};MEQ4yfVs)wteZfbX4K#sf5oNg)O|xtR zQ(Nh(6}h9tIa}#lP}>M>^T&!9KYM$;;t$rLTqJ21JmF3A&qSl^+^|SHdfyTkVE^aRa;|E`cM#HmHiL znx<)nI1wD1)kKioIYk zFH~bHZvGc`t-LTiD5#sDJ=p5+3=Bx!?Ri$&W-_dOObxV)wctL04EN9lp>ya%bOqhSJPzYEco=8#46fi8@nw7ke}n%BL;}r${=oJ? zBH#q>asn6Onz_|nAGe+xD|HR+p ze;1IjT<90h39kxo2_Ffc3Ev9e3AcjBP%s#553UQI3C;z-53LGq49$gp6-BW}>=#do zzlA%(17RzCKKx509EnGcM2|;bkG>cES`wv3Nt1R+p7gGCRk|&=$SdV7a#}tiUz2ah zcN*@;;<4e_bnJBOV(in{b>(qoo64!}YOk7Bi)uwZqt2^eA+!{+D}enwyN=c$5AN~M E-#kCMN&o-= diff --git a/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings index 1412c2e1fea071c7919f85393c5d6c6de4492d92..7558275cc3bd436e2a47b6fc5a99a6c96da16ac1 100644 GIT binary patch delta 1467 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 delta 1382 zcmZXSe`p(J7{}ksdw0ntx#TYGTDMMnbzN)SsD@F6ZWCtLx!SI4lS|sH>*CwooAk`( zF5X?EWysV&{9{A5^_jn>h$0H=7-NcVs3;Q#{$L=eh~giz4Sy?IL5709Ns12q>+XHu z@AG}X&*yzE^j_#aqPL9PIXbp$eD}m;Dy?U-Q`5OUGe=9^()2dN(0o$zfCSdddxwZ! zpq6Qu`uqDq#vM4XXz(#^hr_%S(kDoX=9TqO2&>^aZp|&ZVZ-#b36^Hh7;|aT$Sdj&>KEqg z?Rut9Jw`~^7prt?J1vq0%Rl<=s_UkQSoV_RF6NcQihW&QZ>$dV0@mVF+fA=xdR{h7 zEn4v5B7g6umU;)8;gX`SRT<-Y8s;$WXrx9=i_BTHd1tPUMH?p-3U3G2bPh+!@#pdeSQnchRSA9m_Y7 z&2S|;E9hy{AaH9m4^PKQ+st-q*^Hi7q*ks0vp`(}o8yE_!eDd~Zj7s~Ivc9NeN8jX zXcoY?Vg_)m4?c)=!lu|L9E$Wsr*+e^=17@1$`ITZ?}gK00$YQB!(-85F_W$mX8n%b z!Cen~!yPc8_N}6599=>l@)5}m`(~N?EH3;k4Z!X0sE{hPuMJF=7~`(aOQl zO-hHvfjTh)0q);KOR2|*QP!(e1`1ADo~%M*)5vWaij=8=v}R&6nL1yvE5(up?bxIP?? z-SO%dp;oTFj7FGA5jm*Dth9#IMrAmqu7=HGGMH^r1U1svo=um{LYWjBw|h)nMVB3= zhq2iRwS*STrWWR0vkY&D$pa{a4xwY{EINry&3FJ0;$66iAHWCkqxdC!62Fc=#Gl~rc!^i}Yxqa_=lL`I zIsP)g%wG|Zuuj+_921@uUKZXG-V;6(z7#Hs2aqU=YsF#lgm^|=4o(C!!PB8tp{~$| z(816zq2DDeWu*tDXQUs(t>J6KFGgO7{22Ky8i}T&v(ZxYc=SzKlzZi*e3xv<6?sX1 zO8zL;726mai1);2 DKKHec diff --git a/WordPress/WordPressShareExtension/th.lproj/Localizable.strings b/WordPress/WordPressShareExtension/th.lproj/Localizable.strings index 9132288e95c0c284d0c2dfb83afcd91ba0340a9c..151d88668c5e1916ae461b551b4dd1c1fb088b38 100644 GIT binary patch literal 3316 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 R{8vN_{=)xbH@#9<{{lxv0(AfY diff --git a/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings index f871860aaa0518fd51aef31cb6c07690a445a847..dcc0c87b79ccee618033564dc4db191fe4030495 100644 GIT binary patch delta 1549 zcmZuwTWl0n7(O$zGrQB-%M6u5p|q#=B2_7^M2rwZ+5$>%)ZN)_%cbLC=X876*_m}_ zwz?Y9_#nZ6iRD1ln2=aZOwl)k@e-pxNQ?#~A^1R2M0p^Rh>?H~YK&)gHy9$BOeXXH zbH4BYzVDyK&c)8x_4>h~;n>LNuCZs5DLtJTpP1a;Kc8!#n;a%~9*&{{-j|v|F0pfP zyX!ixp(c7^(eZp(Dq0RQvAKJgJy^fHyW3Egjg|IW#G47eFQOb~#qnB6??>7E_%=L^ zN|tY^^(i!qq3NP&zl!JBn+&zBQthxP7+fCxbF*YP^6Q8R$RJAt3U84Ep9dwlM)c$L*Ss|O?nAjB1&h1T- z>%_OPp?2IyoJk>9Pk-YZR`0E{R_)z4f=zPqqw%$VI4vmRVu*#*-MC zEJb}3zu*@@KR{dyumA!!@VQ<90RbK;0OF_#FviN|ph-UoKR`LHb#(zug1n=}%#o8~_6U*vkJ zAL*j4au;2YHn(SnP}#)(G#FyE7BJaJ?sP@20W9{Cchq)zRcfQnu_kJV6|RB3t)a4# zpf5=e(Oro)x+D!ohENgtj@nxLv?ZJcDW?58ZBaUwvHyI#Px6@Us7oNuTbTY6X_eC{ zRGvnTx}KhlG|`;gUzbUjb0v$F*3sYND}$2YsGSURAfTpK!aHd>yg{BAs;(0Ga4^=$ z(eI;OvB|pxjtc3I;Vps*2u1O}#FUQnE^?uXZCqw+@{RJyx-8IHJnsEs#nsd>*8_^c z4?Lj@@m@B@gS1!bn`5X4xG7L#IU!)O8?t2cpfsLxY!~GTh=3#D1ULoGfG@!%umpYv zH#op`a_?}TabIv3xh3uoew0W2A^tS~Ie(S^mA@r$LQGgIY!o&N{le2iQ8+A|5Kaka zh4aEq;ZBGP)rA^E&7p0f!O&bG^k(SO(B;rIaY8JJu6R^j5I+#V7QYpL5SPSTQbJlG zHAzoM6H-|^E`23kkS<9#!X4qmku4EF@>=9{qUfRM`_bFcKVw^CJ7W3R!Pv>zyKyldjg$DtFu^4@Cbp^>^=0*ldR|Lt V&Du_FOv`Jt+I!l~WdfD!;lIx$-Jt*g delta 1432 zcmZXSTWs4@7{`xe$Bt_!v3uJkg}RpnHn!4ej7i(7X=``wWnJT>?Jf;x@k#2%wS(<+ zgdr6nG0>(lwr^-4B(%X(Q3VfN1QJNoHcg;uXo%Yb>;X*(?E!?g7Z3<>l62K19xUq| zf8YQ6|9}4G6Z45z^`_l>28SZUBYQ{pjivN-W_)6D|CvI!II-0*G#?i{z=3%9U_Z8V z#4_zdPfrho*%+HuH29ib2B$eOq>thP$trOuaqaLSm*_r}n#L|I)`;sm?$T*{^)xox!o{*ZIrs%KSWjPG_s1igZR1W zYFy9siAM?PdZk3h2S^^5E&t4=mWL<$srQ28R3NwH zu}IE`+uYH0P1OXN;o`inl_=w?8>%qkXm}Qz7Cvl|`pn5H7HtI25coXM6+1Lc3=?a6 zOTOvYUV3Y(WK}YC5cGRn6&~DTo}N3f+xCd-*Pu@7ZbicdY}#2RTBoCx7ineczvn?V zi*EEPjqx#p4eBkcto$F}xMkD`duiSDExIKSWQr{zrX#oeW|7be*VIVSB5*_83pqIs zC#6lCqjVv-6mEm-@@g@KD|zfF-SwN5;ZArzA^{s+2OIc~#sZo|7*&`gnn4z#bzSg^ z(pN1BB<^b@Y8{)TM}%G!r&R{1kyaQGcEDV?9iEaN6CPi>pMVxA#_2nW3o9CII3au# zXszoU;iE!k5LXQ1!;UaDs`NLGrySeGMRRf~4ZI~LK~q;jUuXlI3OxiBKDIuqw5I5) z(6Cy8_@--GX2o&oCghNg{z2{$l%XM9bMUi9!?M9683W_g$VlfgDue&4BS+XU^UHEqb0%FWlr5Y` zgLD!FLh-pEN3yUGx=UMP(J7r2UF>QGu}Q_WVS?|F2-Ay7$gg(5iw(&R4T09c=D_a2NWcyJ#s=92ww3K=*RvbhVK&b`&z@jk zW9QlT*pJ!k?6>S4PUKW>Id_VChx>%P%>BaM+NA;M zCF!*EhV+GWPhKtWln=|tThU{Aai?+#lW(!I8Hk-$Z_o4oBT+C3-x1TalF? Yl)EaUcB*UDDYc+Jr(RKSg4m?}2i^Fy(EtDd diff --git a/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings index a92d00f88c0e32f6b6ec91572c31051fee114791..182f5e6a18902d188a85a3d40e4ec6162891305c 100644 GIT binary patch delta 1498 zcmZvaTWl0n9LDE+z!aL(=uLCrjz%sF$u z@B4lKnW>(so>0p7KGspP&)eDM^9Ph*cYCO(cjx2)$PJGiIojJ{qy~XkO~SrFT(yi; z4D7Zn(~8LJT0q*g9gs;UOjU>a{tkC>&zqZ@BXU_+MoSoW9DkoyW6<3U6}Oa~YIHEP z3l6B6gcFg=1L`3NbW0s@3VLR0dql2xcTpWxgBBScS=7<(Rl$_1B_MFjq9G{Q2ZH{N zh+NtZooL?7HXLZXZoRv8!vS4xKvd5Tl}BW`Xn)IO@>B!zQjMjz58RxuJ?>;HWXX-w&OPmBJO`!6{uXFRG*(xnOHLoyeYK>* zL2JpoCRat2AvdE3$W3BTn~NB8aZok$xc`p1x*{%~qPW@-xhh!v4~m0na@PR^)7>%Q zV#mFT+m9MkjTG8P*W?r>n}*>%DH~c&K6H11+5M5cCQuKlMj}7`{B$F7?SH%)5_;av z4*8*~yHixW@UWwwx)FUvDarn(`-Z%)P1TGo8+|KYsS^-@Xd%GJNARiPrPyE;y(yG# z49xb^)0t;Aq8UFLe$`HV*}bSe_tn_T=!Ucbwel@!k#B1`2$vFb|CTWZqan|+w*vFS zSJLMT8hWns#3Z&rk4WukNT{GqxeP6HRcHrSf-dnJD-MP{-XFYca=zg!|JdKGMYH0z znrQg4?}_kvJusgGE%zr)ut4hnNMWm@M#xJS#bKBH@KetO!JOHrvo}^x--ldkP>(mNO(j~Nqeu#dU-bp`7r|IML6n&chkp7hZmHvYv8HuT3HZi-H zy-bpsX5MDLX1-^8*d%MQPqQzvXW0+fkJ$obej%(nWxmK==i*j);$ywYu zcY!DQN`4D}Ki|q9=EwOr_*wp{P%hL8^+J=dTi7df3W|^wCWPmOGs3JeFRY4$D2ip` w1`&upv0FSQo)te6uZllQJyJ|cNaNBO>6~;ydSALM%}U>_p~*GtQN>#DH;Ekx)Bpeg delta 1427 zcmZXSeQXnD9LIaT_k*!+WA6kW0-YO!g=sK^fCdMI;nuC~ZQUqabJu&;oxAo*?>g-Y zo5>K2&9awgll`Nas8N9!6P>yQjLZZ~e9O$Xhzdf;Bt!`Yjf9YF-qTKkG55#i$@6=@ z&-e4Wn=G0v8WMAB4?J79s@~Pm==ONUreu?CHI?$6mar4S4_oG41ILmyFP8{52{Qp_3#Fc#Be4_ABf z%GVf|HPz@u2HcEk_kbb8tED# z)}dV#n|sKk20KBG9x-9W6rYiTUFf*I43!f}6eA1vi(aW4`aLkLcW2H89ED9$O_vm? zfa-MWX6xOdYEX2+7feyKa03p4Wf&?7t0S-Kd#L6kh%x>r$6&}g+eSZAeVYy=!R z`=A-@#JGlPLc=m7iis%n?SUOqTr-D1&tKb8V|5Sdu|&X;yBv?_F&Gy5EeW!HdsHK= z8b-4hYA|S`8`SepE=HQ&ZB0jV4hwHR~^Vgemu-VkP{*GttQ=d(i;Yxiuij_jRj zCv}Gd4Y7rMwGFs7!4s~(Q9ob7D>x9(A;4D_;i#n&WpK9nDm>A1P3iaxelWTieB0Wr zt_b?ScE9AGlJRZ?Ueo406N5)_yQP(>dxOd7lxt!5o7CJ^JNk^Nadx%c#bs>3W?h)P z)L+~4G>()TuJ~J&#DiCrbgm|>uabLj_TH9p&~v_W*Me(B&*kV8Zj9%bO48W)6kdWd zM6mg^(pNAzjCL_aMg5<6=ka{TiF_pKOUbYQka`O>GOG)YBt4ZGYs+b%42wF$73V#) zAiIsR+wu@E-$K9fVKg9=u7>cM_fEVV$EI6~S&2W;uk4mQ<={wzcZeTP$nB%?av4*g zW_}BLoZVNh1iyDf%oI%B!y458@~7FcYc#{=BVt7!`dM)HS=8g>;S6=3yXUfH%mV$_ z)l!L#v!!gKwkg|1+jW8>c%qtc69FPj#EFx{G;xubBOcfVdx3qYz1Hrs$LzOBniR+a zax1xw+(Fip9psDTE94mY9{E1`G5HlaOWvY*Du*hf2BvzA{J hSYf4*BRnP43&(^3VN`fWI4fKbW`+C0BFbM0{sCO7_ap!S diff --git a/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings index 2b5f75de9cb57b6727269a72b2c10c8376706bc9..f138e3bbe78d67e0f3a67c9a6d616622e379c5cb 100644 GIT binary patch delta 1548 zcmZuvYitxn9N)ctZ>il5cQZm-wU$GLkmy>9Pr_jWeg64!Af6%j>QlyIGB`fxo~Jq_jm9=KY8tKbk}(oj96LP*hESTAzaAbU;c3KO zR{$mLQ54clCxIeL{r{MQ7|<2?vS)csUy-#KZ+|<2rVct%j%iz&=?isYc(a*Fnwbp# zkpb(vf+&HaPHz#vpsc$ILg47J%s>D+*|bF>B;{#-*Dqe~Y2ZUmsZ?U@5Ld@U6dztf z-!gqw!dZG1-axOAx?5a}G1m^RVs`{?=+*^s?P;2e9Z@Pni*I4Em^<8c&?N3|Xn8T? z9?i{1kLjj`+Zk_8)5cP$cdL~_X{R8%tLWK%OsWm^QQb@w+Ap*lQL6vLRiA(bwoEvH zbm+FIsc5GIr|KsBTIu+D7~s`c@Y=o4oBa!_?0=mC)Orf+nnO>HpO3|(_(gHaT6Ycm zB6saSou{8RK!Y*5yQ4L#$|{wojl8mVO{`CNbnE!0&O3X%(dlc|xJg)p&j>B_Fjj*8Tq8PY8rT)WG0;a+1i0gTJEV#85o!ix&)aJUsds+M@0&QW->38t--^)KKnd~H{<7&NJYSPJ{p@70oGVzBeT z-a(a$uPh)Gswg7l2g3Vc^z%+cbQ;7T8d({vahv-qHBiI0m@;xpp=;+%L%ydwT3G13yLT-qpY rlAv@@Iw5^5eI_@_emS&E9+ju%Bl1h~Yw}6?v^*zYlK;eimw!wowM7qyEEI} z+0qu8B{AVrE-f68)sRM`{y>qCf<_D)g@pb<4VuzuL;}GkVl?0-Q9=UF*=-1knI9+T zocH^__kGSxESy+4u9UUB{EBB@tK8=G`2$L@J=D>;`CzPu@7SR0lC8$lNOjc~Z)sM| z2#gzMtf8R+6;q3-uqdH#DK{FUd7yaJ7z~TGC`m6tXXv_`?m(}aa>No$rL5G$-6p&X zc{5tvNcW-~U4txod08On_w*F{OX))0A+l~!k008ZlquPkl(f=zS1_roHk3Su*>{Ls zf}W?j(k*@?(knGvrVUM7c|nczp`ETeR8MY0DXQWnC7=$#E$utMak>;}gvF8< zp&jYPanptk(+(j;8A`&?Mi^Byar@vG3m)%icD%=|)KFL~ookQvI2Z={4JFMFZ8Xve zBb{y!z&MQ9=q9~&bs0_|=_xg8OG$?@cH?xAElC|vjkv1CVPR$`#v;jT0;11cOBZ#w zLfufMwxn%XW;(bbnT!v$7eF}oi!nU(6WO2bYBAF=W#^%GDybn!jj4ti7Uvh}NSQfW z?SbWmpqcG^dVv$p6Zx*wQ{?TvfQ#F z*cS=a2WAqxr8-m%+>|AjAq!NXEH5(J$YhRmRBqG*L^R1)7VCai{s65SeODXU-i8kF zHIBX<-C@hoNl?z~xKCb@WmlH!W7F-|;I858dh~C2YJBO47nShKpVaqxyT0WXtdFVPO#0$1nzm7@9C}%edylndcI9is9q6~ zi)3Qkl!mKfc*?-`-MwwCS@S_v3`fEh_}Gbcn_UprM}8Swh4=YOJdS9%zjI`^Q80K{J6FmaZ+NZcT4k|&!;9~mYS zWQIISo+mGoSIB!V!Byc}=W21uu9WL{ilGFmf@-AJP;04HDoX93MyVszaq1-XF?ETW zrf$(ZT|zIU_tWptpU~&&S^6*fE<-TcrOZ0!F!L7kK68$_z|1f|GB;U*W!c4SE$d-J ztjQi_kFgintL!ZMD_6`t$8F$DZY#HgJI+mVXSr$M1`S{}SO>a+4h%2|c7bEyJ#YqG z0++!R@H4mt{^cLzpWv7AIsP>NIX}hU;qUVI1xlzFo-G$_VMN#|ydg{o9|@ldQ^Ie; JALxFO^dC{6@D%_6 diff --git a/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings index 5efbdd7afec88307d10783c80188f0a20c77baa2..5c8b0f23d782e17fb9869caa787d98b4d3b3fb58 100644 GIT binary patch literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UYyRR z#b(Lo!sf;1#HP-sl?EhS*o@dbfV5#cn<`LF2guX_$)&TovY7xG?ri!XE{C9$vZlVB ScN7B{Ffu}D22LmqqcQ>FP8oy% literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGiM{ z%4Wi*&gRah4r$R4G32Y$aP`!Vsip<(}08vn-QA_kT&EH6qi-gxATo* Q00Txw2+hC=rD0Si0M#QId;kCd diff --git a/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings index 670c968b5c01b477ae8b6c95fbdfbf3006ff847d..33147f0e200fefa5bb3b623dfcce976a1ab7e861 100644 GIT binary patch delta 93 zcmZ3-xQ$vzEgP4#6AT85E&Ui delta 93 zcmZ3-xQzDI1q#6AT84VW2H diff --git a/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings index 569c4c24b23cc214130da58c8363092e3b6bb482..7af5b4db942e7ac7bc8714619961a5829252bc61 100644 GIT binary patch delta 114 zcmdnMxPehWsURn_xWvHV3L_IU3o9EtM}%{JZfJLn=ca!`q3GvJ(w8I5`BxW!3bZVhbitPyhh>%Nrp8 diff --git a/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings index 0447571f8d5a333d5ebfcab0f9e52a851c38e79a..723c21c76dedaa342ec0829eb2d21bfe1777f901 100644 GIT binary patch literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UL4_< zpOTrFl2{rMnOmNkQ(jpV>XDz8mKo}vpHrUBAt@gf>O$w`c}?S R3}C>>2%#A`p)`z20sy8oA`$=q literal 139 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2=SD znpRYrmYU7r&XCHG#_)t82M9|T6c}O$w R3}C>>2%#BRp)`!r2LQSr5S0J` literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) diff --git a/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings index 7fa299d008b92c0b917dbbd17e9032fdf4a1fac3..a8d22f8322ff950e12cababb3aa4c911130bb4a7 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!V%8-xw)x%CB+e8nZ=nU`9;N{KAG96#i3!DspZ8Sf>O$w R3}C>>2%#BRp)`!r2LQSr5S0J` literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) diff --git a/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings index 7fa299d008b92c0b917dbbd17e9032fdf4a1fac3..a8d22f8322ff950e12cababb3aa4c911130bb4a7 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!V%8-xw)x%CB+e8nZ=nU`9;N{KAG96#i3!DspZ8Sf>O$w R3}C>>2%#BRp)`!r2LQSr5S0J` literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) diff --git a/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings index 6ec98b48c0a3ba6e81ca23fa0051cd5504ed53d8..898060fbba0bc9d38af155ceee441306c1b6b1e8 100644 GIT binary patch delta 85 zcmZo*Y+%$+D#*z!E-^5;!pOwT!pg?Z5#gMlo1288#(|0 delta 85 zcmZo*Y+!UqD#*z!E-^5;!pOwT!pg?Z5gL}6T3#ILlbM}b9O0awo12Rns?j@R^vP0055u8xQ~h diff --git a/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings index 25ca10d7888a0cb3a04cb1e224e532eb384f67df..4c51ca57eb6d2d997742853dcb8d670f1f1c29aa 100644 GIT binary patch delta 86 zcmZot)s_tT$QjGAOVPvBQ2#U+9>AM6cOe|9X05W$Y AXaE2J diff --git a/WordPress/WordPressTodayWidget/hr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/hr.lproj/Localizable.strings index 9e0dc2a0f87376248d97765f39b16e9708f90f4b..a7e9ae7aa18efe05869527cd290cd561e2e915e9 100644 GIT binary patch literal 119 zcmYc)$jK}&F)+Bo$i&RT%Ertd;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UL5J2 z50XqQ%8UufFV0FW$t+3D$;ylfC`wJwNlnS*5R_8Z)VFkF00Txw2+hC&rD2pm0N8RK AN&o-= delta 74 zcmXRfw@50;$t*50Fu20V#LU9V#Ks;PmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= d91&2Inx2!Ik~vXdoP$G9Tvkor!f9f-0sx5s7ncA4 diff --git a/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings index 2a3e031112df9caa0af881e6b78ca608425ec786..3c6e8e2b7fffdbcc59a4c83029250c265f8fcfaa 100644 GIT binary patch delta 70 zcmZ3$xPVbVsURn_xWvHV3L_IU3o9EldxUd-ZfFduUi@YI$*}PiA&%afEYzZf8q delta 83 zcmZo;Y-6-bD#*z!E-^5;!pOwT!pg?Z5gL}6T3#ILlbM}b9O0awo12BNhMv literal 138 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2=1& zlUh=enU|hel*!=3@RlK)A(5eoL4l!+A(P=ljAKbgX?kLDYHmtqQJ8ybaY<$ohoHEu Vn!c596ayGAGD2tuPACnd5&@-5BNhMv diff --git a/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings index 595cab923d59ea5e3cd151f9d71e516d51278b5b..8ff2a040665caee1431bdef6c587da2f5bd7ea83 100644 GIT binary patch literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UJR4X zi~`Fh0_8J9K=Sbd{6LY?#GK5ks>G_y{JcyKK`CWTeG6v~1~6b`gwPC}P#Q)>0RZlo BB9s6C literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2(nB z4`h}m=44h?C01qT=VgX~RKgTyMu8P30+nWR2#U+9={vglGk^gjBZOw)gwil73IO14 BBAWmJ diff --git a/WordPress/WordPressTodayWidget/ja.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ja.lproj/Localizable.strings index 6299b7096579c3e30f3581a8ce771a64ed488590..e61d016a9efc1b1bdfd75aa737fb7c45db7838d4 100644 GIT binary patch literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UYugE z+2EnUXM+>TU0R|34XnuqEudfm0G|dD5b2aZ(;Ao00xYV5SoD#O2a5$0FXx= ADF6Tf literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGi$A zQE8Q0kZj-rgt;jOn++Zsd^R|d+@%%j-@wWtC@!m}Z)WSp00xYV5SoD#O2a5$0Drh0 A82|tP diff --git a/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings index 9d76f3cca8eb87125891d7d59d9001dfc87384bd..797229c46c808b18628031d93187d118851947a3 100644 GIT binary patch delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BGpoS&PUnpaXB5tdn;S(0B=9O{#qomw0kmYG^! ooU~bZ9YgXS&D|EqCnTTfKI(F8O5)xR9D-8Hn))WzP80nU0P64`2LJ#7 delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= ooVfQx@`>)FF2|-MZ5Cd~ki188x5e=Z9D?GqYWhZ&b`$*+0Q~VD^8f$< diff --git a/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings index 74233a822799cf8333004767d9a0ac7955e9909f..379d03a244ff99fa84401187f0001a303e31e3a5 100644 GIT binary patch delta 84 zcmZo=Y-Q9>D#*z!E-^5;!pOwT!pg?Z5#gMlo12-Qe#~~=Ctf_C|6u84$w OjEoSPffGu@s3-vEjv|i$ diff --git a/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings index f9584ce5df2ec1cf975aade6db67bb2a470d3598..2e08c123cc1268a2374da71d6c805cc8b484524d 100644 GIT binary patch literal 96 zcmYc)$jK}&F)+Bo$i&RT3d9l4`MJ5Nc_qaWVVT95CHY0gp+1?}sl}mTnW^Q)QQr9= c$;6_nR1QHYWlensFkoba&l6UwEg0Sa diff --git a/WordPress/WordPressTodayWidget/pt.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/pt.lproj/Localizable.strings index ce192247375fcdb05305111cf663d26a6462ee0f..b3fe3fbafefd1131ad91e0b9fea55630df3f99f3 100644 GIT binary patch delta 77 zcmbQkIEPU$sURn_xWvHV3L_IU3o9EtM}%{JZfCkW~ewpEG=ANM$GvbI&g>$)BjF%*i1rE~}>R6__!xMgagg Cx*l=> diff --git a/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings index 2143d16de19c0b676fa548d5e7497c0bb2733e99..55afcb4cc2596f48d1cd582a692ba116c5eb99d4 100644 GIT binary patch literal 148 zcmYc)$jK}&F)+Bo$i&RT%ErzS;hdkFo0?Zr91)gToLQ1zR2=G)nVni38kU(_UK|CK z1xh9sWoAZ&WmaXDBmz}rrZWUEX<9Gy^A;hEdr7%pf9L literal 148 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGiHa z#*oQS#ZbzS$dChKF)}k0F=VDQ1Tf?PnaMzj5{A?$pgy3s#G=g1sIbhc%#uW)-b@Zb YaalEex6lLzFkoba&sKo1jS|5^qm4TCblU60M|Ae A4gdfE diff --git a/WordPress/WordPressTodayWidget/sk.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sk.lproj/Localizable.strings index dc886336ab13c35e7de5493d1dad54d02eab36f4..be565d6da444a237ee85cc372b5307d97f9d5757 100644 GIT binary patch delta 78 zcmeBS>|xYTD#*z!E-^5;!pOwT!pg?X9^ssyo12|wM@D#*z!E-^5;!pOwT!pg+P9vYUJT3#ILlbM}b9O0awo12O$w`sN> N2%#A`p)`z&1psGcA5j1R delta 74 zcmZo;Y-5y7D#*z!E-^5;!pOwT!pg?Z5gL}6T3#ILlbM}bJW)_sBp|UUD>a=VfZ;Vm d4nrYBCPOYm>O_4>P7XnFSv7rA7oUk~3IP7+6PEx0 diff --git a/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings index 084bf4bd6573e6e2d57acf0f17ee9c961577a249..e6b410e39f7783d64caac1ffc58113f63d327fe0 100644 GIT binary patch delta 126 zcmbQlIEhg|sURn_xWvHV3L_IU3o9EtM}%{JZfrfqRhPX#G*)`+B`6eLr_XtQ{UPro&gLP86h+SCzOU! FnE;cUACdq7 delta 126 zcmbQlIEm3GsURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%afEYzZf}m!4P@FCgHanUj;4n^=^cS_BrFs4uI@At)}Zrf=yJ!2kw~j1ZcE6H3FV FOaP!ZA7B6g diff --git a/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings index 4535e93a0e5e07c403034e3a8d0705abc1b28d1d..3463073d4d8a12d186a77a3f0c71d50b1cfdca81 100644 GIT binary patch delta 94 zcmbQmIEzs~sURn_xWvHV3L_IU3o9EtM}%{JZfC&FjRAtihE#?khD?UsiQe)P^_4g|1jS|5^xfh!CUz+R0LW~qaxl;=`1f`TU^-ZiN`YHkd(5)T( delta 83 zcmd1H^Gzzq$t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= noSgo&oIAB3u{SQM`$+e$1qnX`LVYDMzAds8>2R&WSPDQoJRSUOA$Pyhf0RvsJx delta 86 zcmXRY2uLc($t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= qoILN|)QzbX$;q7Evr;RPN+Y`%lDf2_7jX!R%c|*{**Z-OPyhfKDIORA From 86db23265c831685c31c06d004c5d46130ca4985 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 10 Dec 2021 15:25:48 +0100 Subject: [PATCH 365/371] Update metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/de-DE/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/fr-FR/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/he/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/id/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/it/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/ja/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/ko/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/nl-NL/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/pt-BR/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/sv/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/tr/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/zh-Hans/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/zh-Hant/release_notes.txt | 14 ++++++++++++++ 14 files changed, 196 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/fr-FR/release_notes.txt create mode 100644 fastlane/metadata/he/release_notes.txt create mode 100644 fastlane/metadata/id/release_notes.txt create mode 100644 fastlane/metadata/it/release_notes.txt create mode 100644 fastlane/metadata/ja/release_notes.txt create mode 100644 fastlane/metadata/ko/release_notes.txt create mode 100644 fastlane/metadata/nl-NL/release_notes.txt create mode 100644 fastlane/metadata/pt-BR/release_notes.txt create mode 100644 fastlane/metadata/sv/release_notes.txt create mode 100644 fastlane/metadata/tr/release_notes.txt create mode 100644 fastlane/metadata/zh-Hans/release_notes.txt create mode 100644 fastlane/metadata/zh-Hant/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..ec61f961f9db --- /dev/null +++ b/fastlane/metadata/ar-SA/release_notes.txt @@ -0,0 +1,14 @@ +أخبار سارة للجميع — قمنا بإصلاح أخطاء التطبيق الناتجة عن رفع الصور في أثناء عدم الاتصال بالإنترنت أو حذف الوسائط أو الاطلاع على تفاصيل خاصة بتنبيهات "الإعجاب". + +أجرينا تغييرات كبيرة على محرِّر المكوِّن بحيث يمكنك الحفاظ على هدوئك والنشر عند: + +- عندما تفتح الإعدادات الخاصة بمكوِّن الزر أو الصورة المرتبطة بعنوان URL، لن يقوم المحرِّر بملء عنوان URL تلقائيًا من حافظتك بعد الآن. سترى الآن اقتراح "رابط إلى" بحيث يمكنك استخدام عنوان URL الحافظة أو إدخال عنوان مختلف. +- قم بإنشاء مكوِّن معرض، وسيتم فتح خيارات وسائط جهازك تلقائيًا، ما يُسهِّل لك إضافة صورك. +- هل تريد إضافة مكوِّن جديد؟ إذا تم تعيين جهازك إلى لغة بخلاف اللغة الإنجليزية، فستطابق علامات التبويب الموجودة في قائمة أداة الإدراج الآن لغتك التي تم تعيينها. +- عندما تستخدم مكوِّن التضمين، لن ترى إجراء "التحرير" في شريط الأدوات. يمكنك الآن تغيير عنوان URL عن طريق الانتقال إلى إعدادات المكوِّن بدلاً من ذلك. +- في محرِّر المقالة، سيؤدي التبديل من وضع HTML إلى الوضع المرئي إلى إحضار إشعار موجز يخبرك بالتبديل. +- ربما لاحظت أنه قد تغير حجم الخط من تلقاء نفسه في مكوِّنات الوسائط والنص. لقد قضينا على الخطأ الذي كان يُسبب ذلك الأمر. + +هل أنت جديد على ووردبريس؟ لا داعي للقلق. تسهِّل عملية تسجيل الدخول الخاصة بنا إنشاء موقعك وبدء إدراته أكثر من أي وقت مضى. + +أضفنا كذلك شاشة "نبذة عن" جديدة بحيث يمكنك تقييم التطبيق ومشاركته (بعض التلميحات)، وزيارة ملفنا الشخصي على تويتر ومدونتنا، وعرض تطبيقاتنا الأخرى، وأكثر. diff --git a/fastlane/metadata/de-DE/release_notes.txt b/fastlane/metadata/de-DE/release_notes.txt new file mode 100644 index 000000000000..aa56f8512c8f --- /dev/null +++ b/fastlane/metadata/de-DE/release_notes.txt @@ -0,0 +1,14 @@ +Gute Neuigkeiten: Wir haben App-Abstürze, die durch den Offline-Upload von Bildern, das Löschen von Medien oder das Anzeigen von Details für „Gefällt mir“-Benachrichtigungen verursacht wurden, behoben. + +Wir haben umfassende Änderungen am Block-Editor vorgenommen, damit du unbesorgt Beiträge veröffentlichen kannst auf: + +- Wenn du die Einstellungen für einen mit einer URL verknüpften Button oder Bildblock öffnest, wird im Editor nicht mehr automatisch eine URL aus deiner Zwischenablage eingefügt. Du erhältst jetzt einen „Link zu“-Vorschlag, d. h., du kannst entweder die URL aus der Zwischenablage verwenden oder eine andere eingeben. +- Wenn du einen Galerieblock erstellst, werden die Medienoptionen deines Geräts automatisch geöffnet. So kannst du deine Bilder einfacher hinzufügen. +- Du möchtest einen neuen Block hinzufügen? Wenn auf deinem Gerät eine andere Sprache als Englisch eingestellt ist, entsprechen die Tabs im Inserter-Menü ab sofort deiner Gerätesprache. +- Bei Verwendung des Embed-Blocks wird dir in der Toolbar nicht die Aktion „Bearbeiten“ angezeigt. Du kannst die URL ab sofort in den Blockeinstellungen ändern. +- Wenn du im Beitragseditor vom HTML-Modus zum visuellen Modus wechselst, wird dir ein kurzer Hinweis zum Wechsel angezeigt. +- Vielleicht hast du schon bemerkt, dass sich die Schriftgröße in „Medien und Text“-Blöcken automatisch ändert. Wir haben den Fehler, der dies verursacht hat, beseitigt. + +Bist du neu bei WordPress? Kein Grund zur Sorge. Mit unserem Anmeldeprozess ist es einfacher denn je, eine eigene Website zu erstellen und zu verwalten. + +Wir haben zudem eine neue Seite „Über“ hinzugefügt: Hier kannst du die App bewerten und teilen (das solltest du unbedingt tun), unser Profil und Blog auf Twitter besuchen, unsere anderen Apps ansehen und vieles mehr. diff --git a/fastlane/metadata/fr-FR/release_notes.txt b/fastlane/metadata/fr-FR/release_notes.txt new file mode 100644 index 000000000000..cf51fc695d45 --- /dev/null +++ b/fastlane/metadata/fr-FR/release_notes.txt @@ -0,0 +1,14 @@ +Bonne nouvelle ! Nous avons résolu les incidents liés au chargement des images en étant hors ligne, à la suppression de médias ou à l’affichage détaillé des notifications « J’aime » dans l’application. + +Nous avons apporté d’importantes modifications à l’éditeur de blocs pour que vous puissiez continuer à publier en toute tranquillité : + +- Lorsque vous ouvrez les réglages d’un bloc de bouton ou d’image associé à une URL, l’éditeur n’ajoute plus automatiquement une URL à partir de votre presse-papier. Vous verrez désormais une suggestion « Lien vers » vous laissant le choix de sélectionner l’URL de votre presse-papier ou d’en saisir une autre. +- Lorsque vous créez un bloc Galerie, les options multimédia de votre appareil s’ouvrent automatiquement pour faciliter l’ajout d’images. +- Vous souhaitez ajouter un nouveau bloc ? Si la langue de votre appareil n’est pas l’anglais, les onglets du menu d’insertion apparaîtront désormais dans la langue définie. +- Lorsque vous utilisez le bloc de contenu embarqué, l’action « Modifier » n’apparaîtra plus dans la barre d’outils. Vous pouvez désormais modifier l’URL à partir des réglages du bloc. +- Dans l’éditeur d’article, vous recevrez une notification si vous passez du mode HTML au mode visuel. +- Vous avez peut-être remarqué des changements de taille de police intempestifs dans les blocs de Média & texte. Nous avons corrigé le bug à l’origine de ce problème. + +Vous découvrez WordPress ? Pas d’inquiétude. Notre procédure de connexion vous permet de créer et de commencer à gérer votre site encore plus facilement. + +Nous avons également ajouté une nouvelle page À propos à partir de laquelle vous pouvez évaluer et partager l’application, consulter notre profil Twitter et notre blog, découvrir nos autres applications, etc. diff --git a/fastlane/metadata/he/release_notes.txt b/fastlane/metadata/he/release_notes.txt new file mode 100644 index 000000000000..a7c6d8c173e1 --- /dev/null +++ b/fastlane/metadata/he/release_notes.txt @@ -0,0 +1,14 @@ +יש לנו חדשות טובות לכולם – תיקנו את הקריסות באפליקציה שנגרמו עקב העלאת תמונות במצב לא מחובר, מחיקת מדיה או צפייה בפרטים של הודעות 'לייק'. + +ביצענו כמה שינויים משמעותיים בעורך הבלוקים כדי לאפשר לכולם לפרסם בהנאה: + +- כאשר פותחים את ההגדרות של בלוק הכפתור או בלוק התמונה שאליו מצורף קישור של כתובת URL, העורך לא יזין עוד באופן אוטומטי את כתובת ה-URL מהלוח שלך. כעת תופיע הצעה 'קישור אל' כדי לאפשר לך להשתמש בכתובת ה-URL שבלוח או להזין כתובת שונה. +- אפשר ליצור בלוק גלריה ואפשרויות המדיה במכשיר שלך ייפתחו באופן אוטומטי כדי שיהיה קל יותר להוסיף תמונות. +- רוצה להוסיף בלוק חדש? אם המכשיר שלך מוגדר לשפה שאינה אנגלית, הלשוניות בתפריט המוסיף של הבלוקים כעת תואמות לשפה שהגדרת. +- כאשר משתמשים בבלוק ההטמעה, הפעולה 'לערוך' לא תופיע עוד בסרגל הכלים. במקום, אפשר כעת לשנות את כתובת ה-URL דרך הגדרות הבלוק. +- בעורך הפוסטים, ההחלפה בין עורך HTML והעורך חזותי תציג הודעה קטנה שמיידעת אותך שהשינוי בוצע. +- אולי הבחנת שגודל הגופן משתנה מעצמו בבלוק המדיה ובבלוק הטקסט. סילקנו את הבאג שגרם לתקלה הזאת. + +פעם ראשונה ב-WordPress? אל דאגה. תהליך ההתחברות שלנו היום פשוט יותר ויעזור לך ליצור אתר ולהתחיל לנהל אותו בקלות. + +הוספנו גם מסך 'אודות' חדש כדי לאפשר לך לדרג ולשתף את האפליקציה (כן, אנחנו רומזים בנימוס לעשות את זה), לבקר בפרופיל שלנו בטוויטר ובבלוג שלנו, לעיין באפליקציות הנוספות שלנו ועוד. diff --git a/fastlane/metadata/id/release_notes.txt b/fastlane/metadata/id/release_notes.txt new file mode 100644 index 000000000000..8a3b37913cdf --- /dev/null +++ b/fastlane/metadata/id/release_notes.txt @@ -0,0 +1,14 @@ +Buone notizie per tutti: abbiamo risolto gli arresti anomali dell'app causati dal caricamento di immagini offline, dall'eliminazione di elementi multimediali o dalla visualizzazione dei dettagli per le notifiche dei "Mi piace". + +Abbiamo apportato alcune grandi modifiche all'editor a blocchi in modo che tu possa mantenere la calma e pubblicare su: + +- Quando apri le impostazioni per un blocco Pulsante o Immagine collegato a un URL, l'editor non compilerà più automaticamente un URL dagli appunti. Ora visualizzerai un suggerimento "Collega a" in modo da poter usare l'URL degli appunti o inserirne uno diverso. +- Crea un blocco Galleria e le opzioni degli elementi multimediali del tuo dispositivo si apriranno automaticamente, facilitandoti l'aggiunta delle tue immagini. +- Stai aggiungendo un nuovo blocco? Se il tuo dispositivo è impostato su una lingua diversa dall'inglese, le schede nel menu dell'inseritore ora corrisponderanno alla lingua impostata. +- Quando utilizzi il blocco Incorporamenti, non visualizzerai l'azione "Modifica" nella barra degli strumenti. Ora puoi modificare l'URL andando invece in Impostazioni del blocco. +- Nell'editor degli articoli, passando dalla modalità HTML alla modalità visuale apparirà un avviso coinciso che informa del passaggio. +- Potresti aver notato che la dimensione del carattere cambia da sola nei blocchi Media e testo. Abbiamo eliminato il bug che stava causando questa modifica. + +Nuovo su WordPress? Non preoccuparti. Il nostro processo di accesso rende più facile che mai creare e iniziare a gestire il tuo sito. + +Abbiamo anche aggiunto una nuova schermata Informazioni in modo da poter valutare e condividere l'app (suggerisci, suggerisci), visitare il nostro profilo Twitter e il blog, visualizzare le nostre altre app e altro ancora. diff --git a/fastlane/metadata/it/release_notes.txt b/fastlane/metadata/it/release_notes.txt new file mode 100644 index 000000000000..8a3b37913cdf --- /dev/null +++ b/fastlane/metadata/it/release_notes.txt @@ -0,0 +1,14 @@ +Buone notizie per tutti: abbiamo risolto gli arresti anomali dell'app causati dal caricamento di immagini offline, dall'eliminazione di elementi multimediali o dalla visualizzazione dei dettagli per le notifiche dei "Mi piace". + +Abbiamo apportato alcune grandi modifiche all'editor a blocchi in modo che tu possa mantenere la calma e pubblicare su: + +- Quando apri le impostazioni per un blocco Pulsante o Immagine collegato a un URL, l'editor non compilerà più automaticamente un URL dagli appunti. Ora visualizzerai un suggerimento "Collega a" in modo da poter usare l'URL degli appunti o inserirne uno diverso. +- Crea un blocco Galleria e le opzioni degli elementi multimediali del tuo dispositivo si apriranno automaticamente, facilitandoti l'aggiunta delle tue immagini. +- Stai aggiungendo un nuovo blocco? Se il tuo dispositivo è impostato su una lingua diversa dall'inglese, le schede nel menu dell'inseritore ora corrisponderanno alla lingua impostata. +- Quando utilizzi il blocco Incorporamenti, non visualizzerai l'azione "Modifica" nella barra degli strumenti. Ora puoi modificare l'URL andando invece in Impostazioni del blocco. +- Nell'editor degli articoli, passando dalla modalità HTML alla modalità visuale apparirà un avviso coinciso che informa del passaggio. +- Potresti aver notato che la dimensione del carattere cambia da sola nei blocchi Media e testo. Abbiamo eliminato il bug che stava causando questa modifica. + +Nuovo su WordPress? Non preoccuparti. Il nostro processo di accesso rende più facile che mai creare e iniziare a gestire il tuo sito. + +Abbiamo anche aggiunto una nuova schermata Informazioni in modo da poter valutare e condividere l'app (suggerisci, suggerisci), visitare il nostro profilo Twitter e il blog, visualizzare le nostre altre app e altro ancora. diff --git a/fastlane/metadata/ja/release_notes.txt b/fastlane/metadata/ja/release_notes.txt new file mode 100644 index 000000000000..ffc1267f2b6c --- /dev/null +++ b/fastlane/metadata/ja/release_notes.txt @@ -0,0 +1,14 @@ +皆さんに朗報です。オフライン時に画像をアップロードしたり、メディアを削除したり、「いいね」の通知の詳細を表示したりすると、アプリがクラッシュする問題を修正しました。 + +また、ブロックエディターが大きく変わったため、落ち着いて公開できるようになりました。 + +- URL にリンクされたボタンブロックまたは画像ブロックの設定を開くときに、エディターがクリップボードから URL を自動入力しなくなりました。 「リンク先」の候補が表示されるため、クリップボードの URL を使用するか、別の URL を入力できます。 +- ギャラリーブロックを作成する際に、デバイスのメディア設定が自動的に開き、さらに簡単に画像を追加できるようになりました。 +- 新しいブロックを追加する際は、 お使いの端末で英語以外の言語を設定している場合、挿入メニューのタブが設定している言語と一致するようになりました。 +- 埋め込みブロックを使用しているときは、ツールバーに「編集」アクションが表示されません。 代わりに「ブロック設定」で URL を変更できるようになりました。 +- 投稿エディターで HTML モードからビジュアルモードに切り替えると、切り替わったことを知らせるコンパクトな通知が表示されるようになりました。 +- メディアブロックやテキストブロックで、フォントサイズが勝手に変更されてしまうことにお気付きかもしれません。 原因となっていたバグを修正しました。 + +WordPress を初めてお使いになる方へ 心配ご無用です。 ログインするだけで、さらに簡単にサイトを作成して、管理を開始できるようになりました。 + +また、新たに「このサイトについて」画面を追加し、アプリ (ヒント) の評価や共有、Twitter のプロフィールやブログへのアクセス、他のアプリの表示などができるようになりました。 diff --git a/fastlane/metadata/ko/release_notes.txt b/fastlane/metadata/ko/release_notes.txt new file mode 100644 index 000000000000..014b2bbebcb5 --- /dev/null +++ b/fastlane/metadata/ko/release_notes.txt @@ -0,0 +1,14 @@ +모두에게 좋은 소식 - 오프라인 중 이미지 업로드, 미디어 삭제 또는 "좋아요" 알림의 상세 정보 표시에서 발생하던 앱 충돌을 해결했습니다. + +침착하게 계속 발행할 수 있도록 블록 편집기 일부를 대폭 변경했습니다. + +- URL과 연결된 버튼 또는 이미지 블록의 설정을 열 때 더는 클립보드의 URL이 자동으로 채워지지 않습니다. 이제는 클립보드 URL을 사용하거나 다른 URL을 입력할 수 있도록 "링크 연결 대상" 제안이 표시됩니다. +- 갤러리 블록을 만들면 기기의 미디어 옵션이 자동으로 열려 이미지를 더 쉽게 추가할 수 있습니다. +- 새 블록을 추가하시나요? 기기가 영어가 아닌 언어로 설정된 경우 삽입기 메뉴의 탭이 이제는 설정한 언어와 일치합니다. +- 임베드 블록을 사용할 때 도구 모음에 "편집" 작업이 표시되지 않습니다. - 이제는 그 대신에 블록 설정으로 이동하여 URL을 변경할 수 있습니다. +- 글 편집기에서 HTML 모드를 비주얼 모드로 전환하면 전환에 대한 간단한 알림 메시지가 표시됩니다. +- 미디어 블록과 텍스트 블록에서 글꼴 크기가 자동으로 변경되는 경우가 있었습니다. - 원인이 되었던 버그를 수정했습니다. + +- 워드프레스가 생소한가요? 걱정하지 마세요. 사이트를 만들고 관리를 시작하는 로그인 프로세스가 이전보다 쉬워졌습니다. + +앱 평가 및 공유(힌트), 트위터 프로필과 블로그 방문, 다른 앱 보기 등이 가능하도록 새로운 정보 화면도 추가했습니다. diff --git a/fastlane/metadata/nl-NL/release_notes.txt b/fastlane/metadata/nl-NL/release_notes.txt new file mode 100644 index 000000000000..a5da1a960a5f --- /dev/null +++ b/fastlane/metadata/nl-NL/release_notes.txt @@ -0,0 +1,14 @@ +We hebben goed nieuws! We hebben het crashen van de app opgelost dat werd veroorzaakt door afbeeldingen offline uploaden, verwijderen van media of details te bekijken van 'Vind ik leuk'-meldingen. + +We hebben enkele grote wijzigingen doorgevoerd in de blokeditor, dus blijf kalm en blijf publiceren: + +- Als je de instellingen voor een Knop- of Afbeeldingblok opent dat is gekoppeld aan een URL, vult de editor niet meer automatisch een URL van je klembord in. Je ziet nu een suggestie 'Doorsturen naar', zodat je de klembord-URL kunt gebruiken of toch een andere kunt invoeren. +- Wanneer je een Galerijblok aanmaakt, opent je apparaat automatisch de mediaopties, zodat je gemakkelijker je afbeeldingen kunt toevoegen. +- Nieuw blok toevoegen? Als je apparaat is ingesteld op een andere taal dan het Engels, komen de tabbladen in het invoegermenu nu overeen met je gekozen taal. +- Bij gebruik van een Insluitblok zie je geen optie voor 'Bewerken' in de werkbalk. Je kunt de URl wijzigen door in plaats daarvan naar Blokinstellingen te gaan. +- Als je in de berichteneditor schakelt van HTML-modus naar Visuele modus, krijg je een beknopt bericht te zien met melding van de schakeling. +- Misschien heb je gemerkt dat de grootte van je lettertype uit zichzelf wijzigt in Media- en Tekstblokken. De bug die dat veroorzaakte, is nu weggehaald. + +Nieuw bij WordPress? Geen zorgen. Met ons aanmeldproces was nog nooit zo gemakkelijk om een site aan te maken en te beheren. + +We hebben ook een nieuw 'Over'-scherm toegevoegd, zodat je de app kunt beoordelen en delen (hint, hint), ons Twitter-profiel en blog kunt bezoeken, onze andere apps kunt bekijken en nog veel meer. diff --git a/fastlane/metadata/pt-BR/release_notes.txt b/fastlane/metadata/pt-BR/release_notes.txt new file mode 100644 index 000000000000..6bd39e60bc0d --- /dev/null +++ b/fastlane/metadata/pt-BR/release_notes.txt @@ -0,0 +1,14 @@ +Boas notícias, pessoal: corrigimos as falhas do aplicativo causadas ao carregar imagens offline, excluir mídias ou ver os detalhes de notificações de curtida. + +Fizemos algumas mudanças importantes no editor de blocos para você poder continuar publicando tranquilamente: + +- Quando você abrir as configurações de um bloco de botões ou de imagem vinculado a uma URL, o editor não preencherá mais automaticamente uma URL da sua área de transferência. Você verá uma sugestão "Vincular a", para que possa usar a URL da área de transferência ou digitar uma nova. +- Quando você criar um bloco de galeria, as opções de mídia do seu dispositivo se abrirão automaticamente, tornando a inclusão de imagens mais fácil. +- Vai adicionar um novo bloco? Se o seu dispositivo estiver configurado em um idioma diferente do inglês, as guias do menu de inserção corresponderão ao idioma definido. +- Quando utilizar o bloco de mídia incorporada, você não verá a ação "Editar" na barra de ferramentas. Agora, é possível alterar a URL acessando as Configurações do bloco. +- No editor de posts, alterar do modo HTML para o Visual fará surgir um aviso comunicando sobre a mudança. +- Você pode ter percebido uma alteração automática no tamanho da fonte nos blocos de mídia e texto. Nós eliminamos o bug que causava essa alteração. + +Novo no WordPress? Não se preocupe. Com nosso processo de login, ficou mais fácil do que nunca criar e começar a gerenciar o seu site. + +Incluímos também uma tela "Sobre", para que você possa classificar e compartilhar o aplicativo (atenção para a dica), visitar nosso perfil no Twitter e o nosso blog, visualizar os nossos outros aplicativos e muito mais. diff --git a/fastlane/metadata/sv/release_notes.txt b/fastlane/metadata/sv/release_notes.txt new file mode 100644 index 000000000000..04db3f63bc2a --- /dev/null +++ b/fastlane/metadata/sv/release_notes.txt @@ -0,0 +1,14 @@ +Glada nyheter, allihopa – vi har åtgärdat appkrascher som orsakades av bilduppladdning i offline-läge, borttagning av media eller visning av information för "Gilla"-aviseringar. + +Vi har gjort några stora ändringar av blockredigeraren, så du kan vara lugn och publicera vidare: + +- När du öppnar inställningarna för ett knapp- eller bildblock som är länkat till en URL kommer redigeraren inte längre att klistra in en URL från dina urklipp automatiskt. Du kommer nu att se förslaget "Länka till" och kunna välja att antingen använda urklipps-URL:en eller ange en annan URL. +- När du skapar ett galleriblock öppnas mediaalternativen för din enhet automatiskt, vilket gör det enklare för dig att lägga till dina bilder. +- Ska du lägga till ett nytt block? Om din enhet är inställd på ett annat språk än engelska kommer flikarna i infogarmenyn nu att matcha ditt inställda språk. +- När du använder inbäddningsblocket kommer åtgärden "Redigera" inte att visas i verktygsfältet. Du kan nu istället ändra URL:en genom att gå till blockinställningarna. +- När du växlar från HTML-läge till visuellt läge i inläggsredigeraren kommer det att visas en avisering som meddelar dig om detta. +- Du kanske har noterat att textstorleken ibland har ändrat sig av sig själv i dina media- och textblock. Vi har åtgärdat felet som orsakade detta. + +Är du ny på WordPress? Oroa dig inte. Vår inloggningsprocess gör det enklare än någonsin att skapa och börja hantera din webbplats. + +Vi har också lagt till en ny Om-skärm där du kan betygsätta och dela appen (blink, blink), besöka vår Twitter-profil och blogg, visa våra övriga appar, med mera. diff --git a/fastlane/metadata/tr/release_notes.txt b/fastlane/metadata/tr/release_notes.txt new file mode 100644 index 000000000000..bcd419e39188 --- /dev/null +++ b/fastlane/metadata/tr/release_notes.txt @@ -0,0 +1,14 @@ +Herkese iyi haberlerimiz var. Çevrimdışıyken resim yüklerken, medya silerken veya "Beğenme" bildirimlerinin ayrıntılarını görüntülerken oluşan uygulama kilitlenme durumlarını düzelttik. + +Gönderilerinizi huzurlu bir şekilde yayınlayabilmeniz için blok düzenleyicide bazı büyük değişiklikler yaptık: + +- Bir URL'ye bağlı bir Düğme veya Resim blokunun ayarlarını açtığınızda, düzenleyici artık bir URL'yi panonuzdan otomatik olarak doldurmaz. Artık pano URL'sini kullanabilmeniz veya farklı bir URL girebilmeniz için bir "Bağlantı" önerisi göreceksiniz. +- Bir Galeri bloku oluşturduğunuzda, cihazınızın medya seçenekleri otomatik olarak açılır ve görsel eklemenizi kolaylaştırır. +- Yeni bir blok mu ekliyorsunuz? Cihazınız İngilizce dışında bir dile ayarlanmışsa, ekleyici menüsündeki sekmeler artık ayarladığınız dille eşleşecektir. +- Gömülü bloku kullanırken, araç çubuğunda "Düzenle" eylemi görüntülenmez. Artık bunun yerine Blok Ayarlarına giderek URL'yi değiştirebilirsiniz. +- Gönderi düzenleyicide HTML modundan Görsel moda geçiş yaptığınızda geçiş hakkında size bilgi veren küçük bir uyarı görüntülenir. +- Medya ve Metin bloklarında yazı tipi boyutunun kendi kendine değiştiğini fark etmiş olabilirsiniz. Buna neden olan hatayı giderdik. + +WordPress'te yeni misiniz? Endişe etmeyin. Giriş sürecimiz, sitenizi oluşturmayı ve yönetmeye başlamayı her zamankinden daha kolay hale getiriyor. + +Ayrıca, uygulamaya puan verip paylaşabilmeniz için (ipucu, ipucu) yeni bir Hakkında ekranı ekledik, Twitter profilimizi ve blogumuzu ziyaret edebilir, diğer uygulamalarınızı görüntüleyebilir ve daha bir çok şey yapabilirsiniz. diff --git a/fastlane/metadata/zh-Hans/release_notes.txt b/fastlane/metadata/zh-Hans/release_notes.txt new file mode 100644 index 000000000000..775eeedae327 --- /dev/null +++ b/fastlane/metadata/zh-Hans/release_notes.txt @@ -0,0 +1,14 @@ +各位,好消息 — 我们修复了因离线上传图片、删除媒体或查看“赞”通知详情而导致的应用程序崩溃。 + +我们对区块编辑器做了一些重大改动,让您可以放心地发表文章: + +- 当您打开链接到 URL 的按钮或图像区块的设置时,编辑器将不再从剪贴板自动填充 URL。 现在您会看到一个“链接到”建议,以便使用剪贴板 URL,也可以输入其他 URL。 +- 创建一个图库区块,您设备的媒体选项就会自动打开,这有助于您更轻松地添加图像。 +- 添加新区块? 如果您的设备未设为英语,插入器菜单中的选项卡现在会与您设置的语言相对应。 +- 使用嵌入区块时,您在工具栏中看不到“编辑”操作。 但您现在可以转至“区块设置”以更改 URL。 +- 在文章编辑器中,如果从 HTML 模式切换到可视化模式,系统会显示一个提醒您该模式切换的小型通知。 +- 您可能已经注意到,字体大小会在媒体和文本区块中自行更改。 我们已经解决此错误。 + +刚开始使用 WordPress? 不用担心。 我们的登录流程使得创建和开始管理您的站点更加简单。 + +我们还添加了新的“关于”屏幕,以便您可以为应用程序评分并与他人分享(推荐!),访问我们的 Twitter 个人资料和博客,查看我们其他的应用程序等等。 diff --git a/fastlane/metadata/zh-Hant/release_notes.txt b/fastlane/metadata/zh-Hant/release_notes.txt new file mode 100644 index 000000000000..fd0d87d56cef --- /dev/null +++ b/fastlane/metadata/zh-Hant/release_notes.txt @@ -0,0 +1,14 @@ +在此向各位宣佈好消息:我們已修正離線上傳圖片、刪除媒體或查看「按讚」通知詳細資訊時造成的應用程式當機問題。 + +我們大幅變更了區塊編輯器,讓你能順利編輯並持續發表內容: + +- 當你開啟與 URL 連結的按鈕或圖片區塊時,編輯器不會再從剪貼簿自動填入 URL 了。 系統現在會顯示「連結到」建議,讓你選擇使用剪貼簿 URL 或輸入其他 URL。 +- 建立圖庫區塊時,系統會自動開啟裝置的媒體選項,讓你更輕鬆地新增圖片。 +- 要新增區塊嗎? 若你的裝置設定為英文以外的語言,插入工具選單中的分頁內容現在會以你設定的語言顯示。 +- 使用嵌入區塊時,你不會在工具列中看到「編輯」動作。 你現在可改為前往「區塊設定」變更 URL。 +- 在文章編輯器中,從 HTML 模式切換到視覺化模式會顯示精簡的切換通知。 +- 你可能有注意到媒體和文字區塊中的文字大小會自行變更。 我們已修正造成此問題的錯誤。 + +初次使用 WordPress 嗎? 別擔心。 我們的登入程序可讓你更輕鬆地建立並開始管理網站。 + +我們也新增了全新的「關於」畫面,讓你評分並分享應用程式 (建議)、造訪我們的 Twitter 個人檔案和網誌、檢視我們的其他應用程式等。 From 727bca2bf803e56c84d51e031547ab46ad01fdb5 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 10 Dec 2021 15:26:03 +0100 Subject: [PATCH 366/371] Update Jetpack metadata translations --- fastlane/jetpack_metadata/es-ES/release_notes.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fastlane/jetpack_metadata/es-ES/release_notes.txt b/fastlane/jetpack_metadata/es-ES/release_notes.txt index 3b5823f0689b..55751d3c10fe 100644 --- a/fastlane/jetpack_metadata/es-ES/release_notes.txt +++ b/fastlane/jetpack_metadata/es-ES/release_notes.txt @@ -1,6 +1,6 @@ -Buenas noticias: hemos corregido los errores de la aplicación que se producían cuando se subían imágenes sin conexión, o al mismo tiempo que se eliminaban medios o se visualizaban los detalles de las notificaciones de "Me gusta". +Buenas noticias: hemos corregido los errores de la aplicación que se producían cuando se subían imágenes sin conexión, se eliminaban medios o se visualizaban los detalles de las notificaciones de "Me gusta". -Hemos hecho algunos cambios importantes en el editor de bloques para que puedas seguir publicando con tranquilidad: +Hemos realizado algunos cambios importantes en el editor de bloques para que puedas seguir publicando con tranquilidad: - Al abrir los ajustes de un bloque de botón o imagen enlazado a una URL, el editor ya no completará de manera automática la URL en el portapapeles. En cambio, verás una sugerencia de "Enlace a" para que puedas utilizar la URL del portapapeles o introducir una diferente. - Al crear un bloque de Galería, las opciones de medios de tu dispositivo se abrirán automáticamente, facilitándote la tarea de añadir las imágenes. From db05f19810ac65e856ee040ccd6bfc7337ef1d42 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 10 Dec 2021 15:26:04 +0100 Subject: [PATCH 367/371] 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 ccc44a8aac6a..f3c91fe7f0c0 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -6,4 +6,4 @@ VERSION_SHORT=18.8 // build for the day so I bumped it to 10/02. On 10/04 we'll code freeze 18.4 // and this should be the very last build for 18.3, so we should be fine. // – Gio -VERSION_LONG=18.8.0.20211208 +VERSION_LONG=18.8.0.20211210 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index e800c4ff69b9..f82e9f0166df 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.8.0.4 +VERSION_LONG=18.8.0.5 From d30d11bb3558abe4635f7d4668eae71db8e20d1f Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 13 Dec 2021 14:12:49 -0300 Subject: [PATCH 368/371] Add: SIWA entitlements --- WordPress/Jetpack/JetpackDebug.entitlements | 4 ++++ WordPress/Jetpack/JetpackRelease.entitlements | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/WordPress/Jetpack/JetpackDebug.entitlements b/WordPress/Jetpack/JetpackDebug.entitlements index 0ee72271aa63..4b1258b729a3 100644 --- a/WordPress/Jetpack/JetpackDebug.entitlements +++ b/WordPress/Jetpack/JetpackDebug.entitlements @@ -4,6 +4,10 @@ aps-environment development + com.apple.developer.applesignin + + Default + com.apple.developer.associated-domains webcredentials:wordpress.com diff --git a/WordPress/Jetpack/JetpackRelease.entitlements b/WordPress/Jetpack/JetpackRelease.entitlements index 0ee72271aa63..4b1258b729a3 100644 --- a/WordPress/Jetpack/JetpackRelease.entitlements +++ b/WordPress/Jetpack/JetpackRelease.entitlements @@ -4,6 +4,10 @@ aps-environment development + com.apple.developer.applesignin + + Default + com.apple.developer.associated-domains webcredentials:wordpress.com From 61607f2b54af1f48fff974208b4a597fa8150ed3 Mon Sep 17 00:00:00 2001 From: Leandro Alonso Date: Mon, 13 Dec 2021 14:14:29 -0300 Subject: [PATCH 369/371] Add: SIWA button for Jetpack --- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 7fe13430fa98..c9e13e7d2c51 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -57,7 +57,7 @@ extension WordPressAuthenticationManager { private func authenticatorConfiguation() -> WordPressAuthenticatorConfiguration { // SIWA can not be enabled for internal builds // Ref https://github.com/wordpress-mobile/WordPress-iOS/pull/12332#issuecomment-521994963 - let enableSignInWithApple = AppConfiguration.allowSignUp && !(BuildConfiguration.current ~= [.a8cBranchTest, .a8cPrereleaseTesting]) + let enableSignInWithApple = !(BuildConfiguration.current ~= [.a8cBranchTest, .a8cPrereleaseTesting]) return WordPressAuthenticatorConfiguration(wpcomClientId: ApiCredentials.client, wpcomSecret: ApiCredentials.secret, From ad49b3a923c09428be40acccd9e47a99f2342535 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Mon, 13 Dec 2021 13:45:31 -0700 Subject: [PATCH 370/371] Update translations --- .../ar.lproj/Localizable.strings | Bin 4619 -> 4619 bytes .../bg.lproj/Localizable.strings | Bin 3614 -> 3614 bytes .../cs.lproj/Localizable.strings | Bin 4887 -> 4887 bytes .../cy.lproj/Localizable.strings | Bin 3239 -> 3239 bytes .../da.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../de.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../en-AU.lproj/Localizable.strings | Bin 3057 -> 3057 bytes .../en-CA.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../en-GB.lproj/Localizable.strings | Bin 3067 -> 3067 bytes .../es.lproj/Localizable.strings | Bin 4114 -> 4114 bytes .../fr.lproj/Localizable.strings | Bin 5336 -> 5336 bytes .../he.lproj/Localizable.strings | Bin 4586 -> 4586 bytes .../hr.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../hu.lproj/Localizable.strings | Bin 3297 -> 3297 bytes .../id.lproj/Localizable.strings | Bin 3469 -> 3469 bytes .../is.lproj/Localizable.strings | Bin 3414 -> 3414 bytes .../it.lproj/Localizable.strings | Bin 3926 -> 3926 bytes .../ja.lproj/Localizable.strings | Bin 3632 -> 3632 bytes .../ko.lproj/Localizable.strings | Bin 3476 -> 3476 bytes .../nb.lproj/Localizable.strings | Bin 3832 -> 3832 bytes .../nl.lproj/Localizable.strings | Bin 3691 -> 3691 bytes .../pl.lproj/Localizable.strings | Bin 3214 -> 3214 bytes .../pt-BR.lproj/Localizable.strings | Bin 4574 -> 4574 bytes .../pt.lproj/Localizable.strings | Bin 3712 -> 3712 bytes .../ro.lproj/Localizable.strings | Bin 4930 -> 4930 bytes .../ru.lproj/Localizable.strings | Bin 5105 -> 5105 bytes .../sk.lproj/Localizable.strings | Bin 4899 -> 4899 bytes .../sq.lproj/Localizable.strings | Bin 4927 -> 4927 bytes .../sv.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../th.lproj/Localizable.strings | Bin 3316 -> 3316 bytes .../tr.lproj/Localizable.strings | Bin 4905 -> 4905 bytes .../zh-Hans.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../zh-Hant.lproj/Localizable.strings | Bin 3102 -> 3102 bytes .../ar.lproj/Localizable.strings | Bin 146 -> 146 bytes .../bg.lproj/Localizable.strings | Bin 174 -> 174 bytes .../cs.lproj/Localizable.strings | Bin 176 -> 176 bytes .../cy.lproj/Localizable.strings | Bin 118 -> 118 bytes .../da.lproj/Localizable.strings | Bin 128 -> 128 bytes .../de.lproj/Localizable.strings | Bin 139 -> 139 bytes .../en-AU.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-CA.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-GB.lproj/Localizable.strings | Bin 84 -> 84 bytes .../es.lproj/Localizable.strings | Bin 128 -> 128 bytes .../fr.lproj/Localizable.strings | Bin 129 -> 129 bytes .../he.lproj/Localizable.strings | Bin 150 -> 150 bytes .../hr.lproj/Localizable.strings | Bin 119 -> 119 bytes .../hu.lproj/Localizable.strings | Bin 160 -> 160 bytes .../id.lproj/Localizable.strings | Bin 134 -> 134 bytes .../is.lproj/Localizable.strings | Bin 138 -> 138 bytes .../it.lproj/Localizable.strings | Bin 131 -> 131 bytes .../ja.lproj/Localizable.strings | Bin 118 -> 118 bytes .../ko.lproj/Localizable.strings | Bin 110 -> 110 bytes .../nb.lproj/Localizable.strings | Bin 133 -> 133 bytes .../nl.lproj/Localizable.strings | Bin 131 -> 131 bytes .../pl.lproj/Localizable.strings | Bin 96 -> 96 bytes .../pt-BR.lproj/Localizable.strings | Bin 158 -> 158 bytes .../pt.lproj/Localizable.strings | Bin 156 -> 156 bytes .../ro.lproj/Localizable.strings | Bin 148 -> 148 bytes .../ru.lproj/Localizable.strings | Bin 166 -> 166 bytes .../sk.lproj/Localizable.strings | Bin 140 -> 140 bytes .../sq.lproj/Localizable.strings | Bin 134 -> 134 bytes .../sv.lproj/Localizable.strings | Bin 146 -> 146 bytes .../th.lproj/Localizable.strings | Bin 154 -> 154 bytes .../tr.lproj/Localizable.strings | Bin 170 -> 170 bytes .../zh-Hans.lproj/Localizable.strings | Bin 110 -> 110 bytes .../zh-Hant.lproj/Localizable.strings | Bin 112 -> 112 bytes 66 files changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings index 347d5dd9fa737130139de338c84ff7f3d985c576..5f91486462d0aeed02372e46d3d130fbde7e7fde 100644 GIT binary patch delta 1381 zcmZ9KZD?Cn7{_y8a+2J8lbqJI+O@Gaq-~no7t^k*txQduv}@@bZPJ%@YrM@pP49M_ z8bi;GM9S3d5!_Ue>K9>K#W|-a^#%Pf5X2V*9S#OEK?D&T6A`QDrf~y5T+TVq z^PKRyP!t zsB&1&8hNu(uGLj}Ueie)vfMple3-15QxR2_O)%`f@r$eY0c4T*_r+(`^i)q8GbI zwfv%%&&Lacxw%S565lnhEEAaJyXq#!iB3{x65}G8oK@09HZol^{h2(;nLBeTY!Fz+ zXU!^1$8)Q)l2)|LsgKJ_XLowZ`JFM6Scb2-yWu%rEW0B~Ewv=a6JvvLjj3=?juAzr zk$8b)iw&G+>fpS+0&X!=f%qsTC^E`wPMJ4vGsU}=)R82vrN2cr3Kt$5HkjS@w@r*$ zCLSEqQVVjAkugceoY>(@M6y|Z6-qo0`#VuD+K+;$SEWlE{bFf)ilPS8PBQ~20*~Q7 zP{cO(d@*ii2jEqy5}x#S-k(9uv?_?g^lPxmg&IpJi0V*>RyYPxgvwb3d+Egq$J-)7 zwWzg_3&CNh4`w`nKmym+kV4D?>eTO)6jd#Odei}X+%cvU)^H81qJSesDfgf-40}Tm zMt*ols3<#3E89@)fA`*XO*8j`;cA3)-coyjBE_IujKcd;Ekv9lctP}+6B=!#xBF0( zpcv{d@PyzCApk$2CRlY(Q}zbbgj(p(E#MLS5XNPoyN2Lb>A}iHnh8?+C~Y016Nl&; zpaz9eKfHp1a7OSs3>+%9ZUs@Qf)SUmXzhOkKIII;C)h_vYog9Q04+iUN*sN_;Q*X> zzFw?ur@1B+f)Bj+c~sh=(Q?heb<|?RRR)b>2eXUr>LDvsAFriv)C{$yCDifLe4nG4J%=0moP-OmoO)9g|9S@tZu!Cq!RW4~mt zvfG@@J;IG}DK5*caBJKdZj<|-yUzX2{lnMr1ALs<_!a(Tev`k*f6jlyf5#vH%kH;# z*-zVFv|q4av|qK~L@e^6a#V#9NJWe2DEbuLa&V3+$E3q_Jnigq#+;A360T#eXI!tj zZU~alBJ35C!V|(-VN^z)a9?rX@N{`5 lJ*sEj^M>cma?fwxcJBf2-&nxy_#u1}zlXoY*Ws5E`Cn+xe9r&? delta 1409 zcmZ8eOH3PA6rGtj^K6gD_CO*L1P((D7!y8)@Cl@;WU%>I2_eRO9Fn*b`(cI{k7W-8 znozQ7)QUtZx{Z`Yr7EGTDpHfGs8ORft*TZPi!2hgiz>8LD`nB2RHXh?De3drDoPh` z-ko>vJ@=e*S8G;lUYlln*QTp0mS0+l9@f%llwoy_oE)7|vsyZ-1hZK^3+Flab1}Je zWd3wY%gyB9Gis7FH#bidpCY|#{LDmvOsn%LBPQ<}RTqeo$g0zZlF@Sp{K+>!8+#7L zGG{fUHPsL9-^Ffrz{ zX~ob@m5~uD0{-Ev9F%rm*qA?)Ni9K?tA(4$2amZrco$XLCi|#>q@G=ZkJv?ci!0?K zk+mmo<$qf#Iuea!mlQRrYH6qz%9|pQr3{%GO6N${FxiY3)X?P*>x#OdYAN+}iYVs3 z*6zBWnFtd#LD@ux$)Yify?8$kG77x|xRrkEaTmnIYNX4hu!3tq5?^*7osG0^00(s0Q+#TJWxITc zm}FZh*_PA}{L_Br6P>i(k9{=JO^x*8AUzFm+3qbG&_T0J*at(7L-sso7d1MBd*Qk* z2ni`l?b=K2YJ>rcOydgh%bl)*hz8t2WrVOFUaA+(qtf?nCZ7 z?iX$wvB-hyQ71ZxdeI=tpjXfpw2nSU_t3BCcb?@%zMS972lx;_$6w_?;J@a75GI8= zAuC)GuCE9;gwKRc;VWTF*v2kghAS!KFkZrM;7{=;et;iYN-X16o3-8Qx6WE$w%)KE zwWVzDi%zjc%!rr8tKx=uPy9{%%Z}`&cGdp6eZziV@=9&eIq9PGrgU5SR{GiDbF@3o pI_^75oFQk_HS9X;y5PFwdL+A8xlV4C`{iTui}EM(H}F%5@-OA@dRG7d diff --git a/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings b/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings index 85386ae6913bdd25c2faf07f83aa68500706b5f4..bdddff10366f8b6e4f83fbf2d13cb6fe65170dc1 100644 GIT binary patch delta 1436 zcma))TTC2P7{_;J&d$#449hN*(&7TA)}n<37Z9mfT3Ff!kej=+%WYvj>>hRpmYH#9 zpu5&uebGcsYkMAAH8vVGnwSzH+9$O>_@;^12PHJ|^5nCPiLn9CEK4b^F}}>@ob&y^ z|Mx$?%l^y$S3-{nJ-vO8^$!dV`Gy}4g_THjWOQtNA~reIAAbT(*Cmp8rXiJ9XXi4_ z^O|lvnKiA2#gn;wCwWGKyCRBeWw4^4lsVdsES%D_d9o%~6NB3$DT6p?jdmrI&?36C zdiUf2PO1nF8J4PR=EyNTgBCIt@wiU;q9Hu5FXFM|N!5bGx@nPRDYt)6hiDP088n^2 z&{QpKDoWnK6Pt%&zpBjVz-cMhumTGKl92s7i&ZuTO?ky{R z(e=VIxmihIk$Xc3bs&|Vh};|xw% zaj&;%5E>|jp{})0^lB!~TAOns_I|=L)uaQs++#{M4^axK+WF5b%BD7ZL34AMxEGRd zxk_>lNEO?Xc05!v90~Q4>&)Jgkq|~nx}p?(cqBhZo1VW}Po9$Zl0TVIs0`DEqEDF2 zq8aO!FC~Z)b7VuTCvP)*9=H|aaXZ9VNKK?+x2{=Ov!a{MB3*`&$=kfNq(LPJfEMs5 zeKvzbpfv?5K#+d4gI4>kf-1Tbq(3d-2&i2;NfE2#H2tC zjnYm(Nb^6k#g1nuJ7hyRa0b((LE8psa|n)?93MEA9akOK9BYmnj=va|@iX;IGjoOc zi200dVSCsCc8qb$|Td?~-1_w$GO0Y1j-{LB11 z{Kx#){B?fam3N(Wy(?4+4+`VLY2lpkzHm+WLHJeliOphE%!!x8_rx{vcX8c))E#j@ w>n83`+`mXJ$uBiXgA$T7=>_RE=~L-9>87m6SUx4cD6hz0$*VH6LDoy)KPWY?i~s-t delta 1409 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 oa#QkX@Rlf(oy>Y3dJGs$G;%y)k0 z|NX!JTxq+~_R`4azW#y1r-l+ra(HAkH8#FyVlw?S&SY~WUnr`3OIlesHkkV?+o?=F zGd;6^cJ#o(Lut7QOrfbGsi=-d6a^RT(Vf^K1;d(2%PW$mX5bvjp$=pkwzCec)^aGX zYQzSUua}g5GVP4Ub2;RI;b~en(MNJBMgyj!8oE8wP4c*+Inc_^Muvw-*_a}!o}B8S zLCS(3gz1)k1K}yGYB-}2WUCIb6=lXGc?dQN4ZuwDXfC8 z_}I3|A>vdl9XUo7k(ML7h?6b4h^k1++_MwwS)whT-mThY)wY#tV?n;rmzL`ic#6QJ z(A7GeAR5U!X<1&BhD=-_$k4mSck4E>oLZllYXgpLa(fk1iZz390jv7)%S)q^wX=|2 zYa=ZqSm2k#F+p1TKayJNA`{7>Ubw|J1V@Gl&e0X6s$-sOIl;EVIZp%p!H%{lgH*wy zMwGK~-npkq*@3gAw7iM@I zH^ObH1>O(GeQv6VrosJUy_kBk7Auv&zUVsMpuuy?4h5Er!y|;&S%$ovRyM*X!8$k` zS&CNbfpxnrU}0Xb3jK znA8k!N=Tx!+(G49^uL3*BlXml?bMbw_%%=uv2YxorC!X5n<=lCQ7NOuAj)!|^32~% z!R5ktOSVEdG*L$b)A6qtFn*{y8iJnTBgbtZH48Ms`f+ItKn>_=QD_c+(brMLs!i`=W+8E%gIl)K8^muld{j@BF{QD&Yx15maGXI3-*VE(%`=*Mu9wU!G=9m*<4% zWzTufMbAyo9WUn%dzX1*-sil}d*AS$^WN|+^~HRBKF4>|cg%m$|Dk_j$)93}xJm35 zUlZrWFU4=9`=m9}qtav2_ksFAA#gG<7gz}V5|o1LgPnuHYr&sFO`$CzE3^>$F?2T^ o2xr5uhd&5^7QQO4mXFBqMNUV~Mm~>Rj}Am>vG;s5{u delta 1462 zcmZuw4QLxx9DnzjG|45G)Y8qQ>us~^=4{=j*jWeCj}50?*X5&0nzivIc}Z@)++}x{ zuHA=o2qLV4-QR(T6K7?p44n=YlsQqHAUGU;!B|D72nrJ!s4!*oT~ZZ94&J?c@80kK z`~CjEcfRv{=M%{xY1{DjksZ-kJTaO~rN{a+JI5!o58_*+!HdVc(Y&K29g#B#WrmP$qspT})Dm&{{Tq51w-O0tJ zct6fhCI?9o*EBmTH^=Z4Q3@t5+Dg^1Z1|nO6*e&YxUAd?4A**hED;^b%E2wf&e!2A z)g~6jOK&cywlYGGXefp-nnEhlQ3)xiO20~oz(!%LIV;PHb?fMgq4&ZKt`jb?w*>#) zp$zLgX*P1_;(TXR&6kw{L$`@;$DJ}016a=!O|cq!Gl^;e+eC4UfCF53Je{VKQx}9NTmnANup8rizrryoHDlv&(L}RFiO!Ozpqsdgv#(Dvp1?ZAGpi|DA zo^vf{V0)+=p7Gt>Lc#h>Tb-o+%MonSTC}h5Y#;(}$v<+29D%PrxBC>DoEj>k-mKgM zuZpb@^{-%tpxqS);ynOANImdrAQ7hiY%$CVwkZvpGT*9~v1S``0FA;go=7JRT|o*2Z+BHmXh9dwx(#p1UtV(Foh^ePH>voa8iSFcuXokEA0)bAr9^63* zwn4ktam3ZKwu1Uljy@(LRCk$)I3Xf>S0hE>38dkIFU+i31d<`@YgwUE zgc`EY9`rpuuQ>=4b#gT64FV8xt%s8Dj;2J+G0Kp;VKrrN#DDKiyU-0vZ#;}Y2BS_3Zz+u?%086K8<_!vzQ zwE4rHbl=}r!L_CyI4RzCFq3qOn;Nl*KH8WgH#&@tqIvWNdJlbp7SLt%6N8vl%yH%& z<}C9Wv%vhu4zrkjlzo{!!+yhFVXtxwCvmH}ySRI}e(pZ5%00#%<>t9_+TV#164n91}J1 zkodUxv^X!Gb1iodx~uM4_i^``rV~xydcvMJJy*Q_-jsL7JL^5}{lNQ)_bcy$FXcPx zJLP*{S}JXj4oOc+^U~*jmtXR0{zLwYf$;zYuE~6`D_9I33^tz#eiXbI3Wi!j>q5Pu N-JxTlm*ACV+u9A?IyfkM=H z@MKUUzC$HVnzSayXf)9n6EC(+deX#5y|koFIrPw^m-^SFY12B(Zlu-(ZtuOBeE-jb z&x4n`n_B=B4!6omTYKJ-P5B>p6cl!L6_<4P^p^GYhmM9LRn=N_pmuO5HoSXebZmTY zeBb_KWFql_-b5#psYA`|3Brw0&G1aBX(Z_mwGxje?ettcP!@Geo9I->jo7hWZx609 zbv$X9)MXAV&C~kmtT)u6>)2zqSXnaGOLc?be#bLx%N=Z^lVsZT*ahii{y>;c*)ufO zt{WZ>vER_i?R_>TGsG~-gh{b$c+}OjIfss9|HM6pb)1c(n$gW!ay*?AGu-2AGOT1n zL&IQbdcri^R6J0aJNfUcQvHu(krYX1?lhgY(<4zw_l>Q>#xmHrk4#bavs}w>V@qfY zdn!v(xY1y4DglgBSBVUT6zwXBr&XouZs)Evpm?%ijD^`TY|yM zD6e=8(I?FyMxx;!_7lH#(_okq-G9*{WQO`#RY0F};qQ8OUERw1Mp8(X)q4Qt9D%L>l*^q*>WSFYu^K_lzdP_PD* ztHH0J+;>p+Zs^0oEtxj3o+gvt+Y$UP`ZMc9&netIcayur-RHjIe&k+pfAWB@;OqH) z{4M?-{}Aj49iSJ)z$tJMEP^k!an$s&z;!MvGbIev|Dl?5e-D7tp zB%mz5i0mpD3t{&~@Bl@8P|*h!uLpe)6hssegQDPruz?8bgShS-G46WcgU?0%^?(0Y z6W$5$zKv17u}N%}71+|+wzg>9jP)Bfwr}!xbe3!m1a;rM@=!Pu?W)>RT~pirQ%_xQ zU+mYVxPMtZv4X4`Xh^1hS<}^SSX+@Fr%7)xg&o66qE^ST9kyNYv6woiI?_4VZyIh& zZ^H4dkrpz52TdCD%nITmf)WlMpeSRzluf9M*kAGv-phF4tqg_&?J-Yr8=>)3F4HwA zaqH{ryIKnmrO06n{LyNs>P~sFbmBRjKO< z81WQpwk=95s^A5 z6Z6dU+XxR~!^Hh2DVQ0(;wy~=2u@_%=zcOxr^YILhHFX%vs9U#g(d8by5OVe*Hd_t$yaPthYdIennyxs|1VLJJF|1s`ymGhw0fi`A21Pcs52LIqoWVj~nBjaxZv}U&tTgFY;ITyZjjcTJQ^4*d?40E(uSBzlE28 z2SuO;EC;JW6Icf_U^h4bj({8BHW&x5L|)Xyx#B#rMcg2!#XrRh;zRM76qVAFBkhq6 zODCo4(oN~UG$y^2gEM5WTqZA)8|2M$Qr@dTrBYe0bSTG^3(8{%;16&mY=a?);db~t qJOgjS2k^P7sXtE<62xB*7j@1wQJff?J2u64gCvh@p<6@ diff --git a/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-CA.lproj/Localizable.strings index 95944c6691481be60f859ec03a994c95abf0ab54..22c1d07d620779f10c4d8910417d27850a327fd4 100644 GIT binary patch delta 1156 zcmaiyTWB0r7{_PMnai2kTy{4Xx7#e9H8ElvqHVkp3O3!Orfn|k?rf4xvRNlPC%Z!@ zJLAqIBxor?+E$+gQTw7rL8SWNt9dEX>g>g!#>>2%Ip4?m z&j0`WpUaWUkvESdh7cAGBxEu?5;)l0^4w@BeCY6z&av@{=w$NwR9cHal$o0DoypG5 z?Visqb!PewC6i)or(bY~K}$BK4kJs*r_9Lv@X zX3#ygOXz!qbjxp8KgI-PVp(=NNy!)!@ku{<~{ zz0@+5V$1d_%Z?bPN0acNx(2O*j*zCUJ8Z7rqhn_ID13yvU_(*nTkBWSm4<}bF<*&U zF825LPbXIvEz>RKgW<-XU#|)Do4IsJuT=M}Qn4#@8OQML)JA8k^XY`X%;28f3qL45 z@D=WYoD%8_9b{giR6XUI9&`OM^9j9NU{>S8VbfhUT~|x`5TF_FgheR=w(zJtm1Y(z zcn~LTO>>9JE~|KT8#;Of5Fhic$ZA%rtW&+Ho8^-qcZ3(}lc`(RnGaI<5;M1& delta 1133 zcma))No*5W9L8tn%^spSK{T69UN#ay2|Gd%M6;G9F~J^hB#!%HKieb5GiK&FN+b~C zQX#>C@I;qODxjyT2a1$SP@x>cfdiKoR8@^c7xjPy2c)*DDxe-4g-tByr}_Th@B7Vs z-F)5I15viOuYW+4Ijt8^I*3AqYv~A0#$2cGTQd!jz87)j2x|7xV zQ1VD*0H;yGAPLXPAezE3Wur8KdCMX6AATMELOjmaQWn&<1Ve%0gr|B4lVsM-baaB9 z?(Xi`U`i)&)cxRJrIGds;gt!G=h=x;5VXvl^eO0|t#VuS^B0uCrI$I$OE;=g*LXlr zW?{c&5^NI94V>slW)d6FDPxR<@+m|xbouCU(Ac`nhh09+?H>-{oHd0*nobOy@U+u! zL6f)%rga0){!-UCUQR6bFE)>l;FONw!939|)1lLRs~j27ot*AC6au(09K;4rlCg4R z>1?z&m4XCioQVJ?1>1zgDj{m4MH>1a-&9$w?NWt$^Lb;2&Pna`GFVHWaBJul;8mji zMSzTD&(Le^H2sRJ;WTabsgK@PKTubo>;CXdJVnGUu|>2|o>J>jYG zTM$hl-9VEDE_;~0?rV$$FiI6~YkoXUmZvGJzah1{>TBL*nSLrazmG=mYZ?=tmeT)Y znV9~{H*~&a^KBv*tr(Tz8FYo{$>1AWZ>Bn0dzHP;{=hD=e{+5gai4Hs zbKi0IxCh)Lz=BH93ATe>pbzW?d2kAx2baK2a2q@XfAK7@^7Z^`et_T4=lIY01^#FL zcOfd|1Y0;GTok?$7KK~FU13RhB!;TQTG1=66MMuFaZ;QX=cIaRi=;_8X;Jz~dMr1~ zTjiLXmJ9Mp`LcXX{!@OUtWX-1-AY_Blyl0wa!=*d7WFfALH$v^UjZtrD%$9(74Ux` ChjaD- diff --git a/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings index f36ad1be5ce36806e3c6b901bb0f5ca93fd6b0a8..2924e41731777dc1c47080afa5a3f84f47bdb923 100644 GIT binary patch delta 1152 zcmaKqU2GIZ0LOP{WFxBovfbU> zZktvl@JdM0G6`z>qTvx~l$bu4D4@RSg9J#R(F9)`;|n}MYQ(({TQv>)GCLpn|Nry* z&uY_Z(}yRbodBYvQAO?Qu6nDw=Ivvf>W=p`G@j_~3-=GiPR0}4Ue=R?Z9~JUk-h2B z%&Awi2M@hN$8xV39c(;5arj6!6yft~a)C4n9YX5N!N0y!3=VM zxQ^%VBRegFjGGqoxC@)B^nNzu4|f^{@wp>K8Z&*&Few>uebceMp)NK~r!1e($!BT? z<80EIW~pw&^hu0A#%H$oJA_VC)1qS*BcACqPuFK%mM)(py{3Jde*;?hd5lME%K^w# zCD2H3kju35?d|PDv8gf3^d_>Qy2@X$UWyxRW)c&$P@J+ycRL#YdoMyZ`+R>h>t^d?Qu(_;Y!UJbYMlX5e6(C)Uu1hZJq z&xS%3cjD4KBaYpXK5l!g;Fm8#!7dKO2!8`9T1qd>5}K!`J%6jA?o`=_c;%$o5aD-V z6aN5JHLObpu0_d2GTzI76}MCm#Thk%6+J5#<$}rJmL4s_kzPLw> z0v-3)GU-QY?lixo?%`L(=Dlllx{Gv1<7RGxL>=2_wm(=-mF#p~D|iW|SHf4c)?)Ac zycVwcZ`VP`XZce+%^yjd`ArZmmd5wVtt1Hk!WuS)Uy~`@SLm++zkv5g)}d^~`DT{@54UqK;3lZTMd6z8rLZL26n+t& z2+u?ywupPggW`4ZEAd-!2pj`_AO+qBm%u0BGq41H06&9e@E0WT2poVp=)xIz7JdvD z;Y0WcK8DZH4%CBmWTF|gfELk>bLdBO7d=3$(l)6>x-5MpU6*c1%hD4W$hC5#+#Zn_F$uWRvdBW_QhHJ=rH-&aqFaV~;* zb1I!2%Ezh?QC5h=0*lcgRLc#R7Q>_E2Uk!nKd5J`W9tJV8SFay`EAh7Z%8e7-Go-6 zo6}kyZ_u^QiKJDS#eJ^BsKbo1+*BWN3e?6yCDnM^GYO-(9G9N}wL3TB(sEp*?0zgs zOYQ(670>G^4Cy1Zw7mK z4{GCQw4HnzcD@5z$|&vtXv)XpY0q|vNlpBCMDelkJ7bl1C;A)scDYou_!caKzrf$JDC_bLxk2ui2j!Cdu6$9xF8`rqm6GBsZzyM! zPn2(z@0DxHigHs;RjF~cPTj3`tH;!$`lbf8W^JD~qJ5-Y)P92stbxzKL70OSo`i3~ p&*3t>0asBK+Jl}&CVB;3K-bVMeNI2Azo(zmztgYktNiDO@V|NJgscDn diff --git a/WordPress/WordPressShareExtension/es.lproj/Localizable.strings b/WordPress/WordPressShareExtension/es.lproj/Localizable.strings index b6c68fc571362abcce63f0a3450b65b13872e124..56b313e3efc088637e90b2215f8a4d49cd7b0e61 100644 GIT binary patch delta 1514 zcmYLJTWl0n7@phC?(FO?L!m8~Eu2bOq++2GqbVT@?SeI>E#280y$q*2XLpaCof&3k zmsUXZ#TVm+9u?6T<-uDNj9_>}jNy%#C?-Zh6O1wOLGeM-NKDW(vn$TanK?7(`@h@n zB3J}3_d+0)fQyL26R#0qtFOz%TFhG5M0uw}aWAykHS!y_s7$nx9-s#y(GOzYSK;}nbhEX;2h zwE%2DY`|Fq0T+A7Rn-L>O*TIUBiNiH7r7+aDTHSG_XE!K<#eVB9se0Qj^#{dZJjC%z>EF_FbZpkJjp~B?$|rZuOdzlB zn833F2u)eO2YIEc4-t^0m{Wt$EFq&ceF(cX?7C_oEY7bDYs!iYY#=ft45V@yWT29# zDN2hPuwexO%N&>-HeKX+O`VY2L^!s~*BULV&H{iHh|Lq9x3|qSX92erd+d-zZtdC!DeE%zS*$~HGqQ$Fl5ROE6*IU}#}u1P z$tiL>p6sT{j@c#JE93$lff{X^2kPg~ z#oE}dnzEV}t_m0Y6zOT8W7oD!Ov^`mhiz+mx8*p&Ap@2Wxh`)dd&MrP5ad>Z4!IoP zOty)g3cto!m>FmOIE7;m+>4K)T74 zsCa{#U@|&mfmCq_xfGj{C318Jc~9&ik=TxKE^VL+cF2gdxt&(O*_6B7G-X>bZ8%F6!)w(Noc z83W|k@J1y+f{<@wes3K*I;B{bvgC?5O`JqKiAO$;mziUuav*6>q@%f#YoS{r zCoU5^#H2VZ=EQ@dE50nA7cYu8#5>^?;q~EH!*7MpMlMCJM{Y!JN^7M)X+Rp34Cxu^ z73l-%kLdd7a8!#nqR&T9Mz2Pf{w=m5c5f^jGh!!Vr(&mLOY!~j hYN9jIlfVf(@qXgV#4m}POmJ~*b7h`tt*s@o^e@7T<3a!c delta 1458 zcmZ8gYitxn9G`vM-tF$)_GrO^9PJ=bUV@bv!ox4LJp@y(rMJBY<$6x<=B{J+c9+?` zqZJT8sR_miBTC{UB1Vj8d=S3~it+UUqaPres1OxRG=@h)BAA$nb9b#K?w6UJf9Ci9 zJ^phD9)eG$`y<;D1B2U#lICz~b2^jl*)g&+H=2I{jTMTxR30Y}PFNM&ad%PAuhw=? zPCc||@4jq5u_s^xRd6mjjwrFqFixpM*VCV0FwQ-gy1oMP*}A}vwtO@?-M4`b9eV@2B`swa#Kp7zt8j*m zN>+^BGriwAL<-}u*Rg$U`)0k(XfLu0*n(bD@5r!QL_UUfBiKG^{-S@4z;z?cx~|j^ zt~fP3Y!ctX`REe%j?}5#4NJtr2QSQ>zq5(RP2zfT+i;N}IN}_c|`&;Z{?@BQ>)5`^v9XiE66eig#VykGH2X8Ha|4U`sk*rClASxqbvxR|qt4wps z#Uop74^zLvCe>8K!%sL6)ey1Jn1x{@uY+e6tW6JLROD>T1fJx<&q_FzG0LOomSWpN z1#VDlV}>BIV8N-li28)G`D!P-tS^ma8aWmaO{E;GhUv(lL;2+r_rzi6w8iX3IL8(S ztL!ynDMQ+vmeKlvAj-jgii(I?;U#Q5^49J7={Q&s zWkPd34y6q_+$(lk=~~#<6WjEjHq}@!8ng zcoT?PPMx@2#Wja*kF-P6B(9T>wlrsAhAQS$R)05~!I@A@%||9BN6`ds=-x+?u43$iB9lRM--`F^<~ACcdezmtCs zWCE4Iej0cp@N(ddz-NK8fo}pA1J{)nrCo_B-AY`^C`ILf^0e}ta$NZ$*cE&s_;K*t z;BTQw=yd43s;K>HRXwX-Qg3RywpmMPX|1R|ubtA)X}{{T^$vZDKA`9HNAzd(WBPgh z`*0}S8}`C4g-=F4ja-S`H0BsPx((NO%y`0h(Kv2=V*FxU28~Y?nk#sCdYxX38~*@^ CQ`NZu diff --git a/WordPress/WordPressShareExtension/fr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/fr.lproj/Localizable.strings index 3b5834edb60853520659a70863b96d74ccbb448c..88d06fce9b40bd849ef019b1830816bc2978b075 100644 GIT binary patch delta 1448 zcmYL|eQXnD9LMjiFKe&uwcQxS&OI;~L4>6c5ta}s<3-FE*xuT8WvjQ|v+jZG-El8- zvm-Mx>K`Ve{7eK*RQ^$;LLwnV6A@!fj4@HrgaDC5e2F0>{sS0MBR;(@m`g6t>+kpZ z{(j%*(yB|VUMjDTKc36W!-e8VX|%j=Y`pS>GEr6WWNnJJ!?~DssT^buAj(ja8zcJ*Gnp-7ap!lZvZ3(91UBg&eLM)3~%CNLg z?6{VW9K#Dyk>WeBQ=Mvt@E~c-eFKVK#o9vlZN#n<+m=0H5&phFMM~zCX$<2+e{Ug= zHC%NnlC*$^Or?gAq4$?}={B~UmQICR2^`zi)EX+u)+|zL3ejKwtRper%7yHfjEaQd z0^bRTg>c9JA!$jQA@jqzLAc7MBE=k5RJtO29A~+nBWy2x;7h?D>`0Himl7;6BGpnR zoqJ63R;7BNBCVjd==Nv4X2WrI$?AJW+}Y2J|Tr}Nd& z6Nv|ld6!Hpx&wu11~Q3Vur0C_-tu=sBk)_A%5;c@E!z0qhDs(0wve_`u^dv>;JWlD zY)LL|rwz=zrfHFSa~C6xU>*8m2HU=nv^&@`5Vqi2d{da7rz){)Ar->nhFE#Xs3X<& z?itc%s;>)fhbn9z9qojwl!Eh-5tdY`~JS~YvD^&GrW-vPaFk?Y3+y|*-H<+OsyOG}OgI}Uq z_%hLvu1G1*R8=n>QmHn@YbDJLcf*|&@j@g6$0BPW6M94}XH^T^HbzA}0c_jD@Mf|@ zEN|B>TqCwaDPca0AsVQ&X_}@3Qf+bYCEKCD?GANM6L>N#K_So+pzql+TnpyJ2HQi+ zuw$OS&z2utgmsJBgA~0&V5`(L207?riwQC>Fz+)TGG~}`%n!^h<_^oTY4!nj9eaX3 z&3?+Q=N{#Db0uz$dyzZF9p}z)UvTHSE8M?4;T&Wuo$_7r-STt(n17K!?Vt6}`(N?D z`(g1g&pmu*>RcW$?r&dv;X zX4aNRnwa=V^oR8eMiUbsU_ulVB@&IV>JKsT2hkXm7)Vr1h(t*w0ZlOC-ED)>UvuX^ z&UeoF&Uc~nLg%xE?GL9j*}1xImE>d z!^>~eiHr8KCkB_{G_J-G&g3c_;%xR;;V^9U?MoC@b-r!`9a-ikxGk=Li^AQpe@__0 z#z|giTQ|QRNt5z8>bFc6n{KvVW`DnCma&1HIlYBJTi0BS>PEm(adF2TBXHe_Y+ct- z8dt3v9?TNgz(sW#yd$>DJ!p&=c;@25#Upcw%p|5~bT`(ChW6Mlu}lXhrH(*uD{-pC zaR7;E%}@p#xa=0@ARA?eQ@V~^t>WxYW7nf5a;=8S>|Q1UZb|K7M!PO-FlF1u6y$|v z@V3|qe+$duwAi*_xSt8ASab?L;V0pQ5Eru9ncGS9zpl(XlF!m9q*XLx!ct#rcQ!j^ zw}D;XFy`ZY6~T$4*F<;nW;7vo@YGP0y&;doHvA{!*4E3)@VJE5varrpzRlux~vwlrh=NO6-H3N*i30 z?~9B!-Zm^?iGjEL9ipYKW=3_vfFi@GXtzJNqheYVL%TB4T_22JID^AnnRD5ASZqK{ z_D7lH8PB#Usn&TgFIg90y}t*JD&6o|3iw2Z`fD$QQtGZ*LQ;sM%!t26)VH`diJ{ReX^hJguk4H{Nmqk}cUs7AuL+ax1)T^-{H@tzxa>o$hn7a@WaI?Ze8e5xI;egtA?&Va?P@IIP4{?G1`aVn%W(A_rO%x}m5< z#k+9ANSTl0pswO>O(!Xu;2)C0O=Qq)uUA!UQUjG09y>@>O~K6xQ#0bJw!NfV>DNtK z$)3zR93p+j0O{DLY9>AeTJ)|kSkYu)WkAt%<+x68N;63+93D!L&TKJm)Z)E#oGYbu zf}<-U`?D0dKSy<>5#Y3Vth&0o?NI-5T}$;uk1LGKN-iSVM|2hycdWW?Xe_mNYFgmpv0p@&rRQ} zrTVl~Dr_(2TtZ)yis;KCqHoEibVPcrAc|(t6q@XXR~jv&duWZpbkJY_WFMM@XcaosSuqBq zC3Mr$IRPD(APlpUvyfh(jgBjUD3r{i6%F07`)hrd-@f=}+ONG`9)GX4FKS*oDVtU10l&?YUB6Q9Cr|%;dp%dO__F?GV zPBp1u>j|Lv5xQrfa$ytUfU~4L282^!$^uhuJ<)7n&9c^?qu1T_bV977F>jkh;BeO7 zb7s_C6ZoG;55^mE6c`{GOax^32yZQTa+yH4s*!E>mj z*Zg%Jbz^-)-m&qEfG>rVbv`p>fH{bHe5 zDn`T;V!!yhI4)+yUmT*N&e87Zb7E(ev)1*5>xfHnnXVhIjO!0K;|{u?bGN#C+&83v z)FH*CH>LB^$I_?Ls%M*L*z<=qk_yURAlA<@-+FP6AM!}ohO?YrQ+vPdLi*2`Tm$hI^N@x>Ip-->{M@R}x$lxt0aCn`* zT^Kiv#kn3jOFJ9kIjM#jX?4MW6=djDVp7Ta#dvS4ojAxE(~ip>H<}-_ztMCOJjHSg zdiS(vEYsyIZv+gHNW}{yc;1L;UROse?@jmd_NeWqc-*LjuSmJ_D(kjWe0XMMWbXnZ znuL1xy~QotWVAK@spwF4vKEURZm5CX*V3m{bWD$y)eFs)DacNua9{1tiniLAWdqz&UA| z6pao)FJ=GR%AzB&Xm*g9Nz-=VWm;SljSgn`o}EsPXI+m?$ATJMesh|ceWsl<52QHr z_BDK^bYo{LH!WlnZRP{6O&`-)fzc`Yh~C0@n$D&0n8eFCox;Kd-fq!(EIe>vR4D@H zqc9f;f2^*A&on>06Qb1?eMsl%JvwXA8}w%krw(D?9QMu8dBnJb>Faa`9tXF;-Oz66 z^<5%qV--wj>kDoAi-$hpy&T7Q4xC^F^Y^iPn%>6#hj`wjH=!X^3A@54K*jT#)&_^v z1X+Q&C-n%N*TV1-VqY{~@-4l;s29UlwFu4!>&qySzv zG%E$bjTLZ3SsPB`s|k9O&Iq;n54QLsNVyyxSOZCIg_>BXrj0T$wLQ2z$T4-p(>w)c zpb&mnipmZx8G2q4Ul?^t^qsV5kYyAaG=H zojU0Ha!7{Ck0-j0)4jtZ-kL7X`6O{9OD&ydqu~XT?9IX33P^ zlfICCl7MLbh3tQAe%@7*+DYoeR7J7ke|pk@*8<7i?S*g%VqL5d6(QPpO(Lu zZ_5v87wx54`T;#lFVL%W>^S~Av-F7)R*IAorB2zQaK%+VQO+t~Dx=CXUz6{-e}jLg z-}3kS&jhLiO@U8UL9J7dsl)0S^^!Uk4B{Fh!K&a;@O<#w;G|Zltz6}%s3jB+w}$(}?}on%|6%wHW>g!#twxV=&bSI=1?*qA(#=!= diff --git a/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings index d480d390f19140f092b74f225d625ec6b9e8d25c..d0d143ce6ae50cdfc8c3e453878aee7d3a82f346 100644 GIT binary patch delta 1322 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 delta 1285 zcmbtSU1%Id9G~6UkJ&v-FRhYZle1IPkEA8h3VzTQIG)e0=)2e@<$0J3HZlP= zK9Wo&dUC;r1Juvg;5^f(9>*Jq6-*!ZSD(D7huE?{*brP9Q3Jw`y_emEJJ|`e?VcM> zrgpQeHnSVL+CH2x^CcX0Y@gb`QH2|g5<5>V?A3J*r78vDQ(P6yj=`puRl&3>*r@VP zCurH3rYXbpEt(5%XBXfWb_*%&sIsYPxQ@rI;H*b_X~878ui~4I?XelD1!cNSuWWiA z!w^4~PEw2J{h>NwZD=-9C}5uyz0m~qr(7HRPEDZE&$X}xeG3cgs*;LSD%LDpR=2Yc zU>jQ&cd(1FS<6N__oCy@vQLB=_KvtgG>nsX!}vbqS6mq|+*wSD#I)H~In-_#vlTjY z$o8n~*QliHQh2^`2a{=HT4cX|QK}mtzYsBe{zv@%H7+XRyxfcnIrenT%#WhY7erQ`sn{DLF+$C@GtpqT-8<2znAxhb*PPc9z?-S zQ2vkcKQsYizyecTIsqOB@WB$Oc3}_uR1foLwNt3&-bnurlFcid)fIo(b-k6H*Y;ov zdbxu|4#aD?c1Xv~n%~oa@==p~pA(J%1m?kMa1LAsSHX8+5&Q^#5rD8mcw4w4EC}BU zi^3f-E)wx&@m=v_@dxpycpD0E9c+b9!hNt49)uP6Dm)F(!E5kqcnkh636d^_q=%(0 z>9ACm&PX3g-%CHqS-E^%cIDUPv-11$7xGu~b$L;~t*loXm1bp^vR_FmCFPj%lJcf< zRo$niR8u{pUO*aZMiE5O40;QlM<1fk(GBz~`b|UHdhIE#PaD=IwAZz>+GpA~+8_F6 iJ*F4+SM)yv4T0T(NMJB9A9y41Uf@em{n)h!n*IWJ#-Qr} diff --git a/WordPress/WordPressShareExtension/id.lproj/Localizable.strings b/WordPress/WordPressShareExtension/id.lproj/Localizable.strings index 19915b05492592c155b589130630a6dbb9384d97..80fb3b79532500e1d5fcfcef65755c9879083d0c 100644 GIT binary patch delta 1408 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 delta 1471 zcmb`GTWB0r7{|}d*_oZ0P3)!>+NMc+YI@l!iIzxHQ&4lIt;sg-&R)`7)|1_{o0FZL z+0LAeSsJPMAfgqU9ttA9)D#8r!3v6ap?Oiz2N6o6NCTn}P^iR+A}G|en{BG`@+1Sp zxy<){|L_0(X0dUx@mwr?{E>md@QI;EBT+LJPb7y=j*O0tryj!-=?vMQJ&>EEty6ic zU^~TAu6LMqmZl${d8j-*K~7|=7&?k%|oRLi+Yol^CHfX zwzjrJ?a1uL>3pJ>WO2!2so<6c;w(c&$79H`JNbjgF29JXuD?)E^OZp31JPJy zAQf!rCoEk}>rqBLk$1Q+Lm3(pp%#b&45k4EHpl@4iei@ogdbK;Zb=1$wfeWK+=To2 zb$L(2?VDRQTeYV9YwOVnO;4g8$7aN4W~Iz{54O|9Lf%^6Be7xzGlD9H@F(DomUTl& z#SpX7Upztz&NPXclvyMd+{-V+UFt!Ur52gHzHR5|T1H`(=x1z@WGF@_ii|q8mkJ_Y zuW#j_LtRVsQm;Tgk0Xfgi${q?(rjccbG3T1E0aMC=e+Rm(7E%PV+GyIagSvJkNo6Ts$aB7AOn{FB59Hutk zt!!^K&2o{99J4**vZ{*sS~G%yu!Hb4rWT&C2&#^2?n-kg5g|AuCToVt3>yvOtk6m9 z9JRc4N1=(sf8wR9&eEO9}JlpL5Kx@0xK0%mO);if&?%GWW}nj z@)STfaK%9xFhLIz7t3PriKx>5idSdN%{=G=C9onm#o~>sQfxr8pnttE-T)kbNo(e( z^p1n;epNw>#i_?I6@gPCmn#%6i>zWD7t~S9`Wtrjf5DEwqqa!vtSRPzlgAa%xS_Rd z+W=I>#v4K|7Ep!wy;{qkXwnk>mXpty+*>d;OoBdPqi9Ol=m=pe{AIP#Uz-|7fe`;) zZw^s#R0w7@+bciu%D*9WhJdj6)~kN2f#<*lFc01a3*Z`90^fk|B_QpSE=uo9SEQ@b zlJtulma+V_{JQ+1{Iz^TUWF2@haq?f9)aEPC@jKf-~~7jKZc*dAK=eE$!GYs`*!+z zeaC$T-;2KYd|&y#Rgy|Uah0>mE6N*Zl#i58l|^MqSyeZwTh%7@fZCxRQHC{75F}^c?3}geR17`!T20jQ}3#`^Db&YjW2R~Gg{s73u&R+lk diff --git a/WordPress/WordPressShareExtension/it.lproj/Localizable.strings b/WordPress/WordPressShareExtension/it.lproj/Localizable.strings index 0dffb1beff7a28de5a44d2dcbee538513416b9e9..87e86b20eef14ea84f94baaa489f5f2019212f5f 100644 GIT binary patch delta 1511 zcmYL|U2GIp6vuZyb~-z=TL!SDpY)b~K{1tLP}78j(xL*Tt-G_`UE1C8cII|_>Fmrf zGrP0}?32D26u3rF5)+;UB2^m`gYe*k(U|xZ6qJO77=1C(NKA|gdS`Zlry$EM@1I-oZ@sS0yWZ65Mqps(dE5{a> zmXBvooP0@B+KI!r52jV@n@Ck*(aVlN9~EtPNmE+Vj%h;!8DJ1Nw&y<%dQ1b%VH0`8 z;hJQ194-3UVZ#7Ev7_yc`9sLS5KK5ewk<` zWG2hACidnvWkcueZd4=sI@9^E^Tdr+) zA&LC5YXRR5OK8gaXOXYZ2PHz0wC2nRv~*2n1{_#Kz_x~__gfxv{py^M?ISGH9?UA`RCfu$BE;62>kS(U)n34>j-e@l ze8X)buk&)lqmtCppkykY93!`x=0qlmpg|*QsN*Wzb(ZNR7o*MOZzkKNPErLmjlgi> zoc~ahx)jg*IB=Q_ggX#TNg?e^c>Lgc$9%e^iE*Xm}iClnHUr>HhATs zLP!+$bR3G)lzy7OgF_4k~=~t`CfQ}oJ;H?7sVgyrYLRL zg2YU0iD&oIR>*g4O&O?-BF3twX-Wr;bdU+DaV1lemI;`mtB8n^S0nF5u0+-%*CIbh z?nVA#Sf-8XXLd4|m=Bpx*(cfO*+XoOJ;A=lzRg}>*Vxb4ui0DdeGYJYxCu_@9Bz?2 z$(`dab2qs=++W;(d^dl9S9#1Y^5^->{3`z?{~iA$|8KN2x-t|!8+|K!DY_cH6}>00 z!aAW*XcI<-gTjQ66PATHg$u%E;Va=M;a9Ou>=vI9-xWU=uZmxYzlrx_iCAN7Pi#7d zW5;5vvD*?WZIkv&d1+2ErBl-T(p~9yxn6FU56DMkS3WPV$~Wad<4y6-cwamjUx}|N ZiBpL;5^ITTi9hN$)NifdL7rL%{s&w{^Hu-= delta 1400 zcmZ8fTWl0n7@nCkGwjanz(O$;dOL-d0;W}zAOeY&i?O6PcW1l1^s*jiPq&B8&I~iN zYs*CvjhDnrXnrv!7!ySkV@MPX8a0A15<{X7UNA8zyX?5$0Y3;U)kkJ# z4<0&vFLSVf0;Xo zHJ#l>CrQN)3(1BwsZw0@$z+HBPA`9^_e_{)1fe2NB364+_u;B5pl0adLvbUj-OxE|-(6Q@mg`21gE=wIt|C?}z zwMkxT-c&!2rIvohWk`S%h&tBH*bkeL1TQKls4g%+72%mt7BY^=etz`M-%rnnmwyp|ZiLHXX+I}?GPdP1a^4@gCvS<*nsw>2VXN2RzN#U&UiSUguFZ?L{EDGXU z@m297@x1tzI4}Mw4N63MQhH1JSo&W2MY@heWT16uGunoBpa+qMo<_&fNpt~yfqq4Q z$fB&tE9F*sm%K+V%P+|v%HPRXl$>(3toX{a%4^Cg77(LEWv6 zs{2(?Usm5xPpe-q5@VZVx!8f&6R}hA$KxmBpJ_2*7$F$Sh``UT!f_6i1 z(0lalx~1FtoPI)oQ$MR;)~_T`LQkwuj3u5*yq);KXfyhZf#rs6Ja4>cd~SSc{9s&N Nj23q+?uN}v@IUgR(q#Yu diff --git a/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings index 94c89d3f43137f9d0f562271507215ab027e029d..1f0ebe86263c24e64d262c54350d97f8ec59b48b 100644 GIT binary patch delta 1500 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 ACIA2c literal 3214 zcmd^AU2NM_6uyr0<0OoE8)HB0=We6j*s{<98)X~xf9$7gL*g{e+SS~~x3OEt*VxzX zG9e)(gpk;40f{G=5E9xeFQ5s81P?qQ1Ogd4V!Pe0SyC3N@n_Vpi^o;`8$)aijUgG0IJ z@&%>1dAKxEK07*gZd`qyOjO`~jZPk{>c-TxSvzF04*SRpj>|i{$^(WqjR#4Mo-63Y zF{~=?cO2%Z^4fN6GnZq}HW|^Vc6I<3*w1FOs=PkuO#lYnKW~#Ng@>iaBc+E_rb~Tv zl6WRpy))7_S6FhA(HEipQGZz#1&YyyKI5>5_%sdB^N`-kA#~Pz9 zwiw5{AJL{x&2U|VS(vj%k+?=RgZTGcH(cx*oMy42Q(S;6+^y9N3wU=3XAZ6q3s-bv zK`yRScX2=$0B$N;WWt2KX6%rTLNPy}%Il6(UJ1baIb1+r?$->Cb3mAh3W%T?WFQMw z5k@xLRT0Ils$4ATjM;7myR1f`L?CaL0aX_c|q>T3xt3u6rbfZOEBhV6Ge5$yW$lKPTV{ItV)T4OV`s2JR&s@$>y%muAwaC-n%l{dD}i)*o@$HJ;YQJ*^# zh-b*=peY~+7aPKdAd5pb`78Aqt}j7V-oDDwF#B+UnzX`4!^#89Bi&j^_jsOi&j}># z51Wz$lJ77bJ^+}GVz+IZbtrSyW;70}^1eHe)I_ApJ6AaB7q-CU_7zSn&@<8tZLLBJ zRoTgzl)zk>#IryRFl4yI94+Ti7iQhIGa$MuHUjL;jckS0FtId{`ZUaf7s?`>cmgto zh(3DQg1O81LE-)R0lD3mpl%S6qJXUZfnI3mQbbD}sv+{SG9PsLI5XrTj$0L_Zqw0| zmP;KTG<7&s6PV*5OvMZ_%)mhchfw9M%knpAFXbsrAG4G}dY(5mzlsf;sDvu$0;(ep zzgaLB3#=xvmlaI8JY@SuJ?%|Rq8wsy-a&t&|DG+EyEV`iUd5b8`?Wgvrtqw7xXb(b z|F-9U!kLH95@7a%hKev6p3p~;66n(tdj4IDoD#<`xWM6WnfyIB zzSn%Xd^+@D1M0t5jQDOnc=@C@oOg-oc3Yn5P2IieA_={Y=FlbdA^H@3hpwVu&~E|~ zT7`FnkA+W!Z-uMEt;k@6L|%=25V;b$7P%g|AqwIeai4ftJSz5xCq!F(O`H=iiC>6c ziGPSUqe3(l-4fjq?Tem@)}n7kKZ^bs{WUfctHqqy#n`*C%dyX6U&g+VU5(v{uZ?et zZ;S7bABz{`Q*j=DIsRt+N}?l?PmCq(#EXf!#B~WtEz(J8OnOPWD7`JcFMTF`E&U)} zlYUQbNFGRbB#$SJ$#0T3Q#jR=nn;iLVM1*if LUSn-6=~w;&l#CUI diff --git a/WordPress/WordPressShareExtension/pt-BR.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt-BR.lproj/Localizable.strings index 0398b715961745aa0b19b478415801677f40689e..750e49abdf3544e5496790b040c7c432ccbecdd1 100644 GIT binary patch delta 1471 zcmY+ETWl0n7{||CcDlQ>vpcO^EOg<(LaST~73HCdx|AZ9-e_mH-ClM$-8tQkot+tH zX4h6An3x!m2+A>d;fWZH2^S+6cu)`{F(yW%_#hIk7}Uf>o*)`yf}WXOP~T?GeDi(( z|Nr~V%%)~jFLtN7j!m7LAKS8Z+xD*Rp5FSt9sL7JCObHk8y*=Q%d1OwqVa-;CyJB$ z<5R}kl4;pbIIdT&JUKn{)UMsCoFq1%Y|ALRXJAD^MR%wJdAMjfGpf8GV;dIIum;

Vq=?M1Po^F}$;3hnQ%7#apnO*hS zeq6FDIM=D^9_*vN$TfaC)nh?aLArs)4Gdk~!>*#t*m$H`47+r5ikxGc$OgVHugZz4 z3RteG8t$UvbhFsn+B(=*9yfG%Qk5HOSM)s4OdpO7Od`j>$Btt;BN267PT_rFk zaSQ8I`K|#}!6eVOH)jX1feW50%Qb1xMnw!QvwdW%>0-yL`b2CCVVR`wHJVeL8HkEV zH($Ciw;^Ah1>LF*Rfgm%Zaz84i*x^NNh9@J4rKbf$oEX6G}w=kMo*ML$2m52h-oIr zLyhEjW+fM4 z1gv~o(+iXwLpk_Tdor3qSwfJRHN0gJTM{V|7{^J#KMe4J>x59jHZ;|m#* zm)A(6wWpA-XNs(sR+F@lj0^?o7m!2VNz5mj*hpkC5g$`1!WPu5YVmC38DAFd*p-iTk>i719H9|{sXQ-rJ$Gbnbqjt9#FbJ!)^?-q^nWxIU0rGdPqS9vK}=r5{4$83RvbC(Vba zteoxSA0c& zpGR5T($X?m+R}HS%+z29o@z2M82^32cxB5aiig7GQd}G`u>kX{EkFb?Dfw z^t#YQ7x`OO{d>X?1}90rc3WvZ+HYniVY_2{*!Fb4O{yK)8Eiqf$aiEQZy*mtUkExU z)HL1@0{cSfKCeVS&N&4`fCJdQQMnk1-PTZ?Rrw zuzg|!ZTY-4OOyP1`nGTzy~b~#?+Uf$L+y+})*-X>G&e(EtPR4Fy(a5J@B)%R^)W#F*6v zAmB1^=-J3R+FOyP+sdxeKCPX`BbCaC9}+~0$$DRHq90eBuVQIhDOBp1Yjw0{x=-6e zW3osuDD{G)?PTwbbTm9h$CW1fvzk`_6A3!3*3#;5l+HyukA|yj6LDk}5Md;J#~Cyo zECUZr1B*fXChE}F<+=*S$&b(qC%LSF7SxU5B=b3sZ5I(*8ENhw4xDBwKxDL3E>J1e zW|)~^J20IIU6g@M7(uXTy)VhPEdBm0AiAt<4h^>DEt6?RUnt*5FGZ#qwL2KK`{`fd zo7sAWc4IhMN`r~s+Zn3iZd#e*j1M;u%J<<1c^!Qzy5qjI7S-8gU}!r9_7`9)c0bU- zzkTEWXb=#S1O!;#0{Vmwmv5qn z348~B;sCdSdzt%?JHvg>EpdPHeLUiyi1do|hV-fQne?T!BwdlC za+O>wH_L5uOisy9%SYwo@=5tzSyO0jC>?S`^P!XFZuwK?7sKiB!SIja-y>S2J~AGe zi#!oI5;?Afl=aG1MOPkI4lAdWv&wm8QTbK5rnact)r|U8#ny^L70*ZCihfcV{a$O( UwrXA4fR@sp(caWf(bKEoKfq1dV*mgE diff --git a/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt.lproj/Localizable.strings index be16a4bb25d260b51e3d6d0ce1d3ca0e1f8456fc..306f9314d00721c607141fd9777b16bacd45cbdd 100644 GIT binary patch delta 1485 zcma)+TWs4@9EW|2li10cc3Mks+ZkoyvQfJ6Fi~|ASyx6!ZzRrbZR4KCC&{6%?b=RA zH(+}zAf(atNWe4+Y0qPoR-wI(@_@v{9w_hv6P36;^TGxaAPtU_sOuQFH~ZN7o$voU zpM9?TT=#PN@aWk1MDvUBgpy39Gucyn}(&BQbfxWx2zw@!~D4MQ+)x!5$E^l?;xW!)uF_Dpjsj^@n@$_{DR1rs!j z{2)|&#!LV!5bJPON5H`@auj9JLX-8E!3Z|y$PKQG91;9EHPTe40ObbNsSyf?jbd+a zZ+fCUt7E66Mp_zIbiKw*A5JGq(Dv?;ZJYLF($eUJweYOB0~mwzh%9kYb`R~Nji_>n ze8G1e$;FXdwhiE#wIDUp{2X%gB`>IkN|UDsp^-;=gW))K=CR`_weiAyr(cciOuz~v zIiWwAN+2EOT{RME00IjZ5ipJZ$zj7mwp*VTa*q;@?e->?vWmS3U=d>D!pFN>a`nA{ zQy)f+0P;ECM&1_WUH2ksv0h{%86P2=Yr{XwY0)wXEBEwD90h2My(y2UK zavd!&3iBi5GG#_*%gRUAc6y#+5zRE{Xb+P zAow`hE$$)50&m{0&*2C3iNt_8>mvIf>=`Z^rVVX!A{g5y&Or0M!)^FN`0!q`&6B2_ zLffZfY6uu+#iX*dQCaJ!L6{a$d_9O0T?s;yM%W|)9=edjAW$rrn3Ae%B;_mW*f0iHT^Ss4Z`B(Y(_*MRE z{#*VwfA$aI5#gku2w12JmxNVeO}Ht1DSRdT?%V6@_pSKe^uZcIsU;JVJ8~$bg`++<*V&!HWm*3dH{HB=34gf>IBL%)R|4iAJ+ MhST90GP48x32Axaod5s; delta 1507 zcmb7@U2GIp7>3Wx*_oZ0-IawVHrN(UQ(7Q|1`}ftqqzM6(NgN}bhk@?meZZn>Dbws z;mqvXil)8761bo_!Jiuv#AxDQ6yuGG^#&6(kqe_2LXFxx5;Vc6chobxYtg1$n7Nrb zGxL4l`@YXN*D}{~HrJOp+<#=?nRG@U%pS-M<&O@JjE)tK;qjueolKaM*0WP~$#K2o z)DOy)ea}tLJiq@$zRz-|P(Ln_(aa>KmSdt`N?poc5L=!oBsUF|$8F1>49`7mlFrV~ zT>VJz!o{gv51GJaJ18U@GPpvJLGeU@Jl7A9>+EAVwl&KCs@^A}CtxAj$OPEgHpcE}dbY3)Ackag(U)3o9*XO)hmG@;aSC*u<8@TBXgqb$!Mo z!-pK7(4aa-wkCte-|r$^!Iq83ZGx&PEiASqa%qAM9;)6?rUORQ*4b5`s_+z&8y>7h zQ}%2Z8^jn*p(3V~n3!^B*5zubnkoM(n|18~(ygGuuNlgFdSO$060^tEoors) z-?{2sm9X5wGNuNm+~E*1IstTW3k0AH>`?l@VN3i6Hukl=tA^Mi({U-LA!6)(rEO0` z%CL%@K;E1L*6}h4@LIekxYa-N^$M2_hnOk3lxJH!i?yI>`8sG8X6K`KLekWHZ@nxN zgr@d2`PBUw)A`2n2@HZ9x8jD_v8Gt-7S3(Bf0*8jwb`KzG0PU;SfGH@;2gLJJ_cWa z@4yoH1>6*X&>>t9J{1;)Z-ph{PqAOb;z{vs@v``ncuTwu1(<+4;KT4y*ae@29-N2g z;6?Z){09CC|A+_?EwVYXCDIdlDpHEP8u=vhLu6SRl1dVl&PcCI?@Cu@rLUy#r6uXM zyg_c1o8`ykr{z(3N}iKX$!F!aT3 SOu)pp#O?&_N)*_!`_SKx-|N!= diff --git a/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ro.lproj/Localizable.strings index fc8634d17f840f3d3001fb87a52b133c31878b0e..93a896ee2bcd02e14c0631672170559977748fe6 100644 GIT binary patch delta 1468 zcmYLHYm5_B6u$H5^xe+v29||g_mbT$@|2YXB9TB@RzTSY?R4AHWy_^=+g_N?j5E`9 zcX|C#`9nbD8pQ`O=uZR{42cFrH~!NIYGRZ~qA@Z220|hx;_bA;{Fr<0Ip==oJKs5T ziMhnd?7HER(XpMWw3->u=JLA=6T2sid(hsJhRc;I*|%S>8Rly1McZ-fQ!h==%pS-c zJao7ycT-F39>}P~)v>Cgijx~eF0PpNOi^B#v2+t@Sc3!5G97mX?AJ9|COUSgB`gT5 zBY4`)B{dDY)bw@F-#v^qg5ap-64P+9TW}fGb(bc%1Il;`*UTxLAJT{m#~2p^{?i&O*U&mr`bkPhV%!a zgT5w)=RJmGk~SdInbZz?i|dSLQy6K?qk259^1Y|H1pUa@N$+#HUUiHyXmNy^jmqvL zPU>b<+Fz9W*;@2S1KzOdS#IHzk3<}5h&YiVr79dW4Hp~kc#~fyX<7OVeKx+e(_5!{ zZpdX>*v0wQN)b#yR|e_Y$U3UDwbNtK#eyk6L9ZywX@5lNtASBq@rwWfbzrbR1T}zx z#w?WEUbA#kBJQQF{vg+>gYQ{}#-bJ{02{c>LSU8?=;^?cOUL6uj((tY_^Uu=Zih}p z2k0}gEFG4Xug!ZyC?UJif76D@W<*WBuCu{1?~rY>Fw`&;#dgs?cA?wC%W0Rii26eg zy&HRhK8R#Dv%N^+DPovVNB?86DJQjh$=j2ab(=86eA1}vc$QhY6m~4OGB}%TR-{gN zBRwZ=q^Dv@Hzs;ZJFZ18jTkKo!JLP-J zciwl=chh%I;-$DWU+R)d5|M1_pma^T?+^Ny`HBA(|M9?^fsX?}2X6)Mhy0-xp;tp^ zLZ5`b2;B(%6;{G4!e_#_Bgsf6QjOS=1Cf^_bCHM9J<)pfz3A65IaZ6EjC~mUF1|EA s9w+g`@uTrSbrIuWz(wcu^qQM zwRd`EcHjO3&t?a7bGJIAmC1N=QnPilr1smkWy5}U$%dTVI9#1DbZ645SF{r8?(R<4 zOQ{|$zdPMWidxlhbMm63HbvBetrcChVmU7S#;t%g%s!lxn}EShk0nPE136iFinw{d zouj+Nq5ZP`1>IGL=@kPdk%p#_j!aZSDyq=05+d+uVB4acEZ1@U?y6-z4tH<|++de0 zcXud5e<#bfK3sp_p3w7?YOiIw#B@_0%#L2o%o9U(YI?^;Dh16Ys%Hcoz%9%EGlFue*NN*%qkMEzeXbw{!(dq&ktnr^~< zf#y}I)J%npZ8jZZyFQ!Ini?AZkfmx(l22uUIj$T|Mr4vLeP&TO{GVOvQw!jy{ zJ#a|qTKjKEd2d#9Q}fdGQ_E{MDWa=1SB<7>Aw9FXTru>#?!uMuMz|RrKXsPqBPue+;;W6Wx%OO7u*s$;b3@UN7`#o$r?V{0wSow zU}V#qgx;BDus;G-*s0{;GXIE>jhj`2%zFIvh8FlVG9Jz(h*P1XKrFcnK9BUn>aYSk zr6vdoF%TQtARb;U716Li+;r3#402?gR^rqegEGz2%1R*%cfuOHA`UY5Q%l<5Nj@fI z>pAP>-1T6HQ5V(BRkfOuszG^V`l+f(;!^mfFvoX6ra^&LWj&N5G3b#OE0ZWip`E*u z;AJTmOnXA8a99X6!+ySZZWr}V_YSem{!#CDBsvZI z+kBL7;#>Lk{2)*GX?~tR#-HTh;BPfN9UKlG3LXz$41O7!54|fi2-Cu=!XILj*d}fg z9r3JqUc4rL9bOkMhxdkG4F44VUD_%YrFrR$bV>SbQ)ESCedI{w=jev$!RTT6CHb^` kPQI;lDg(-d;wZW z|L^ddS*ryI%VQl>RCzwrFx()fwtlc!EcB|jvQ zKQItcEe%H^O2Qm&S1g<`QcF>(U?8a(N*u@KfSfc;YoA=A#pNkg!zLuzd?C_<7p>t? zJT6;c*!(-jyK!7qo%nXPinIsnLOCoJ^PzA4xmNJ<1%07nxExkM_VfY+>_6Kepym zx@;L4iKyg0jIG#oS|S5UG{@Q%J%+VS_YT#ZQ%y6H8BAn%+M|*;tSn%dK*7?%FxGI) zib~QZnw(S;ST^+F=u^6hQ&x6Pg((Au_NQm%Mc>i)>_jpg>rC+~T?+5peDD`NTpZ~m1e=ULWfEy2 z-XVe{JL+M@T?xyA7rt=Lk#Rl5BS3~}g$H~+_&i0hj~{||JBI7-Vt9kAf^UVrbUBHk z0Sa6NbRIn7cY=@idR1zG>ZiJ>DnfIBWO@*Vpk-T4l2k+4C7i!A@W!OEP9Xg#^ zcBi%Fl7<&UA|}EwiHR{$F+Lb$P~r;&F&Z)OU^FOE0>NmEMuQ0u^#MXXGrK`!PEIoC z{QvoG|J-S~)9~^{XV2K4@$_D8UnZL-6MD|rv47H>vh4hULeZI?d46{8;Gx4uM*9qF zQtj8K$ev_QD;SopZY>n-0vu**JJPbUb9$d?6m#xZVR%^Hrn zlRhy~5@~1#8OTC9Qc<3sbVMM*KNn5Qa+%jdS8b~e7Ptnu!7h*dTcHZQ$|zg2uKYbV zXk>C~uWdQRa#AkMc&}zS$vzkLxHwZYwEn4;{2;v5ja(xXCk|}$J45bXm zBx$)GKH%znt?Gnfk`p(o7LAnnu&LCEgnQ;*}dH= zl7i!@87{e@!|%6MZALRpZJ$Y0Z(b)Z)-D|xBwCiLN%fOiXFsmO9e4n#xSOu0aXW6q z2}lYJa5dNg^U`XNgld7{S{%n4=w1hJ_!q&wNF$sJR)ZCM3?yj)&in5{r_vcU&=49# zeW=;(#GCPY+zk&yO>iO540*X3l9873G9)q$WucOeRoqL_UD7rjKl^K7BLl0129DqwSm*DibLoOH zsh+8X19Gg&omVNZM9D`6FQqTL;AnVBB=;YiCHmUnN=m($nrwngz9_sd$L0yH^io`p z*P{S>5uHM((MRYL^ewuHenh`9h*`nB$(&~{GFO?K%wKFjtFbSz@3I%zAK2UMU5?>I zu916^Yv+2nr?@|ReTO#$3OAA_$j`?ALrlV z-<#(@=dbYB_?!G)pX7`AYJ9D}Vc!woE56TsH+;YNk-yvjPT;k`cY)t4Dl57wtcv@= zRl%dd2STfGQn)N!6Ba^hXe6{hG#5G^x-B+}?P5+mFMcE55+8)C!<)m;hO^(rpfv= diff --git a/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings index 79cb796eaa0fed5e366ed699f87c0e20368ed3d0..01726689868108e9208f3a9c4610f2b38223e8b5 100644 GIT binary patch delta 1443 zcmZuvZD<>19DnX5mn^v?cdebSP1|Sfn%Yk4;uKk-cC)KE*EgG_?`!rn_cXocdUxJk zYSX<51Cb5f)(3P`{4jQyepR4aNAeu$0h9)!&ZPmecB9S-o zXb}v%R6R>Bvk}t9d&g5!xab1rO0Gt_s5w>7w6wGg_T?rt)t*X8Wu-SdcRkaed*V~b zDtu$hGOW?0snCQj`EWr2_MjO|US*@?Eq)XEf{V0`_hTn#>CiD;ij*Wjhn@6Pfxe;4_l z*$^D;$4H@*gzMunTfe|W$p@Yd1H$cDv7-Ya5U;z~%gD&AUs`#l~!5NZF46!bPnGl6(3<9@jK%a|KCibU zj9eFYlfA(vlJ`AMwulv#g~%4jQTtSQk`bx7f(rv=$&-O?5;3LW>@8^TuDv_M+>Iq zZT=j;$Y0}E_^vy8DV;_t!6;8^f# z@T=gh5E~i}T?~C3`Zmmlli^pwr^1WjrSMOZPl`!@NcZK6X1PW_EHBHe@;|_RSf+S_ LgQc@{lzIOHrth(J delta 1441 zcmZuvTWl0n7(Qpt%zc{nKV9XvldTex`X=n5(&XPleQ`j}_ zwBGBwj!Tbn4Lg%+O)NiQnch@sKZnz#v$Jz}Wh>r=Co{u6B!%;qpHw4*c$(;ji&MUy zb3C73Q`XZh@CZt(wG^V-wSz+g`;w}*hxn6aI?wcp$M{Bj4b#_SCCE$4YPww*i6m8Z zrAV1dckJ!-0cxXHxMuC26DFs8QdHJ$I5=QVPU+o_?GxLNm&nGuu{}vF-K)478_F5j zCwj>)J%;Mm{cV?&?8Zy#69XjcOp~Fw>02bJw$Kkylek$=nHE{N@>t!$3L}exsXnxy z7$(;HbH3@=9-ZOW1&4b~FKc=p)sem_F-R;j>5o+?%VkG)8;0)Vv^PFL{Jd-HzEidr zk1;3oH@-<`vP+JJcIR?dffki|`Zn4^?{ls6LsVZi(#;H{9k)Qw!x{P(SHs2Q3lAFT z1NG6+XxuI6IE_u4t`Symh{p>#GS+8%#P!Ry6BX^Op;1T2)7Z4|ghljn4;G3I^6&t` z2CE&9k{O@&h3n`At%=Tuy7v6<44B{mm<9y6>^%%@U_xSmL68GKLUI_y%KHYp;Q))> zu)!_bCU2!Tl=ia=0SJ+!HqbR%C%qq*=t*f~gAIll)&-bB7!}Z=%z)P!&;gn9RBTp@ zbVzxEA=j@UHF{pGrAFBN*R(t|6ZE?FxCEt#h`z7xpv~bHdPmx}EvYI843k*cHi*3zQ1iVg5}*JkO7<{SCB9{xE# z%P;aD^WX6|g%KeuxWWnHP2oM^qVR?Ajc`@CD=K2GSTAlB6XG#(QG8!q7C#rS1tNiM z!JWZE@SWhr;I*pLRhL3dq5071&~oV8&`)7G{8Ts_o(rD{zaBm#g{4hWuVhI@=}Wm* zZkBuH=jB)BMfqM=HK-o0{#1!5DW#y!tLM~9>K|G}Ytf=wT05iN)P4u$hl7;;mQ+gR5+wmkD3u0eOY3%aw+p4~Y4>z@+Ud+N zbGB}|$b*SQ4I=y>@bX|V8Z`UzO!SEd5g)ij6QeIiiILct7>#=N5_~&z&YAD~ zec$-e-At+q;N%Cv|NuDC2>>?Jii+E*$e3Qi!g)nHUYZ)O2h= z|2Ub#Rf|H3Kdk36WY(D@g`FjnqG6^5KT5UaUI*bhY+882BFHx>@eO0%CHtF~QQEX; z;IhyGy;5+zsKuKUsM@01mu7ILUGC}W$q!d2EYq(PwYJuZ?Kha&;en9~_Uhln^Biw~ z)-ADw4e>(V0qw=J1fCO8@S4;KH^h$K@eH9=&qmZ~NE9`FfY8ZGU7`WWG{^d}JxQ#V z`{SlRYx=&?2&Rhd!J@Wk1kVu|m$syGBg7(;w5VwyjhcOd7u9m#g^Ps-U$6|-p9l|8UBI06+t3HL%@28;pB3VK*y z7akp)@UZJwC~S?E`IXFh8*G;Qpgq!lEZ=8WS!*P}ZvwN1OfJN|$i2^f%w6KHaNlwZ z+@HL_ckmDK8~JnmC;Vr^CSjK_C=`Sv!b`%d!dc;x@P%+)xFh@{B5}JoBuPr z$K@q*hdd*D@*(+I`EB`*{DXWi*c03x%!Ss4Hiin}r@|+~r^9cA?<%~~p(K^Ga$NaH zxfXdeaw2jo@=H{Uu8lqteJuKX^s3sWZdc1HRlka@igm|^VlTvQ$K`l3J`hjG&%}Sy YR86~~-P9#r)jj>9zR(tj#G+OI0eJtVdjJ3c delta 1311 zcmZ8fTWl0n7(R3D?#|Bc4AoRDwF9N)651jX5CIJ>Alj?D({2|E^|X7sd$zMP%gou@ za*+oU13?m+KP38K6wpMCM$q5`MvF1>pz#tAjS7i@7ebXN5lu7^&u$w{e3;3c^Jl*6 zKixFlbTlRCQ>lif#od0uO5;yWOzzpcZ~xN=(w)>Dv$}DC>`dmcPu;Aw#rHiQ_K9^H zhKzZ=rD2B#x$=DxXGu#-OKR@QZo?yEsm){*mmD@^R44H`u`)g$WmeG(82lkGhgHH} zX~?JnL8@7o>`QbG8Rk~PMk;UtWhCHu=`9(`tX}?$gOUiNaYT`evdBV3e##;O4=UTM zhYVwmw}NhY?n7`#S^}5F#pZt#uCOvmiwjoIeGew+NX}~aTt-}GmuYsjV|Ro&Rxs;# zM_)068L`Siz<#N=;ol%gIS9M#t3N>s-Z<&ADRan>(Fmuddi8#5lsaVU@;$YKvxqz- z?q_Eg$xv+d6dCp004C&yP--&`3N#47lB|{eN#c+Zwqq8uLOZZ2ld%}i2D=i3m3-G? zUd5%|%T2&va=p%FmyPvpDi)ndNQ;edN?Hbgi%sy3v>-gt&JAQee-b_vCg2ruo@m=s zcj~PFwKA7T+V&?coW<0Ih06S9+ny|v9gn#I@mWPp|EwEcez#}gaZDXN>=3Kc*VJ^K zo=Om$;cDz|GQr?fqz=xQkHAmim9Qe#P}kq)F)vRBx`usR403F+7yEcmHcv9SJb^>e zb?`#`2^grlBzZ*=5aCZRUzPxskl$bKm=>TXwh<0RmcWK+4|GS?&Ff2)aGu!P=x)-_ zdn`E)=w?=!4@b3CU_@)7rK*;5Hu3XXxJ$n~lHNu$Ibt!Aha*}?#~7!WK|b2UcQVg+ zG=p+n039p?^4!Yy++E2W^IU2XM#l)ld}%vaj^s)lq*5p?*jw>#0$=LMP-^=y=1Ea_ zDcl9;qLgzlpYz)wH1V&_@Ic3Guk_t?C@cuo&>E|Ojgh#R+5$6bJA7+2N74ye^u2M; z3fJR}_u8F~mml0(VqC?nsMIF6#P0|^8E%GW)Wy&kUw9zZi-QsgC<>v&=omVQ&Y*MX z61sw}q8kDdnuO!R`@*zvQMe-fE_RDpd{%rz{6PFs{8_vu36d@?mDWh>r8a4sRFn=% z$E1_edFc!3rgU2ts9qt#n7XngQ2%VUx$7TzZbq1c{uWV{i1$Vzpein>x%WoPQ46patOst{=iM8oX?jEW)N9%|z)@ou8gKx~MKcy_nJhe^(y%m4rT zf8Teb^+xNF{Lw;VICJ2+xvbg%uGr8%sGEUBb)6LaOfLy&!SQCZ>bgPKa)?0<+>Twx z54PZqmVxu8MSXCEdlh|v&IFkr!@vPJp@ud4_fW$mc&{6nj_nU`r+G4E1<=AhlN?IZ zNoSgl^ciM=_c1N_UYuzfa4?xBrbQ+!ihVPnzOK)@bhLUI_nUSJF7oxzEr!RlYNASk zr&g$*>Su7KU1)1-8{RiHVVQn0tEN^~Y`?10Eog z6b|w&@S4~Rp9%Hd<7pa9c{UE5ibPgTK0$+Au`E%6WSV2W#LiJ`#eKW!Pny23SAxZa zx^PxqrIBe0<6>vakVY+<3$m)Zf`(mEpxCiHM|asi^@3_n!nXp?HI%c;Bf2+>Nr9O5 z(JQM{<5e&0S7T&V44(>X;jpNz{$G-nv@EF&ru*S*t~NHDro>=7dWGX6-!#v)z}ul( z_?yc#>H8SL3L`c=k`L}O>5r3KDXVT|W3fSMuQVG@a_ctVEn;7}h+}CpSH!)J9Z)+M zs`3r?xUMzps1LxSiAUxWE$iEc(o++jSsLjJ%n}U(>ScCUXUlZd78sMaz;p`3vFHwk zq5<>+@=<^YEXFp&L&?56*6_+a5sSUFNnlQAw1C(K@eJq+--!(C1W!0#0PjW`K~ir* zG}R?)Y<}Q!tPYOGcR-iaC682!o}(UtWwkvzx}91!>zbdZ7JQ^M+*3sT%-KdI_7OCR zY)9>70a{@}CeWS8LN2BO7vBsoMYgUV?U|nNW*H8f0E#q*TYg#?(n@BoMBrzo3(iX& zuo%zP7-)zcTIgv=D)+A~pt zZ8aI)w5$oj2)9METr-Qe6Amex=BhSDq$86Nm6;})9zhXw2)%{QpmXRl`U>4bw>h4x z=QeQ+wJ1cM@ZX!-->wGl|+uiL2^rwWz+B Yd_MU?@b}%u>Uio6IK2x02dFQvTmS$7 delta 1367 zcmZ8gTWl0n7(R3Dc6WAnW{Ih_Ku@`~5Ggk!(82@IswfoFo!xdVbaT3Mc026s%x30v zL!;0q41$T)AB?CkioO^^(4a<%VvL9(h8H6-2*!AW5a9u%#1O=@vqcjhPI9i_|6Trb zzVm$N3q@h$bg`pt&)%ur7TYc30aBqm)8oXq-4gEieb0xd#X0NpdTRT`m}3Xy_5CU- z(eCc0%I4rNvN|PGJmQRWdSG|D2EqMv76rPgudJ70r%i45ia7$h{ z9-*ud!UZ;?0msYrTQ z4b`eM2{~~goRAj7-{K;8SDM{Cyon1adHy7PBJ74Y#gu58(|70K|D`hHNY3;pF)0z- zg$|{4scBAD>Bwd`pgs%PWE*OD_yZm$HDWtt%%M2UYx?w@B}0RhSe%VHKzFlov<3al z^D6T}PzAXoebjNe6G4$WFcn=ddAb4lWJ_njbG7&#j2Gp?C=1jl!=~*xW28)m(~P(l z@h#|xuYwjm4QHF~@V5(~U0n;Ksib1^{^@}u+A{bm($VVjUa9wo9}bM}p}Vk8zYRN* zt6ogluqyT}d=~G7&y#8JQe7+4WxG%&qZ?{t{v^XzgQ$x#9H|;|V~B=`71@T=B) zUnX58J{d9z9`k&b9h?~R?J}G(@^DS#An2}#gD}w#OvZsNs!`Fm-MjID{Yh> zld95w>9BNE`a(J{-H`r}1vx6W%5&vD`Ej`-zbtdaS}N7uHCwBJG->IrJ?PvjKSKb8|~=2E|+#)+nLk&BsO(?jO}!d z1QU-)laRPbfZ%1%XpY#@Pzka%Yjnvj71*jXFeQcY-xrAp%1=ltjU zzwi4$b=o!!*X!*3LFoyJVJQ-g$?-(;i6>E$vTF63wd>Y5Z`jzfsde*~t$5q^9Xs3F zckSM@cVDU_{ZwaH_x=M14;?=8^wDRIJ^S48p5DHU)PLfn{QN+2@YD-Kr&kT189AHH z3jRvU*YZ^<+-7RHWSG=dm358#>ouvC zAEtBOxn51f9@J8m<|QS%`~p*_sb&y-#`X+mxnupbM5?BzDs$tk>R?hVva01_jZqg{ z%)>gFrP!uU#c*BN(9lK2uLE6qy5VBi@Ms$6b&7Lvg?qJ%VSxq?@tA{)#KJ|LSY=>A zr*30GH$9rA6*f!9PiTgRN1$0%aYjr^V3|p(R#E4B@ECKn5r?`iCbpfzCM#pZM>GE* zU1SwZEDcx448?BMp}5AXK?B6YyrPGh1&;t=iWi0bP7RYXF|4$ztR7~V%o4-&)#8iX ze77yodBE$F`@iXRcQ(|n^)%i5QuJA<#akdHd37iYwB=X z{R-~;3d6&xoK776n>r42CJMF&e(;YS=V#+#QlYA{EyJp&X6=HGxRMCuj=^p@@=ZJ>Lm4wI>+Yo0$?XI#41v=-d4Zi za)aap`8M!IeD)peg8ntEQ-{JPRaxWHw{T*>*zRTUF05%V|7ebyvu;~9mX$pu*ZXT(-<6y$L5F8n1d4PR1P^r*s+a`qT z%7I)$`%o9!g+w%nIt;W4zPizN6hiyq-Gy5IRX9_$4h^6V)Q>hjY%>3ki9C(kP|FPJ zg@y+KvWR-n4s_UWAolo#bD5)r_W=|GphGLoMt#thMziVb+6KDDP#*~2hSmyc{#S;c zTS4|-v;}$}STy`lZ^gVeP@>LP1H8vExJ$mXdwdo{rAD2Z(hAMDfao!pfiASM@gZ2E z1MW-c2wH=h(Lq?Xk$(o#1G> zW;v(L=nx96q;I5erQajlB1a={Mc$2Eja-l1jogch(WdD7 zXlwLXbTB#@twrCAei*$Gy%jqi>yJ&uZpVI(-IJT;J#wFXRxZh&{F?l>{F!`5z8{z4 zt?@naL-9=fQv99x&G^^xpAvE+oya7ziE85Y#FfOg#8-*ml1frfUP@k0evZ literal 3316 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 delta 1369 zcmZ8gTWl0n7(R2|%k1pV(3Dcz!jRHpO{gs~+yo1y1+lc$?(A-t(k_SHv)j|1&MdRD zwaZ2HK>`62$uEgdBnpv$7%xQQB}jdc2Mt6+(1d^*eIOx`2cnp$0nctLCce!4=l^H^ z@ACiWZ0p(9R}WHdUCU25lyUe|S8*v~huOKI~4OS>&v9IxaHI7iys+Y@ss zvm2-Li5`;0CCf``HBmf8jEsx3o>6d$9{eFb4lB5QLQ1OxPN-WGjSX!}Y5Hd3rK|0V z)FVaKFWH-+o-xRNu}~CYG=(U#Q4SfXz)m?tV70WPCZ%a}xYh24W3PpW!ZNtYFV+96 zFoxAil5c!+F5Wpr)8ob_$M%TrnH89^P1sHo%P7w39f=h(*ds>82sj`#G(R$eRE#hy zy5d7*(wQPLlX@0OX)W-+uvqRiveY8SZ!T!qIopw$#Pp2zlMKbi_JT(py9m=_vp>;8 zi<7ii1Vb=7;!$Fev^O%_vI;xAF_SSooGXqE5wGOhhUZjOnuAOP{3R|{8SRR&*v3M^ zDnpWQf%k+qc)+*92SQ_DcoP$lbKEj~&P~Hn5;%t5{Dzayp>qHiN+we|kJ$w>L!;8KPa7JHMpVH<>*&#y`&x3e`6vl9p;~wlu7hK0KPXBbHmFaqN;~R=naB?K zL2n3TP?DkS)tdm3VP?6y2P&4%SS_DUHX8C3as|JIju|8bD9$Zvw>H!5q*tf4H*p!>*SP;<0kBWMTL= zkb*m*e(;n&u6~Y9ZD6=>cGC31sK1_reZjV1@(~ztzFt_Mcfsng4vktHV`ZYhkqeI6 zpb)NuT_~@j9lSs%?2)$|oZ!Y#iSfXUMTM1v@~D)EI<|}R6#3CnbON11AEFs_9o<4d zqdOepTDdp4&$vt6HSQL7pC8~ce~3TFU*vz{f93B9oS+Ji2`h!Cgl^#(p&%Rj%Y8#T();(y%lsxzaJ|P3gS!rSz5bopejOCr9Ku zxlvvv56flwHTetq8~M6?$JgRJ>|gKq{IB@W`L6{|2Cf7b244<-q|_=M${J;tazweT zTv2W)w?ivJICLoVcIdazpK6!7SC)obOWINGsvgl7 V>09+dJ+DvcXY{-C1PIg^{{Y<6t9$?e diff --git a/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings index 182f5e6a18902d188a85a3d40e4ec6162891305c..8df0b4fdae349c0d9319a43d6a6a3c101b1589c5 100644 GIT binary patch delta 1427 zcmYk4Yitx%7>4Jzb88Dzu+Ww^9_WS2rJ?XcAt49_Bc^QI-RW-2(p~3rx;u1tXV{so z-IlgLK+&wVmjhBYF(r{iQz1$OLk!>#6GOa$LMQ=JV!#+fFoF<6Qk=6}(afK7zVn^; zectcP$=+qKzfd9XOjzO zB%}59^}&|38aM1%L|QPna_c!}_ps9+Q&M;jQzeefao=<7QM?< zqlkgn#gMkT4i_?-Jz!%i5sE$4z2(M!09w9v2g zKon*+)CT-84mBqtNponxQlb!;$qk|HNgJk|d`^X0jwrGcXB9i-R0b$f#Ym2QS+XFU z_X2i4MnnSW0=*cGFa;(5NxCD&lKwVd6S_{86$O1z(cOxi<2XZAjgz(LV^0}+K(<%O zEiS4-lAyT5vj)gEuLl@a*vIUkmYqxhPVw6ahK1~VxZAXIxy)3@_cQZ zEi0ZuKM1AsV%)@p8sqv0)xG_`mFSvSv$VVOPp{Yv2tYItp#STA+xs@b1AQ~<;ID&s z^u#0IB#MbO^YoqL&HhngBBQ>4CHnz7%QntaGmqZZ^`S*0W4IsvE+onzoblgH*Y!v&|XSJg!Ago69?6PLne<4gqyR~2)Uf_$MR&U+oojO#Oy{mWKho9i~+#R_n z^G6cS#4q_KM+PwSz@?# zk)H!Mu!(^k_kHfajM0dC{N*7oCtlBQ)mHn^9khxsD^3LKytljsL#=(&?qIHm+EGSW z=TS!m^*3~ZD-m?WxvlKg@UBp(f>)7YmjqDaS$_}#o z*f-f@>?!sOc9x^LLN3GY=icDPxpUk_?k0De`-_|9IbPyd^DTUuALPgQN&YB*mY)_V zffFi(8lg!T5cUg)g-PMOa6`Bw5~4?3D{5j&Ec!@1E}j>^7w;AD1@qCu!e##eb2|E7 delta 1394 zcmZ9KYfKzf7>4J5Yl#cAg>sP*TnZ}CHjP>}X}C4Ep$oe^uq+E~XLb&|1GAUz%pwaE ze&B^=J`K8s?gxE%_k(k;DCPqz6t-)Gi4H%-aMh(^wwLeITbCxY8X8xRWzVE!> z`#xu8^JnuXJWW~09L+6Gms@IWJM3xq)^+$gySn|yWhJ13o?uAp?bE}NXzWDXFcbaH z4I~GLhEIB%v`C-mki($M9g^c(Bq%n<~^ERrQDYjTwbj*#(SU;v=5iE#_Sj^f5F#w;WJ97OtTV`%rU5rMaf*a%>xI{dh z{a?j$n67wZ9uduGI;GTNg@Ef+NtR_B1#7L1 z#q=cf5_Wi*tc3T7a`--3#JAU50fNzZ63*cR@B)!TNYdm+vG~7N$q?~M@uVmRWi0|9 zqIXwGQZfd7MKtLqcVMI>_hkB;H}t|%}eU&uG5p?rNNaT5^P@fwIe|o6AtG0dMX@0JGP-- zq>P$23Zk|gODYc@;Rt?wBkO9|?V(iG^ zp)I#aIg_H}m1g$@Kb?f<_)1!F8dIyVg|pk0310bCMT%&!8eVsu3$a5ZDuRS$lyul8 zejlxLpGj0$zW2ZzTn((^%3u+bPYn;b9);W4uq{pJJ_WH{f#ZxFz9SSq5lG#g{3>;G ziyl(7>cc~xlp6TP3D8^x83ka)eJ4?YXhv<>@HDd%F&x!4AtQbc;Vhk6-zZQQC zI4p%tVdt?~>=W!Jwv7FV{f1+BIsOKI6`#j%;LG?wgoBWY7m2rtkBJpxl~^NjGK;Jr zA19wC>&R!x7&%T(k>|LcoVYV;?%oetA+`eph} z`V##a{UyCfFVkzx156%M#Mqf?rj}`80!)YrGjZk=GsoiWF1C{0&(^X7>?!sGc7eUk z<#GjF8TT01$Q|XHIf+Yh6Wr_E47b27a_cFNhv8L=d)P$cx)Va4{w%jyYse0|#vnS}e4?>-}0zu6Lz(#e%SI zS>g+_weX9xa|wyr{#fQqge+!T=Gc-Y{;`)h=8PI=G{(h$7MIMK7!zFYO58t}yXW_O zzt89U{BCaj-1@9CL$JQ5#0!Uf@or=O+&>*VU4R!%VmH6(sr5d{F+XW(0QnO$^aRxo&JR8lob)&Os+7BEF|EDi#NX1-I^hv7xE3huzEV2E2&px~1$RQo#f zaH<|{YHITJBxOxCheF)imA8D|Va^{8dWWQh{S6WcBN6D0EBS z65j}yu&NzF53rI6owp3fBE*%v39RstZQ(%XJqOw)Jq)y!>AO@jrkbYc1S`fiP$90= zD~$pe#9Qn8yg&nCE5vatXnb6X0^ZPD1ABB6B&&!nU6xl=Og76Ys2X(r9RahtzTn8^H;Jkkhy4kwb z%D&l?SF))bA?LWM&F~D_zFHo8@}Z(k-p_0ShsSTj%gjgx7^(3-NH$I`j9-^?LEkaO zZpqe8_P{o#4mOc5?v+O;x_3v1!@kDRi6cX{kgr!fq;MK;nfg?TJOt{6OK#v0rl|&4!fe{8xZj_O2(IB8 zhtihjkP~vA(sr~-4X)IgnP#}=sGY!0(%qHTpH?~&_tt>FAc=UIvlU0~95{RQ?$b)y zuET58CYUBS7eDKCcGp6+HOP|-IV3hf+1Fyr?RHIc!vd6aODt~rpjTE=HLUe zEUirU1b%Wy17FEDoZRnAHo9onG1qC=yz7E%(RI`H(DfKWkt*aRWGiwO`2zVCeHGn} zcA@>~1o{E`5qb)}fc}79MsJ|Y7>~VI*Nt&o3T8UZW1aX#FAZ`#3Nt9eet|P0+ZDcFiM(!e2@*VOpnI-4R zugOIUr6`J{-le9g8R{gpNG(x!s6VNHsb!j?Ir?Q46GpTOlJ{y$zf;fDYK delta 1371 zcmZ9JYitx%7>4IQX9k-Nmt72uiHZiA7^9+96D3hYykMgS49Xv3P$E%@l2GSt8%)gnIrE+K zJ>UDj-*nk@*?6$IWUtoZYxM{8w)S90XkUG}bAMOlfMG@Gei55o|;;qc`b9l;r^4yBlwz53>=)gK5_DK%mXv98s3;L{7Ab z%UKS}xx7#lv>esvwj`+lWl(v_qHHQosZ_@Oi&F@12C z2|_2n+Wjb%&Z9Qna*`;bc=2g=jj&mbSxGc;p{$~Ff#`u54ng ztuB*E_Tv!a#i!T}_!d)zXV_IzM}uo1p3e5;59mI8f?3As`o#Qd^?zGgOeCad`&A=u zST?TY%WHJKKZC-1>>SEEMK$dUZrtT-Y1POZR?;w&NG zhkSa;z-H(dwAb;*qbKmJcvnq45e-&H?jJo(bEH$ifqzJ z*!WR-M`@gt^MfPZEqjOU`IY#z?7<;H!3wCrw}1yFtqRL68r`5=U2=i7fIg3Y0s0*#wUPbk=1ji*E} zJ_qh$(~5#CC6BzBQhiH$p6lM7bYm&wO}|j+!isoMDF#675{erx9u>TJOs?1pTc0@^ z)2Kw{?T8j%6uN@PVD#%&M3k6BHab`txYk=uBF2q^cR1$XG+sXP)1fzxT%KPU)s|?~ z;j~Z!}_8j{g`zJ?pGFQ&s$u)A1a4D|9z03W;UFJLZ;S`_c zNBNiell&+AXZ#$0k-sjK3LasV;1z0xI>9GI1Slkgj4&*m6t0P!SRt+x?-euRu=tAj zk@y{;fecDP8K?x?z{8*(>;g7;5{!cv!N=e%xC(v;|46KKhqP4MF71$@G$zeRpG#lL hb+S)xTOsG=33*C>Ren=`TRtP7m9NTw<6BGAe*x21)nEVs diff --git a/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings index 5c8b0f23d782e17fb9869caa787d98b4d3b3fb58..f86f67577fe8ac3b62c7807b9bf0241187014e49 100644 GIT binary patch delta 48 zcmbQlIEitB3RhTWYI$*}PiA)NL_K*4S2hzibvAc4eITio&Zf#{$)*EjYD`Sk1pqU% B3eNxl delta 48 zcmbQlIEitB3YSl2c4~2GSY~SZL_K*4RW?gD9X53~4ItJ^XLDsU0W#d#^e3k30st?Z B3eNxl diff --git a/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings index 33147f0e200fefa5bb3b623dfcce976a1ab7e861..c70a837b41f59e53f06c073fe7e2685a37f0fdff 100644 GIT binary patch delta 57 zcmZ3-xQ=mx3RhTWYI$*}PiA)NL_N)kIg)Z&EUGL9EDkKDERHNjK$b0w1&cq2pp>$v LzEgO?#6AT8!ov;P delta 61 zcmZ3-xQ=mx3YSl2c4~2GSY~SZL_N)k1)@qhEb=T4ET$~REY?8MjKze-fW?-@g2kUh PP)b=--zhw2VxIy4^TQ5E diff --git a/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings index 7af5b4db942e7ac7bc8714619961a5829252bc61..d4410f5ee6563101b2147a122777b6f98d4afc9d 100644 GIT binary patch delta 56 zcmdnMxPftk3RhTWYI$*}PiA)NL_KZcOok|ie1;^3B8EhUDuz^sJchRuBc(Yx1f`TU M^_?PfCQeWQ0M~*Ks{jB1 delta 55 zcmdnMxPftk3YSl2c4~2GSY~SZL_O_^Inpwj3{edE3`q<{42cX?45m!FcEn37l;5t&<_np0j`6zZOzQ=T5`k)M{9Inh@W E0NZ&J2LJ#7 delta 49 zcmXRbo1miUlbM}b92%CHT3#ICm!FcEn37l;5t&<_np0j`6zY+mmX;ano}W{mKG9bb E0NQ;M2LJ#7 diff --git a/WordPress/WordPressTodayWidget/da.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/da.lproj/Localizable.strings index afd291720941eb281436bc902cc84df571d77fdf..7ae97bd705370a2078202d521594e24c3cf626f1 100644 GIT binary patch delta 39 ucmZo*Y+w{jD#*z!E-^5;!pOwT!pg?ZGEq>ND=ag$yg1Y+Gdp#nUJwAwV+yVS delta 39 ucmZo*Y+w{jD#*z!E-^5;!pOwT!pg?XK2cDZ%O^8CwKy~^Gqrr8UJwAv$qKCi diff --git a/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/de.lproj/Localizable.strings index 9673d9000898c02e304f8ad8d8df3cb4d002bc5b..5571a1f4c0333162ce8cfca7a249e5e851c0ecb8 100644 GIT binary patch delta 81 zcmeBX>}H&x;vSZnT3#ILlbM}b9Oa##o12R#cjnn$6(O jkjjw8@Pr`;2um0g7;+gh8HzXrrIa=Gt(?6lW-9;ydhQu9 delta 81 zcmeBX>}H&x;_j1~omw0kmYG^!9Oa##o12DKW-9;yTKgG5 diff --git a/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings index a8d22f8322ff950e12cababb3aa4c911130bb4a7..d6d23c2c2aa387da47f2a7114c235be53d297e53 100644 GIT binary patch delta 18 ZcmWFunV`ZImYG^!9O{#qojOrZ4FEct1~dQw delta 18 ZcmWFunV`bulbM}b92%CHT0T)v4FEb81~dQw diff --git a/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings index a8d22f8322ff950e12cababb3aa4c911130bb4a7..d6d23c2c2aa387da47f2a7114c235be53d297e53 100644 GIT binary patch delta 18 ZcmWFunV`ZImYG^!9O{#qojOrZ4FEct1~dQw delta 18 ZcmWFunV`bulbM}b92%CHT0T)v4FEb81~dQw diff --git a/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings index a8d22f8322ff950e12cababb3aa4c911130bb4a7..d6d23c2c2aa387da47f2a7114c235be53d297e53 100644 GIT binary patch delta 18 ZcmWFunV`ZImYG^!9O{#qojOrZ4FEct1~dQw delta 18 ZcmWFunV`bulbM}b92%CHT0T)v4FEb81~dQw diff --git a/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings index 898060fbba0bc9d38af155ceee441306c1b6b1e8..0d515c58e27fccd19c19b6520022672bb04848d9 100644 GIT binary patch delta 50 zcmZo*Y+#(A!WEX8T3#ILlbM}5QBOiDJS?*~vm~)N!Z%eRy|lO_kwZ{QSySKI&2M6Y F0sx(<53m3L delta 50 zcmZo*Y+#(A!sU~homw0kmYG^UQBOiD!Z%eRy|lO_F+41@II|?Nm_txXSySKI&3|Ho F0sxwi53v9M diff --git a/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/fr.lproj/Localizable.strings index 4c51ca57eb6d2d997742853dcb8d670f1f1c29aa..7b3f07f75cb27d0db46f8ccdf0babd62e0d23ee4 100644 GIT binary patch delta 51 zcmZo@Hr6Q&0@XG`UJ!P3O`_d24Qmu PN-1mV+jvGyEK>jgNJ_rZP?*anGds07G%PcVwwT~ DfxHh) delta 48 zcmZo;Y-60D!sU~homw0kmYG^UQBOf4B)Bv?G19v|>ue;fT3#ILlbM}b9OGD$QJS7uoSK`GSrq1;T3nJ@6y=taT2hjkm!4RZ j$>78AmLZ!Vk)en|fuW2cli>r0pp>$vzKyfr#4H5>fJ_=W delta 80 zcmeBT>|>^vc?omw0kmYG^!9OGD$QJS7uoSK`GSrq1;T3nJ@l*!=3@RlK)A(5eo jL4l!+A(P=llv_?}Nl9j2dSVfWpp>$vzKwI(#4H5>VDB11 diff --git a/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings index 8ff2a040665caee1431bdef6c587da2f5bd7ea83..3d59df2a57e0ca6d133371c2b5bd79ccb9fd942e 100644 GIT binary patch delta 102 zcmZo>Y-XIG5+9bCT3#ILlbM}b9O0awo12Y-XIG67Q3lomw0kmYG^!9O0awo12Y-XIG5+9bCT3#ILlbM}b91)b7m|T*XS{&(=T9u!gomx~J8J?P2l%80Ynim_E lnU|uQnXQ|XTAE$VAtY-XIG67Q3lomw0kmYG^!91)b7m|T*XS{&(=T9u!gomx~J8%kZr?W`2_^}wWSb&90 RIRvGYHTB)1^Cq?_001sH4z>UQ delta 67 zcmZ3+xQuav3YSl2c4~2GSY~SZL_J;YbQWnAKNdq43l|qp4D#*z!E-^5;!pOwT!pg?ZGEq>ND=ag$yg1Y+Gdp#nUK{|<{|eFo delta 39 ucmeBS>|qp4D#*z!E-^5;!pOwT!pg?XK2cDZ%O^8CwKy~^Gqrr8UK{|a=VfZ;Vm4nrYBCPOYmDuo! Xl(MG2wNDrW7%(zIXa-Iw4Wlvv&o>kF delta 91 zcmbQlIEitB3YSl2c4~2GSY~SZL_ImTcmVX<9Gy^A;hEbUS$m|pS diff --git a/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings index 3463073d4d8a12d186a77a3f0c71d50b1cfdca81..d3b47bb34f487cc9a89fd664c507d4c4021f3e84 100644 GIT binary patch delta 59 zcmbQmIE!(D3RhTWYI$*}PiA)NL_JOAR6a&NBR*w55kAXwJ}y3UJ`X-gAg#+M#UUuA Ntf}u1o;0ya0RXXy48#Bc delta 59 zcmbQmIE!(D3YSl2c4~2GSY~SZL_JOAbUrRVb3P9~Ng%DuCzZ;_$Y;c-%qPNU$ss7E Ntf}u1o;I;c0RXU<49EZg diff --git a/WordPress/WordPressTodayWidget/tr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/tr.lproj/Localizable.strings index a4132157b027b48042369e50522444a73493f64b..7676bc6e0a308959c61e6050170a88ac62de0f10 100644 GIT binary patch delta 54 zcmZ3*xQcOt3RhTWYI$*}PiA)NL_KA}YzB9RZw$o@B@C$yMGTn?xf8wRIXMKSlr{A& K0y8FdDF6Vxiw_C_ delta 56 zcmZ3*xQcOt3YSl2c4~2GSY~SZL_KBU90n(bR7QD*RE9i;Ooki~J<(g1lS5ESSySI4 JFl%C$0sy>@4t@Xt diff --git a/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings index f8b9908be141e204fd06d7bfcb6c4887e4da7b1c..ed6502e7896ccd66ea494346dd2af7429118a090 100644 GIT binary patch delta 50 zcmd1Ho1mfZFuPs_Pe3pfO&lr{BDtnDWH GDF6Txr4u&* diff --git a/WordPress/WordPressTodayWidget/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/zh-Hant.lproj/Localizable.strings index ea493c3074944d33146bb0e50154e11bb4cdf8c1..f9332cb798415190abe931b930be85ccae2d8504 100644 GIT binary patch delta 41 xcmXRYn4qEi^1ORfH%@fb1^`U^5Y+$x From e92a973b085bdc522a14e80d533c85a4b28a1e25 Mon Sep 17 00:00:00 2001 From: Jeremy Massel <1123407+jkmassel@users.noreply.github.com> Date: Mon, 13 Dec 2021 13:45:38 -0700 Subject: [PATCH 371/371] Update metadata translations --- fastlane/metadata/ar-SA/release_notes.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fastlane/metadata/ar-SA/release_notes.txt b/fastlane/metadata/ar-SA/release_notes.txt index ec61f961f9db..e3827b76a0dc 100644 --- a/fastlane/metadata/ar-SA/release_notes.txt +++ b/fastlane/metadata/ar-SA/release_notes.txt @@ -1,6 +1,6 @@ أخبار سارة للجميع — قمنا بإصلاح أخطاء التطبيق الناتجة عن رفع الصور في أثناء عدم الاتصال بالإنترنت أو حذف الوسائط أو الاطلاع على تفاصيل خاصة بتنبيهات "الإعجاب". -أجرينا تغييرات كبيرة على محرِّر المكوِّن بحيث يمكنك الحفاظ على هدوئك والنشر عند: +أجرينا تغييرات كبيرة على محرِّر المكوِّنات بحيث يمكنك الحفاظ على هدوئك والنشر عند: - عندما تفتح الإعدادات الخاصة بمكوِّن الزر أو الصورة المرتبطة بعنوان URL، لن يقوم المحرِّر بملء عنوان URL تلقائيًا من حافظتك بعد الآن. سترى الآن اقتراح "رابط إلى" بحيث يمكنك استخدام عنوان URL الحافظة أو إدخال عنوان مختلف. - قم بإنشاء مكوِّن معرض، وسيتم فتح خيارات وسائط جهازك تلقائيًا، ما يُسهِّل لك إضافة صورك.

|xYTD#*z!E-^5;!pOwT!pO?T9_o{somw0bmRX!xl3!FD;hdkFo0?Zr92%CH hT3$TSN=rB@DnF?xu_`q$Gm%43TtQRcEplRx0szbb84Umc delta 58 zcmeBS>|qp7D#*z!E-^5;!pOwT!pg+P9vYUJT3$R+P=Y%uDnF?xu_`q$GjXE676*r* NxU8DKRp7)N1pwM}59I&= diff --git a/WordPress/WordPressTodayWidget/sq.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sq.lproj/Localizable.strings index e1513e8e1e882d6d597ee194cacd5daaf8874604..291c832c978c2ec6c3448b24b1bf3a6c2f171ef0 100644 GIT binary patch delta 74 zcmZo;Y-7|Ah9Sbl|xWmK~vw(KYU`E0svZv7Zd;h delta 53 zcmZo;Y-1EpD#*z!E-^5;!pOwT!pg?Z5gL}6T3$R+P?9wuu_!BbqP_+vhoHEun!c$^ I=)^Py0D4FbnE(I) diff --git a/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings index 03f2243687866a66cbe5321c1bf9c7a3274dfb49..4c2cee7a54073b20df9577ccd5429e98d886e4e3 100644 GIT binary patch delta 107 zcmbQlIEhg|sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( pYI*TQO9SIbpj=*NUV35?hoHEEroK~fJOdaoGD2tuPACndG69Rg7>ob_ delta 87 zcmbQlIEhg_sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?$zNu*~AT%)Io(qKWzjnjC`S XvTFL4KCuj7z{m)p891RdjLHN6jSvrJ diff --git a/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings index 274c1acffc807708870a5dc2825363f1f73727ff..281edf75e5738cb201ba3930f42b5588160c86a7 100644 GIT binary patch delta 79 zcmbQmIEzs~sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( iYI*TQD|3-lK1MzxK4m@;K1&WkaRp6%yU?_WRSE#PwHAc{ delta 59 zcmbQmIEzs{sURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?&|uK1MzxK4m@;KFf*v=A0aY O;<9S`R-OqHs}umP{S8_G diff --git a/WordPress/WordPressTodayWidget/tr.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/tr.lproj/Localizable.strings index 18f74dfbc94545d26f3573c56d84e2a2b83135c3..aca6f9abe924db066aa2a228667bfa0a2a464207 100644 GIT binary patch delta 71 zcmZ3*xQbCfsURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( aYI*TQH|vS|;+!0U;tHDj9*J2KyA%K<`xadQ delta 71 zcmZ3*xQbCcsURn_xWvHV3L_IU3o9EtM`&1PYI*TQK?(6}26u*U48;s345s1poj5 diff --git a/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings index 15ab25549c641c71198f56ffa333041a3d7ee94e..4522cc09f057637461cb4cc86fc038b9380cd501 100644 GIT binary patch delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BGylbM}b91)gToLQ1zR2<=)pPQSSS5h1rmYG^! ooY)(e+`T_~QEEX__mS>h$>~qaxl;=`1jQ9J^^Gj;Ci*D=0Oj!>F#rGn delta 64 zcmd1H6HhA0$t*50Fu20V#LU9V#?BEMmYG^!JW)_WJ~{nqId^J7VsBh>_x|WbsRc>h UN4j@$2#U+9>6=+PO!QL#0GrJfEdT%j diff --git a/WordPress/WordPressTodayWidget/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/zh-Hant.lproj/Localizable.strings index 27600a9cb7f661ecfe2cbbeb0799deab80cc37b3..6a645692f39770e04f6d87198e3270de69c904b6 100644 GIT binary patch delta 86 zcmXRY2uLc($t*50Fu20V#LU9V#?BGylbM}b91)gToLQ1zR2<=)pPQSSS5h1rmYG^! qoSe+rJu9^$sY@$*QBrAS7en&Ads8>2R&WT4D`@JQSvyP&Pyhf1*d7`H delta 66 zcmXRY5Kk(|$t*50Fu20V#LU9V#?BEMmYG^!JW)_WF?rs-sT)%(l9M^RXQfsob!kN} WN-B-)V&D)ImsQg@vvrynpa1~Ko)r`T From 366ef1edf3cc7f8e49487eda5961b95778ca9a1f Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Thu, 2 Dec 2021 18:55:04 +0100 Subject: [PATCH 348/371] 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 e3274064a181..0a839eb05773 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -6,4 +6,4 @@ VERSION_SHORT=18.8 // build for the day so I bumped it to 10/02. On 10/04 we'll code freeze 18.4 // and this should be the very last build for 18.3, so we should be fine. // – Gio -VERSION_LONG=18.8.0.20211201 +VERSION_LONG=18.8.0.20211202 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index 7f0611f3f15b..dacdc0f54f15 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.8.0.2 +VERSION_LONG=18.8.0.3 From 4d328cd73af19394a06a3d0e4e9d980d51927279 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 3 Dec 2021 12:12:07 +0100 Subject: [PATCH 349/371] Update Release Notes with Editorial'd copy --- WordPress/Jetpack/Resources/release_notes.txt | 21 ++++++++-------- WordPress/Resources/release_notes.txt | 24 ++++++++++--------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/WordPress/Jetpack/Resources/release_notes.txt b/WordPress/Jetpack/Resources/release_notes.txt index f5c06a64d170..5990df9c39cc 100644 --- a/WordPress/Jetpack/Resources/release_notes.txt +++ b/WordPress/Jetpack/Resources/release_notes.txt @@ -1,13 +1,14 @@ -Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications. -We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option. -We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word. +Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications. -When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including: +We made some big changes to the block editor so you can keep calm and publish on: -- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment. -- Rich content so you can see each comment just as the author wrote it. -- A share button for approved comments. -- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses. -- Tappable web address to visit the author's URL (instead of their avatar image). +- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one. +- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images. +- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language. +- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead. +- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch. +- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it. -Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp! +New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site. + +We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more. diff --git a/WordPress/Resources/release_notes.txt b/WordPress/Resources/release_notes.txt index 87b43737f178..5990df9c39cc 100644 --- a/WordPress/Resources/release_notes.txt +++ b/WordPress/Resources/release_notes.txt @@ -1,12 +1,14 @@ -* [*] Added a new About screen, with links to rate the app, share it with others, visit our Twitter profile, view our other apps, and more. [https://github.com/orgs/wordpress-mobile/projects/107] -* [*] Editor: Show a compact notice when switching between HTML or Visual mode. [https://github.com/wordpress-mobile/WordPress-iOS/pull/17521] -* [*] Onboarding Improvements: Need a little help after login? We're here for you. We've made a few changes to the login flow that will make it easier for you to start managing your site or create a new one. [#17564] -* [***] Fixed crash where uploading image when offline crashes iOS app. [#17488] -* [***] Fixed crash that was sometimes triggered when deleting media. [#17559] -* [***] Fixes a crasher that was sometimes triggered when seeing the details for like notifications. [#17529] -* [**] Block editor: Add clipboard link suggestion to image block and button block. [https://github.com/WordPress/gutenberg/pull/35972] -* [*] Block editor: Embed block: Include link in block settings. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4189] -* [**] Block editor: Fix tab titles translation of inserter menu. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4248] -* [**] Block editor: Gallery block: When a gallery block is added, the media options are auto opened for v2 of the Gallery block. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4277] -* [*] Block editor: Media & Text block: Fix an issue where the text font size would be bigger than expected in some cases. [https://github.com/wordpress-mobile/gutenberg-mobile/pull/4252] +Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications. +We made some big changes to the block editor so you can keep calm and publish on: + +- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one. +- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images. +- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language. +- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead. +- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch. +- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it. + +New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site. + +We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more. From 5fbb92e59d64d574e7692895238b827137da6c68 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 3 Dec 2021 12:13:13 +0100 Subject: [PATCH 350/371] Update metadata strings --- WordPress/Resources/AppStoreStrings.po | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/WordPress/Resources/AppStoreStrings.po b/WordPress/Resources/AppStoreStrings.po index 4f2bb9eb7611..750b8343f608 100644 --- a/WordPress/Resources/AppStoreStrings.po +++ b/WordPress/Resources/AppStoreStrings.po @@ -34,21 +34,22 @@ msgid "" "View the Privacy Notice for California Users at https://automattic.com/privacy/#california-consumer-privacy-act-ccpa.\n" msgstr "" -msgctxt "v18.7-whats-new" +msgctxt "v18.8-whats-new" msgid "" -"Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications.\n" -"We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option.\n" -"We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word.\n" +"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications.\n" "\n" -"When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including:\n" +"We made some big changes to the block editor so you can keep calm and publish on:\n" "\n" -"- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment.\n" -"- Rich content so you can see each comment just as the author wrote it.\n" -"- A share button for approved comments.\n" -"- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses.\n" -"- Tappable web address to visit the author's URL (instead of their avatar image).\n" +"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one.\n" +"- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images.\n" +"- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language.\n" +"- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" +"- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch.\n" +"- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it.\n" "\n" -"Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp!\n" +"New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site.\n" +"\n" +"We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more.\n" msgstr "" #. translators: This is a standard chunk of text used to tell a user what's new with a release when nothing major has changed. From 8f4b6a4e44d87850762266d65171c8b730db39a9 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 3 Dec 2021 12:13:17 +0100 Subject: [PATCH 351/371] Update metadata strings --- .../Jetpack/Resources/AppStoreStrings.po | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/WordPress/Jetpack/Resources/AppStoreStrings.po b/WordPress/Jetpack/Resources/AppStoreStrings.po index 982d00a2bd1e..4006deff1bda 100644 --- a/WordPress/Jetpack/Resources/AppStoreStrings.po +++ b/WordPress/Jetpack/Resources/AppStoreStrings.po @@ -38,21 +38,22 @@ msgctxt "app_store_keywords" msgid "social,notes,jetpack,writing,geotagging,media,blog,website,blogging,journal" msgstr "" -msgctxt "v18.7-whats-new" +msgctxt "v18.8-whats-new" msgid "" -"Two-step authentication now comes with extra security. You'll need to unlock your device to approve or deny notifications.\n" -"We expanded the “Link To” setting for the image block to include “Media File” and “Attachment Page” options alongside the preexisting “Custom URL” option.\n" -"We fixed an issue that made the interface crash when users copied and pasted lists from Microsoft Word.\n" +"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications.\n" "\n" -"When you head over to My Site > Comments, you'll see a fresh look and even fresher comment details, including:\n" +"We made some big changes to the block editor so you can keep calm and publish on:\n" "\n" -"- A sneak peek of the post title or parent comment, depending on whether the author left a comment on the post or replied to an existing comment.\n" -"- Rich content so you can see each comment just as the author wrote it.\n" -"- A share button for approved comments.\n" -"- Users with Administrator or Editor roles can see the comment authors’ email and IP addresses.\n" -"- Tappable web address to visit the author's URL (instead of their avatar image).\n" +"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one.\n" +"- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images.\n" +"- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language.\n" +"- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" +"- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch.\n" +"- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it.\n" "\n" -"Finally, we updated the UI for the Reply view, both minimized and fullscreen. Looking sharp!\n" +"New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site.\n" +"\n" +"We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more.\n" msgstr "" #. translators: This is a promo message that will be attached on top of the first screenshot in the App Store. From 2e840c8454ac15cbd98dfcc79a95cb058a3f9454 Mon Sep 17 00:00:00 2001 From: Olivier Halligon Date: Fri, 3 Dec 2021 18:32:27 +0100 Subject: [PATCH 352/371] Fix unescaped quotes in AppStoreStrings.po --- WordPress/Jetpack/Resources/AppStoreStrings.po | 6 +++--- WordPress/Resources/AppStoreStrings.po | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/WordPress/Jetpack/Resources/AppStoreStrings.po b/WordPress/Jetpack/Resources/AppStoreStrings.po index 4006deff1bda..3e6a12ca5f74 100644 --- a/WordPress/Jetpack/Resources/AppStoreStrings.po +++ b/WordPress/Jetpack/Resources/AppStoreStrings.po @@ -40,14 +40,14 @@ msgstr "" msgctxt "v18.8-whats-new" msgid "" -"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications.\n" +"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for \"Like\" notifications.\n" "\n" "We made some big changes to the block editor so you can keep calm and publish on:\n" "\n" -"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one.\n" +"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a \"Link To\" suggestion so you can use the clipboard URL or enter a different one.\n" "- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images.\n" "- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language.\n" -"- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" +"- When you're using the Embed block, you won't see the \"Edit\" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" "- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch.\n" "- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it.\n" "\n" diff --git a/WordPress/Resources/AppStoreStrings.po b/WordPress/Resources/AppStoreStrings.po index 750b8343f608..92205326532a 100644 --- a/WordPress/Resources/AppStoreStrings.po +++ b/WordPress/Resources/AppStoreStrings.po @@ -36,14 +36,14 @@ msgstr "" msgctxt "v18.8-whats-new" msgid "" -"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications.\n" +"Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for \"Like\" notifications.\n" "\n" "We made some big changes to the block editor so you can keep calm and publish on:\n" "\n" -"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one.\n" +"- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a \"Link To\" suggestion so you can use the clipboard URL or enter a different one.\n" "- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images.\n" "- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language.\n" -"- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" +"- When you're using the Embed block, you won't see the \"Edit\" action in the toolbar. You can now change the URL by going into Block Settings instead.\n" "- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch.\n" "- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it.\n" "\n" From 7e75259d26cce1409f4e01b79b7feba6527994a4 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 8 Dec 2021 16:44:59 +0700 Subject: [PATCH 353/371] Use derived context for WeeklyRoundup background task --- .../Utility/BackgroundTasks/WeeklyRoundupBackgroundTask.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPress/Classes/Utility/BackgroundTasks/WeeklyRoundupBackgroundTask.swift b/WordPress/Classes/Utility/BackgroundTasks/WeeklyRoundupBackgroundTask.swift index 17d7eb61449d..f679b5238d2c 100644 --- a/WordPress/Classes/Utility/BackgroundTasks/WeeklyRoundupBackgroundTask.swift +++ b/WordPress/Classes/Utility/BackgroundTasks/WeeklyRoundupBackgroundTask.swift @@ -163,7 +163,7 @@ class WeeklyRoundupDataProvider { /// Filters the sites that have the Weekly Roundup notification setting enabled. /// private func filterWeeklyRoundupEnabledSites(_ sites: [Blog], result: @escaping (Result<[Blog], Error>) -> Void) { - let noteService = NotificationSettingsService(managedObjectContext: ContextManager.sharedInstance().mainContext) + let noteService = NotificationSettingsService(managedObjectContext: context) noteService.getAllSettings { settings in let weeklyRoundupEnabledSites = sites.filter { site in @@ -377,7 +377,7 @@ class WeeklyRoundupBackgroundTask: BackgroundTask { } } - let dataProvider = WeeklyRoundupDataProvider(context: ContextManager.shared.mainContext, onError: onError) + let dataProvider = WeeklyRoundupDataProvider(context: ContextManager.shared.newDerivedContext(), onError: onError) var siteStats: [Blog: StatsSummaryData]? = nil let requestData = BlockOperation { From 26c4570333b873335f1469899057b70f11b12dc6 Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 8 Dec 2021 10:57:54 +0000 Subject: [PATCH 354/371] Unified About: Fix border around SpriteKit view on some devices --- .../Me/App Settings/About/AutomatticAppLogosCell.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift index 2305b5687a73..9c86d2c90457 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAppLogosCell.swift @@ -21,6 +21,8 @@ class AutomatticAppLogosCell: UITableViewCell { func commonInit() { spriteKitView = SKView(frame: Metrics.sceneFrame) + spriteKitView.allowsTransparency = true + logosScene = AppLogosScene() // Scene is resized to match the view From 3cc1a6de098a8044b576cc8521ec43562247b7d7 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 8 Dec 2021 11:02:12 +0000 Subject: [PATCH 355/371] Fix: mark the chosen site as a recent site This fixes an issue where the incorrect site was being shown after closing then reopening the app. --- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 5e0ce52b70e7..9f417c2fa213 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -17,12 +17,16 @@ class WordPressAuthenticationManager: NSObject { private let quickStartSettings: QuickStartSettings + private let recentSiteService: RecentSitesService + init(windowManager: WindowManager, authenticationHandler: AuthenticationHandler? = nil, - quickStartSettings: QuickStartSettings = QuickStartSettings()) { + quickStartSettings: QuickStartSettings = QuickStartSettings(), + recentSiteService: RecentSitesService = RecentSitesService()) { self.windowManager = windowManager self.authenticationHandler = authenticationHandler self.quickStartSettings = quickStartSettings + self.recentSiteService = recentSiteService } /// Support is only available to the WordPress iOS App. Our Authentication Framework doesn't have direct access. @@ -353,6 +357,8 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { return } + self.recentSiteService.touch(blog: blog) + guard self.quickStartSettings.isQuickStartAvailable(for: blog) else { self.windowManager.dismissFullscreenSignIn(blogToShow: blog) return From f5607973ccee89bdb1277b8999d72fd5fd7d38f8 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 8 Dec 2021 11:23:53 +0000 Subject: [PATCH 356/371] Fix: scale QS prompt labels w system font size --- .../ViewRelated/Blog/QuickStartPromptViewController.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift index e5e6363a687e..0686073924de 100644 --- a/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift +++ b/WordPress/Classes/ViewRelated/Blog/QuickStartPromptViewController.swift @@ -59,18 +59,26 @@ final class QuickStartPromptViewController: UIViewController { private func applyStyles() { siteTitleLabel.numberOfLines = 0 siteTitleLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + siteTitleLabel.adjustsFontForContentSizeCategory = true + siteTitleLabel.adjustsFontSizeToFitWidth = true siteTitleLabel.textColor = .text siteDescriptionLabel.numberOfLines = 0 siteDescriptionLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + siteDescriptionLabel.adjustsFontForContentSizeCategory = true + siteDescriptionLabel.adjustsFontSizeToFitWidth = true siteDescriptionLabel.textColor = .textSubtle promptTitleLabel.numberOfLines = 0 promptTitleLabel.font = WPStyleGuide.fontForTextStyle(.callout, fontWeight: .medium) + promptTitleLabel.adjustsFontForContentSizeCategory = true + promptTitleLabel.adjustsFontSizeToFitWidth = true promptTitleLabel.textColor = .text promptDescriptionLabel.numberOfLines = 0 promptDescriptionLabel.font = WPStyleGuide.fontForTextStyle(.subheadline) + promptDescriptionLabel.adjustsFontForContentSizeCategory = true + promptDescriptionLabel.adjustsFontSizeToFitWidth = true promptDescriptionLabel.textColor = .textSubtle showMeAroundButton.isPrimary = true From 4e987946e08ab950a302bafaee4ae5afde5ac789 Mon Sep 17 00:00:00 2001 From: David Christiandy <1299411+dvdchr@users.noreply.github.com> Date: Wed, 8 Dec 2021 19:19:14 +0700 Subject: [PATCH 357/371] Increase timeout duration for LikeUserHelperTests --- WordPress/WordPressTest/LikeUserHelperTests.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/WordPress/WordPressTest/LikeUserHelperTests.swift b/WordPress/WordPressTest/LikeUserHelperTests.swift index 749ba5c59caa..601a5930ac73 100644 --- a/WordPress/WordPressTest/LikeUserHelperTests.swift +++ b/WordPress/WordPressTest/LikeUserHelperTests.swift @@ -2,6 +2,11 @@ import XCTest class LikeUserHelperTests: XCTestCase { + + let timeoutDuration: TimeInterval = 2 + + // MARK: Tests + func createTestRemoteUserDictionary(withPreferredBlog hasPreferredBlog: Bool) -> [String: Any] { var remoteUserDictionary: [String: Any] = [ "ID": 15, @@ -42,7 +47,7 @@ class LikeUserHelperTests: XCTestCase { completionExpectation.fulfill() }) - waitForExpectations(timeout: 0.1) + wait(for: [completionExpectation], timeout: timeoutDuration) } func testUpdatingExistingUserToRemovePreferredBlog() { @@ -76,6 +81,6 @@ class LikeUserHelperTests: XCTestCase { completionExpectation.fulfill() }) - waitForExpectations(timeout: 0.1) + wait(for: [completionExpectation], timeout: timeoutDuration) } } From 9e1f130d172cf2bfaaed5d2808262fe1677d2ef2 Mon Sep 17 00:00:00 2001 From: James Frost Date: Wed, 8 Dec 2021 14:58:44 +0000 Subject: [PATCH 358/371] Unified About: Improve header view dynamic type support --- .../App Settings/About/AboutHeaderView.swift | 14 +++++----- .../About/AutomatticAboutScreen.swift | 27 +++++++++++++++++-- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift index 4308fe0752ee..ef1a20f2075b 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AboutHeaderView.swift @@ -99,6 +99,7 @@ final class AboutHeaderView: UIView { let appVersionLabel = makeAppVersionLabel() let closeButton = makeCloseButton() + translatesAutoresizingMaskIntoConstraints = false clipsToBounds = true stackView.addArrangedSubviews([ @@ -113,14 +114,11 @@ final class AboutHeaderView: UIView { addSubview(closeButton) NSLayoutConstraint.activate([ - iconView.centerXAnchor.constraint(equalTo: stackView.centerXAnchor), iconView.heightAnchor.constraint(equalToConstant: sizing.appIconWidthAndHeight), iconView.widthAnchor.constraint(equalToConstant: sizing.appIconWidthAndHeight), - appNameLabel.centerXAnchor.constraint(equalTo: stackView.centerXAnchor), - appVersionLabel.centerXAnchor.constraint(equalTo: stackView.centerXAnchor), - - stackView.centerXAnchor.constraint(equalTo: centerXAnchor), + stackView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: Metrics.edgeMargin), + stackView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -Metrics.edgeMargin), stackView.topAnchor.constraint(equalTo: topAnchor, constant: spacing.aboveAndBelowHeaderView), stackView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -spacing.aboveAndBelowHeaderView), @@ -149,6 +147,7 @@ final class AboutHeaderView: UIView { appNameLabel.lineBreakMode = .byWordWrapping appNameLabel.numberOfLines = 1 appNameLabel.font = fonts.appName + appNameLabel.adjustsFontForContentSizeCategory = true return appNameLabel } @@ -156,10 +155,12 @@ final class AboutHeaderView: UIView { let appVersionLabel = UILabel() appVersionLabel.text = appInfo.version + appVersionLabel.textAlignment = .center appVersionLabel.lineBreakMode = .byWordWrapping - appVersionLabel.numberOfLines = 1 + appVersionLabel.numberOfLines = 2 appVersionLabel.font = fonts.appVersion appVersionLabel.textColor = .secondaryLabel + appVersionLabel.adjustsFontForContentSizeCategory = true return appVersionLabel } @@ -202,5 +203,6 @@ final class AboutHeaderView: UIView { static let closeButtonRadius: CGFloat = 30 static let closeButtonInset: CGFloat = 16 static let closeButtonSymbolSize: CGFloat = 16 + static let edgeMargin: CGFloat = 16.0 } } diff --git a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift index 2d3d497136b5..7f171b944914 100644 --- a/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift +++ b/WordPress/Classes/ViewRelated/Me/App Settings/About/AutomatticAboutScreen.swift @@ -62,7 +62,7 @@ class AutomatticAboutScreen: UIViewController { // Setting the frame once is needed so that the table view header will show. // This seems to be a table view bug although I'm not entirely sure. - headerView.frame.size = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize) + headerView.frame.size.height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height return headerView }() @@ -138,9 +138,15 @@ class AutomatticAboutScreen: UIViewController { tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), tableView.topAnchor.constraint(equalTo: view.safeTopAnchor), - tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor) + tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), ]) + if let headerView = headerView { + headerView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true + } + + updateHeaderSize() + tableView.reloadData() } @@ -173,6 +179,23 @@ class AutomatticAboutScreen: UIViewController { } } + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + + updateHeaderSize() + } + + private func updateHeaderSize() { + guard let headerView = headerView else { + return + } + + headerView.layoutIfNeeded() + + headerView.frame.size.height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height + tableView.tableHeaderView = headerView + } + // MARK: - Actions @objc private func dismissAboutScreen() { From f7393d44d3148c51ff18971716c0b9ed40206144 Mon Sep 17 00:00:00 2001 From: Momo Ozawa Date: Wed, 8 Dec 2021 17:58:06 +0000 Subject: [PATCH 359/371] Fix: show the selected site after wpcom login This fixes an issue for the site addres login -> wpcom login flow, where tapping on a non-p2 site would not do anything. --- .../ViewRelated/NUX/WordPressAuthenticationManager.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift index 9f417c2fa213..7fe13430fa98 100644 --- a/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift +++ b/WordPress/Classes/ViewRelated/NUX/WordPressAuthenticationManager.swift @@ -360,7 +360,11 @@ extension WordPressAuthenticationManager: WordPressAuthenticatorDelegate { self.recentSiteService.touch(blog: blog) guard self.quickStartSettings.isQuickStartAvailable(for: blog) else { - self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + if self.windowManager.isShowingFullscreenSignIn { + self.windowManager.dismissFullscreenSignIn(blogToShow: blog) + } else { + self.windowManager.showAppUI(for: blog) + } return } From 4324d249d351703a090812c907f9252d84084e77 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 8 Dec 2021 22:09:04 +0100 Subject: [PATCH 360/371] Update translations --- .../Resources/ar.lproj/Localizable.strings | 54 ++++++------- .../Resources/de.lproj/Localizable.strings | 54 ++++++------- .../Resources/es.lproj/Localizable.strings | 4 +- .../Resources/fr.lproj/Localizable.strings | 34 ++++---- .../Resources/he.lproj/Localizable.strings | 54 ++++++------- .../Resources/id.lproj/Localizable.strings | 6 +- .../Resources/it.lproj/Localizable.strings | 54 ++++++------- .../Resources/ja.lproj/Localizable.strings | 54 ++++++------- .../Resources/ko.lproj/Localizable.strings | 54 ++++++------- .../Resources/sq.lproj/Localizable.strings | 74 +++++++++--------- .../Resources/tr.lproj/Localizable.strings | 54 ++++++------- .../zh-Hans.lproj/Localizable.strings | 54 ++++++------- .../zh-Hant.lproj/Localizable.strings | 54 ++++++------- .../ar.lproj/Localizable.strings | Bin 4619 -> 4619 bytes .../bg.lproj/Localizable.strings | Bin 3614 -> 3614 bytes .../cs.lproj/Localizable.strings | Bin 4887 -> 4887 bytes .../cy.lproj/Localizable.strings | Bin 3239 -> 3239 bytes .../da.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../de.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../en-AU.lproj/Localizable.strings | Bin 3057 -> 3057 bytes .../en-CA.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../en-GB.lproj/Localizable.strings | Bin 3067 -> 3067 bytes .../es.lproj/Localizable.strings | Bin 4114 -> 4114 bytes .../fr.lproj/Localizable.strings | Bin 5336 -> 5336 bytes .../he.lproj/Localizable.strings | Bin 4586 -> 4586 bytes .../hr.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../hu.lproj/Localizable.strings | Bin 3297 -> 3297 bytes .../id.lproj/Localizable.strings | Bin 3469 -> 3469 bytes .../is.lproj/Localizable.strings | Bin 3414 -> 3414 bytes .../it.lproj/Localizable.strings | Bin 3926 -> 3926 bytes .../ja.lproj/Localizable.strings | Bin 3632 -> 3632 bytes .../ko.lproj/Localizable.strings | Bin 3476 -> 3476 bytes .../nb.lproj/Localizable.strings | Bin 3832 -> 3832 bytes .../nl.lproj/Localizable.strings | Bin 3691 -> 3691 bytes .../pl.lproj/Localizable.strings | Bin 3214 -> 3214 bytes .../pt-BR.lproj/Localizable.strings | Bin 4574 -> 4574 bytes .../pt.lproj/Localizable.strings | Bin 3712 -> 3712 bytes .../ro.lproj/Localizable.strings | Bin 4930 -> 4930 bytes .../ru.lproj/Localizable.strings | Bin 5105 -> 5105 bytes .../sk.lproj/Localizable.strings | Bin 4899 -> 4899 bytes .../sq.lproj/Localizable.strings | Bin 4927 -> 4927 bytes .../sv.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../th.lproj/Localizable.strings | Bin 3316 -> 3316 bytes .../tr.lproj/Localizable.strings | Bin 4905 -> 4905 bytes .../zh-Hans.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../zh-Hant.lproj/Localizable.strings | Bin 3102 -> 3102 bytes .../ar.lproj/Localizable.strings | Bin 146 -> 146 bytes .../bg.lproj/Localizable.strings | Bin 174 -> 174 bytes .../cs.lproj/Localizable.strings | Bin 176 -> 176 bytes .../cy.lproj/Localizable.strings | Bin 118 -> 118 bytes .../da.lproj/Localizable.strings | Bin 128 -> 128 bytes .../de.lproj/Localizable.strings | Bin 139 -> 139 bytes .../en-AU.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-CA.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-GB.lproj/Localizable.strings | Bin 84 -> 84 bytes .../es.lproj/Localizable.strings | Bin 128 -> 128 bytes .../fr.lproj/Localizable.strings | Bin 129 -> 129 bytes .../he.lproj/Localizable.strings | Bin 150 -> 150 bytes .../hr.lproj/Localizable.strings | Bin 119 -> 119 bytes .../hu.lproj/Localizable.strings | Bin 160 -> 160 bytes .../id.lproj/Localizable.strings | Bin 134 -> 134 bytes .../is.lproj/Localizable.strings | Bin 138 -> 138 bytes .../it.lproj/Localizable.strings | Bin 131 -> 131 bytes .../ja.lproj/Localizable.strings | Bin 118 -> 118 bytes .../ko.lproj/Localizable.strings | Bin 110 -> 110 bytes .../nb.lproj/Localizable.strings | Bin 133 -> 133 bytes .../nl.lproj/Localizable.strings | Bin 131 -> 131 bytes .../pl.lproj/Localizable.strings | Bin 96 -> 96 bytes .../pt-BR.lproj/Localizable.strings | Bin 158 -> 158 bytes .../pt.lproj/Localizable.strings | Bin 156 -> 156 bytes .../ro.lproj/Localizable.strings | Bin 148 -> 148 bytes .../ru.lproj/Localizable.strings | Bin 166 -> 166 bytes .../sk.lproj/Localizable.strings | Bin 140 -> 140 bytes .../sq.lproj/Localizable.strings | Bin 134 -> 134 bytes .../sv.lproj/Localizable.strings | Bin 146 -> 146 bytes .../th.lproj/Localizable.strings | Bin 154 -> 154 bytes .../tr.lproj/Localizable.strings | Bin 170 -> 170 bytes .../zh-Hans.lproj/Localizable.strings | Bin 110 -> 110 bytes .../zh-Hant.lproj/Localizable.strings | Bin 112 -> 112 bytes 79 files changed, 302 insertions(+), 302 deletions(-) diff --git a/WordPress/Resources/ar.lproj/Localizable.strings b/WordPress/Resources/ar.lproj/Localizable.strings index dc26f0a69102..f85c72384c08 100644 --- a/WordPress/Resources/ar.lproj/Localizable.strings +++ b/WordPress/Resources/ar.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-29 16:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-05 04:15:05+0000 */ /* Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ((n == 1) ? 1 : ((n == 2) ? 2 : ((n % 100 >= 3 && n % 100 <= 10) ? 3 : ((n % 100 >= 11 && n % 100 <= 99) ? 4 : 5)))); */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ar */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ لإصلاح التهديدات."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d تعليق"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d تعليقات"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "قم بمشاركة المقالات الجديدة تلقائيًا على شبكات التواصل الاجتماعي الخاصة بك لبدء لجلب ذلك الجمهور مباشرةً إلى موقعك."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "عائلة Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "تحديثات تلقائية"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "التحقّق من إحصاءات موقعك"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "التحقُّق من عنوان موقعك"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "جاري التحقق من عمليات الشراء…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "اختيار أيقونة تطبيق جديدة"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "اختيار موقع لفتحه."; /* Title of a Quick Start Tour */ "Choose a theme" = "اختيار قالب"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "اختيار وقت"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "اختيار أيقونة موقع فريدة"; /* No comment provided by engineer. */ "Choose audio" = "اختيار الصوت"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "مُنجَز: التحقّق من إحصاءات موقعك"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "مُنجَز: التحقّق من عنوان موقعك"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "مُنجَز: اختيار قالب"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "مُنجَز: اختيار أيقونة فريدة للموقع"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "مُنجَز: الاستمرار في إعداد الموقع"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "مُنجَز: مراجعة صفحات الموقع"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "مُنجَز: المشاركة عبر شبكات التواصل الاجتماعي"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "مُنجَز: مشاهدة موقعك"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "نسخ الرابط إلى التعليق"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "نسخ الرابط URL من الحافظة، %s"; /* No comment provided by engineer. */ "Copy block" = "نسخ المكوِّن"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "مسودة"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "اكتب مسودّة مقالة ثم أنشرها."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "من جهاز آخر"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "من الحافظة"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "من هذا الجهاز"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "سيُحسّن Jetpack صورك ويوفِّرها من موقع الخادم الأقرب إلى زائريك. سيؤدي استخدام شبكة توصيل المحتوى العالمية إلى تعزيز سرعة التحميل في موقعك."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "انضم من أي مكان"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "الانضمام إلى محادثة: التعليق على المقالات من المدونات التي تتابعها."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "اعرف المزيد..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "تعرَّف على الأساسيات من خلال جولة سريعة."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "يسار"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "الأيقونات القديمة"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "الشؤون القانونية والمزيد"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "دعنا نساعدك"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "البدء السريع"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "قيّمنا"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "ضع تصنيفًا لنا على متجر التطبيقات"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "رابط المشاركة"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "مشاركة مع الأصدقاء"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "عرض المقالات ذات الصلة"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "خذني في جولة"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "معروض"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "تظهر في علامة تبويب متصفح زائرك وأماكن أخرى عبر الإنترنت."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "يظهر للعامة عندما تعلِّق على المدونات."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "اجتماعي"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "المشاركة عبر شبكات التواصل الاجتماعي"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "تتضمن بعض المكوِّنات إعدادات إضافية. انقر على أيقونة الإعدادات الموجودة في أسفل يمين المكوِّن لعرض مزيد من الخيارات."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "التبديل إلى مُحرر المكوّنات"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "تم التبديل إلى وضع HTML"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "تم التبديل إلى الوضع المرئي"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "التبديل إلى حجم الخط 1 في العنوان"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "عرض الكل"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "عرض كل التعليقات"; /* Button label for viewing a post */ "View Post" = "مشاهدة المقالة"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "جاري الانتظار..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "هل تريد بعض المساعدة بشأن إدارة هذا الموقع باستخدام التطبيق؟"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "صفحة الإضافة على WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "العمل معنا"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "تُظهر خريطة العالم المشاهدات حسب البلد."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "يمكنك إعادة ترتيب المكوِّنات عن طريق النقر على مكوِّن، ثم النقر على الأسهم المتجهة إلى الأعلى والأسفل التي تظهر أسفل يسار المكوِّن لنقله فوق المكوِّنات الأخرى أو أسفلها."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "يمكنك تبديل المواقع في أي وقت."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "يمكن تحديث هذا في أي وقت من خلال موقعي > إعدادات الموقع"; diff --git a/WordPress/Resources/de.lproj/Localizable.strings b/WordPress/Resources/de.lproj/Localizable.strings index 1b6e0ea72e68..8a44ac84f83f 100644 --- a/WordPress/Resources/de.lproj/Localizable.strings +++ b/WordPress/Resources/de.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-08 11:54:10+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: de */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@, um Bedrohungen zu beheben."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d Kommentar"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d Kommentare"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Teile neue Beiträge automatisch in deinen sozialen Medien, um diese Zielgruppe auf deine Website zu holen."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic-Familie"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Automatische Updates"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Überprüfe deine Website-Statistiken"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Deinen Website-Titel prüfen"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Überprüfe Käufe …"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Wähle ein neues App-Icon"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Wähle eine Website aus, die geöffnet werden soll."; /* Title of a Quick Start Tour */ "Choose a theme" = "Wähle ein Theme"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Uhrzeit auswählen"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Ein einzigartiges Website-Icon auswählen"; /* No comment provided by engineer. */ "Choose audio" = "Audio-Datei wählen"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "Abgeschlossen: Deine Website-Statistiken prüfen"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "Abgeschlossen: Deinen Website-Titel prüfen"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Abgeschlossen: Ein Theme auswählen"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Abgeschlossen: Ein einzigartiges Website-Icon auswählen"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Abgeschlossen: Mit der Website-Einrichtung fortfahren"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Abgeschlossen: Website-Seiten prüfen"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Abgeschlossen: Social Sharing"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Abgeschlossen: Anzeigen deiner Website"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Link in Kommentar kopieren"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Kopiere die URL aus der Zwischenablage: %s"; /* No comment provided by engineer. */ "Copy block" = "Block kopieren"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Entwurf"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Entwirf und veröffentliche einen Beitrag."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Von einem anderen Gerät"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Aus der Zwischenablage"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Von diesem Gerät"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimiert deine Bilder und stellt sie über den Server-Standort bereit, der am nächsten an deinen Website-Besuchern liegt. Unser globales Netzwerk für Content-Auslieferung verkürzt die Ladezeiten deiner Website."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Von überall aus mitmachen"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Einer Unterhaltung beitreten: Kommentiere Beiträge aus Blogs, denen du folgst."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Mehr erfahren…"; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Lerne die Grundlagen mit einer kurzen Erklärung."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Links"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Veraltete Icons"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Rechtliches und mehr"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Wir helfen dir"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Schnellstart"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Bewerte uns"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Bewerte uns im App-Store"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Link teilen"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Mit Freunden teilen"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Ähnliche Beiträge anzeigen"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Zeig mir alles"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Wird angezeigt"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Wird auf dem Browser-Tab deines Besuchers und an anderen Stellen online angezeigt."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Wird öffentlich angezeigt, wenn du auf Blogs kommentierst."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Social Media"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Social Sharing"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Einige Blöcke verfügen über zusätzliche Einstellungen. Tippe auf das Einstellungs-Icon unten rechts im Block, um dir die Optionen anzusehen."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Zum Block-Editor wechseln"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "Zum HTML-Modus gewechselt"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "Zum visuellen Modus gewechselt"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Wechselt zur Schriftgröße der Überschrift 1"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Alles anzeigen"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Alle Kommentare anzeigen"; /* Button label for viewing a post */ "View Post" = "Beitrag anzeigen"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "Warten …"; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "Brauchst du ein wenig Hilfe dabei, diese Website mit der App zu verwalten?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "Plugin-Seite von WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Werde Teil unseres Teams"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Weltkarte mit Aufrufen pro Land."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Du kannst Blocks neu anordnen, indem du auf einen Block tippst und ihn dann mit den Pfeilen nach oben und unten, die unten links auf dem Block erscheinen, an die passende Stelle navigieren."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Du kannst die Websites jederzeit wechseln."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Unter „Meine Website“ → „Einstellungen“ kannst du dies jederzeit aktualisieren."; diff --git a/WordPress/Resources/es.lproj/Localizable.strings b/WordPress/Resources/es.lproj/Localizable.strings index e0b9d1c42874..d3350af8e688 100644 --- a/WordPress/Resources/es.lproj/Localizable.strings +++ b/WordPress/Resources/es.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-12-01 08:45:30+0000 */ +/* Translation-Revision-Date: 2021-12-07 07:34:59+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: es */ @@ -5196,7 +5196,7 @@ translators: Block name. %s: The localized block name */ "Please enter a valid State" = "Por favor, introduce una provincia válida"; /* Title of a prompt. */ -"Please enter a valid URL" = "Por favor introduce una URL válida"; +"Please enter a valid URL" = "Por favor, introduce una URL válida"; /* Register Domain - Domain contact information validation error message for an input field */ "Please enter a valid address" = "Introduce una dirección válida"; diff --git a/WordPress/Resources/fr.lproj/Localizable.strings b/WordPress/Resources/fr.lproj/Localizable.strings index 1c2fb30ff2ac..f75ef2e32ed3 100644 --- a/WordPress/Resources/fr.lproj/Localizable.strings +++ b/WordPress/Resources/fr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-29 09:26:53+0000 */ +/* Translation-Revision-Date: 2021-12-08 16:54:08+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: fr */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ pour corriger les menaces."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d commentaire"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d commentaires"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Partagez automatiquement les nouveaux articles sur vos médias sociaux pour attirer ce public sur votre site."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Famille Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Mises à jour automatiques"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Vérifiez les statistiques de votre site"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Vérifiez le titre de votre site"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Vérification des achats…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Choisir une nouvelle icône d’application"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Sélectionnez un site à ouvrir."; /* Title of a Quick Start Tour */ "Choose a theme" = "Choisissez un thème"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Choisir une heure"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Choisir une favicône unique"; /* No comment provided by engineer. */ "Choose audio" = "Choisir un fichier sonore"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "Terminé : vérifiez vos statistiques"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "Terminé : vérifiez le titre de votre site"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Terminé : choisissez votre thème"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Terminé : favicône unique choisie"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Terminé : continuez vers les réglages du site"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Terminé : Passer en revue les pages du site"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Terminé : partage sur les réseaux sociaux"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Terminé : affichez votre site"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Copier le lien dans le commentaire."; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Copiez l’URL à partir du presse-papier, %s"; /* No comment provided by engineer. */ "Copy block" = "Copier le bloc"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Brouillon"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Rédigez un brouillon et publiez un article de blog."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack optimisera vos images et les servira depuis le serveur le plus proche de vos visiteurs. L’usage de notre réseau de livraison de contenu (CDN) accélérera la vitesse de chargement de votre site."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Rejoignez-nous, où que vous soyez"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Rejoindre une conversation : commentez sur les articles des blogs auxquels vous êtes abonnés."; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Icônes héritées"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Mentions légales, etc."; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Laissez-nous vous aider"; @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Afficher les articles similaires"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Me faire découvrir"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Affiché"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Contenu affiché dans l’onglet du navigateur de vos visiteurs et à d’autres endroits en ligne."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Affichée publiquement quand vous commentez sur des blogs."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Social"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Partage sur les réseaux sociaux"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Certains blocs ont des réglages supplémentaires. Appuyez sur l’icône des réglages en bas à droite du bloc pour afficher plus d’options."; diff --git a/WordPress/Resources/he.lproj/Localizable.strings b/WordPress/Resources/he.lproj/Localizable.strings index 08473827641f..3a7615698dd4 100644 --- a/WordPress/Resources/he.lproj/Localizable.strings +++ b/WordPress/Resources/he.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-08 13:54:08+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: he_IL */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ כדי לתקן את האיומים."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "תגובה ⁦%1$d⁩"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "⁦%1$d⁩ תגובות"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "ניתן לשתף באופן אוטומטי פוסטים חדשים ברשתות החברתיות כדי להביא עוד קהל לאתר שלך."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "משפחת Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "עדכונים אוטומטיים"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "בדיקת הנתונים הסטטיסטיים של האתר שלך"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "לבדוק את שם האתר שלך"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "בודק רכישות…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "לבחור סמל חדש לאפליקציה"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "לבחור אתר לפתיחה."; /* Title of a Quick Start Tour */ "Choose a theme" = "בחירת ערכת עיצוב"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "לבחור שעה"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "לבחור סמל ייחודי לאתר"; /* No comment provided by engineer. */ "Choose audio" = "לבחור אודיו"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "הושלם: לבדיקת הנתונים הסטטיסטיים של האתר שלך"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "הושלם: לבדוק את שם האתר שלך"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "הושלם: לבחירה של ערכת עיצוב"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "הושלם: לבחור סמל ייחודי לאתר"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "הושלם: להמשך הגדרת האתר"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "הושלם: לבדוק עמודים באתר"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "הושלם: שיתוף ברשתות חברתיות"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "הושלם: להצגת האתר שלך"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "העתקת הקישור לתגובה"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "להעתיק כתובת URL מהלוח, %s"; /* No comment provided by engineer. */ "Copy block" = "להעתיק בלוק"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "טיוטה"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "לכתוב טיוטה ולפרסם פוסט."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "ממכשיר אחר"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "מהלוח"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "מהמכשיר הזה"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack ימטב את התמונות שלך ויציג אותם ממיקום השרת הקרוב ביותר למבקרים שלך. שימוש ברשת שליחת התוכן העולמית שלנו ישפר את מהירות הטעינה של האתר שלך."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "להצטרף מכל מקום"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "הצטרפות לדיון: הוספת תגובה על פוסטים בבלוגים תחת מעקב שלך."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "מידע נוסף..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "כדאי ללמוד את השלבים הבסיסיים באמצעות סקירה זריזה."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "שמאל"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "סמלים ישנים"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "מידע משפטי ופרטים נוספים"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "תנו לנו לעזור"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "התחלה מהירה"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "נשמח לקבל ממך דירוג"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "נשמח לקבל ממך דירוג בחנות האפליקציות"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "שיתוף הקישור"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "לשתף עם חברים"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "הצג תכנים באותו נושא"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "הראו לי את האפשרויות הקיימות"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "מוצג"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "מוצג בלשונית הדפדפן של המבקרים באתר שלך ובמיקומים שונים באינטרנט."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "תוצג באופן ציבורי כשתגיב על בלוגים."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "רשתות חברתיות"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "שיתוף ברשתות חברתיות"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "בבלוקים מסוימים יש הגדרות נוספות. יש להקיש על סמל ההגדרות בפינה הימנית התחתונה של הבלוק כדי להציג את האפשרויות הנוספות."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "להחליף לעורך הבלוקים"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "הוחלף לעורך HTML"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "הוחלף לעורך החזותי"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "מבצע החלפה לגודל גופן 1 בכותרת"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "להציג הכול"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "להציג את כל התגובות"; /* Button label for viewing a post */ "View Post" = "הצג פוסט"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "ממתין..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "נדרשת לך עזרה בניהול האתר באמצעות האפליקציה?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "עמוד התוספים של WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "הצטרפות לכוח העבודה שלנו"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "מפת העולם שמציגה צפיות לפי מדינה."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "כדי לשנות את סדר הבלוקים, יש להקיש על הבלוק ולאחר מכן להקיש על החצים למעלה ולמטה שמופיעים בפינה השמאלית התחתונה כדי להזיז את הבלוק מעל הבלוקים האחרים או מתחתיהם."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "אפשר להחליף בין אתרים בכל עת."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "אפשר לעדכן את ההגדרה הזאת בכל עת דרך 'האתר שלי' > 'הגדרות אתר'"; diff --git a/WordPress/Resources/id.lproj/Localizable.strings b/WordPress/Resources/id.lproj/Localizable.strings index 18bd591f3683..dbb03c6a84e6 100644 --- a/WordPress/Resources/id.lproj/Localizable.strings +++ b/WordPress/Resources/id.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-12-01 05:24:35+0000 */ +/* Translation-Revision-Date: 2021-12-08 09:54:08+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: id */ @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Periksa statistik situs Anda"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Periksa judul situs Anda."; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Memeriksa pembelian..."; @@ -1627,7 +1627,7 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "Selesai: Periksa statistik situs Anda"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "Selesai: Periksa judul situs Anda"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Selesai: Pilih tema"; diff --git a/WordPress/Resources/it.lproj/Localizable.strings b/WordPress/Resources/it.lproj/Localizable.strings index b0a85d96d7f1..019ad3455f05 100644 --- a/WordPress/Resources/it.lproj/Localizable.strings +++ b/WordPress/Resources/it.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-29 19:04:10+0000 */ +/* Translation-Revision-Date: 2021-12-08 16:54:07+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: it */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@ per risolvere le minacce."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d commento"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d commenti"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Condividi automaticamente nuovi articoli sui tuoi social media per iniziare ad attirare quel pubblico sul tuo sito."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Famiglia Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Aggiornamenti automatici"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Controlla le statistiche del sito"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Controllo del titolo del sito"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Ricerca di elementi acqistati in corso ..."; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Scegli una nuova icona dell'app"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Scegli un sito da aprire."; /* Title of a Quick Start Tour */ "Choose a theme" = "Scegli un tema"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Scegli un'ora"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Scegli un'icona del sito univoca"; /* No comment provided by engineer. */ "Choose audio" = "Scegli audio"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "Completato: controlla le statistiche del sito"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "Completato: Controllo del titolo del sito"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Completato: scegli un tema"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Completato: Scegli un'icona del sito univoca"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Completato: continua con la configurazione del sito"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Completato: Verifica le pagine del sito"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Completato: Condivisione sui social"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Completato: visualizza il tuo sito"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Copia il link per commentare"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Copia l'URL dagli appunti, %s"; /* No comment provided by engineer. */ "Copy block" = "Copia il blocco"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Bozza"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Elabora una bozza e pubblica un articolo."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Da un altro dispositivo"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Dagli appunti"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Da questo dispositivo"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack ottimizzerà le tue immagini e le servirà dalla posizione del server più vicina ai visitatori. L'utilizzo della nostra rete di distribuzione dei contenuti migliorerà la velocità di caricamento del tuo sito."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Entra a far parte da qualsiasi momento"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Unisciti a una conversazione: commenta gli articoli dei blog che segui."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Scopri di più…"; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Scopri le nozioni di base grazie a una rapida guida dettagliata."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Sinistra"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Icone legacy"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Sezione legale e altro"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Permettici di aiutare"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Tour iniziale"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Valutaci"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Valutaci sull'App Store"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Condividi il link"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Condividi con gli amici"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Mostra gli articoli correlati"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Mostra una panoramica"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Mostrata"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Presente nella scheda del browser dei visitatori e in altri luoghi online"; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Mostrato pubblicamente quando commenti sui blog."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Social"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Condivisione sui social"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Alcuni blocchi presentano impostazioni aggiuntive. Tocca l'icona delle impostazioni nella parte inferiore destra del blocco per visualizzare altre opzioni."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Passa all'editor a blocchi"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "Passato alla modalità HTML."; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "Passato alla modalità visuale."; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Passa alla dimensione carattere Heading 1"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Visualizza tutto"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Visualizza tutti i commenti"; /* Button label for viewing a post */ "View Post" = "Visualizza articolo"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "In attesa..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "Ti serve aiuto per gestire il sito tramite l'app?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "Pagina del plugin di WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Lavora con noi"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Mappa del mondo che mostra le visualizzazioni per Paese."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Puoi riorganizzare i blocchi toccando un blocco, quindi le frecce su e giù che compaiono nella parte inferiore sinistra del blocco per spostarlo sopra o sotto altri blocchi."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Puoi passare da un sito all'altro in qualsiasi momento."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Puoi aggiornare in qualsiasi momento tramite Il mio sito > Impostazioni del sito"; diff --git a/WordPress/Resources/ja.lproj/Localizable.strings b/WordPress/Resources/ja.lproj/Localizable.strings index ff346efa795f..a34c8b6fa192 100644 --- a/WordPress/Resources/ja.lproj/Localizable.strings +++ b/WordPress/Resources/ja.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-12-02 09:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-08 11:54:09+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ja_JP */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "脅威を修正するには、%1$@。"; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d件のコメント"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d件のコメント"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "新しい投稿をソーシャルメディアに自動的に共有し、読者をサイトに誘導します。"; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic ファミリー"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自動更新"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "サイト統計情報を確認"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "サイトタイトルを確認する"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "購入を確認中…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "新しいアイコンを選択"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "開くサイトを選択します。"; /* Title of a Quick Start Tour */ "Choose a theme" = "テーマを選択"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "時間を選択"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "独自のサイトアイコンを選択する"; /* No comment provided by engineer. */ "Choose audio" = "音声ファイルを選択"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "完了 : サイトの統計情報を確認"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "完了: サイトタイトルを確認する"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "完了 : テーマを選択"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "完了: 独自のサイトアイコンを選択する"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "完了 : サイトの設定を続ける"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "完了: サイトページを確認"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "完了: ソーシャル共有"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "完了 : サイトを確認"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "コメントへのリンクをコピー"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "クリップボードから URL (%s) をコピーします"; /* No comment provided by engineer. */ "Copy block" = "ブロックをコピー"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "下書き"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "投稿の下書きを作成して公開してください。"; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "ほかのデバイスから"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "クリップボードから"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "この端末から"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack が画像を最適化し、訪問者に最も近いところにあるサーバーから画像を提供します。WordPress.com のグローバルコンテンツ配信ネットワークを使用すると、サイトの読み込み速度が向上します。"; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "どこからでも参加可能"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "フォロー中のブログの記事にコメントを書き、ディスカッションに参加してみましょう。"; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "さらに詳しく ..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "簡単なチュートリアルで基本を学びましょう。"; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "左"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "レガシーアイコン"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "法的情報およびその他"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "お手伝いさせてください"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "クイックスタート"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "評価してください"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store で評価"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "リンクを共有"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "友達と共有"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "関連記事を表示"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "表示"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "表示内容"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "訪問者のブラウザータブやオンライン上のその他の場所に表示されます。"; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "ブログにコメントする際に公開表示されます。"; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "ソーシャル"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "ソーシャル共有"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "一部のブロックには追加の設定があります。 ブロックの右下にある設定アイコンをタップしてその他のオプションを表示します。"; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "ブロックエディターに切り替える"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "HTML モードに切り替えました"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "ビジュアルモードに切り替えました"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "見出し1のフォントサイズに変更する"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "すべて表示"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "すべてのコメントを表示"; /* Button label for viewing a post */ "View Post" = "投稿を表示"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "待機中…"; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "アプリでこのサイトを管理する方法を知りたいですか ?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "WordPress.org プラグインページ"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "求人情報"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "国別表示数の世界地図。"; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "ブロックをタップし、ブロックの左下に表示される上下矢印をタップして他のブロックの上下に移動させることで、ブロックの配置を変更できます。"; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "サイトはいつでも切り替えることができます。"; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "この設定は、「参加サイト」→「サイト設定」でいつでも変更できます。"; diff --git a/WordPress/Resources/ko.lproj/Localizable.strings b/WordPress/Resources/ko.lproj/Localizable.strings index a85a2ddaf6c0..b275c25c27e7 100644 --- a/WordPress/Resources/ko.lproj/Localizable.strings +++ b/WordPress/Resources/ko.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-12-02 13:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-07 11:54:07+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: ko_KR */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "위협을 해결할 %1$@입니다."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d개 댓글"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d개 댓글"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "자동으로 새 글을 소셜 미디어와 공유하여 해당 방문자를 사이트에 유치하기 시작합니다."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic 회원"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "자동 업데이트"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "사이트 통계 확인"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "사이트 제목 확인"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "구매 확인 중…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "새 앱 아이콘 선택"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "개설할 사이트 선택"; /* Title of a Quick Start Tour */ "Choose a theme" = "테마 선택"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "시간을 선택하세요."; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "고유한 사이트 아이콘 선택"; /* No comment provided by engineer. */ "Choose audio" = "오디오 선택"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "완료: 사이트 통계 확인"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "완료됨: 사이트 제목 확인"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "완료: 테마 선택"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "완료됨: 고유한 사이트 아이콘 선택"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "완료: 사이트 설정 진행"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "완료됨: 사이트 페이지 검토"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "완료됨: 소셜 공유"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "완료: 사이트 보기"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "댓글로 링크 복사"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "클립보드에서 URL 복사, %s"; /* No comment provided by engineer. */ "Copy block" = "블록 복사하기"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "임시 글"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "임시글을 작성하여 글을 발행하세요."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "다른 기기에서"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "클립보드에서"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "이 기기에서"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "젯팩은 회원님의 이미지를 최적화하며 방문자에게 가장 가까운 서버 위치에서 이미지를 제공합니다. 글로벌 콘텐츠 제공 네트워크를 사용하면 사이트의 로드 속도가 향상됩니다."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "어디서나 참여"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "대화 참여: 팔로우하는 블로그의 글에 댓글을 달아보세요."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "더 알아보기..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "간단한 연습을 통해 기본 사항을 알아보세요."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "좌측"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "기존 아이콘"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "법적 고지 사항 및 기타"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "지원"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "퀵 스타트"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "평가하기"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store에서 워드프레스닷컴 평가"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "공유 링크"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "친구와 공유"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "관련 글 표시"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "주변 보여주기"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "표시됨"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "방문자의 브라우저 탭과 기타 온라인 위치에 표시됩니다."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "블로그에 댓글을 달 때 공개됩니다."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "소셜"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "소셜 공유"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "일부 블록에는 추가 설정이 있습니다. 블록의 오른쪽 하단에 있는 설정 아이콘을 눌러 추가 옵션을 봅니다."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "블록 편집기로 전환"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "HTML 모드로 전환됨"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "비주얼 모드로 전환됨"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "제목 1 글꼴 크기로 전환"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "모두 보기"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "모든 댓글 보기"; /* Button label for viewing a post */ "View Post" = "글 보기"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "기다리는 중..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "앱으로 이 사이트를 관리하는 도움말이 조금 필요하신가요?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "WordPress.org 플러그인 페이지"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "워드프레스닷컴 사용"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "국가별 조회 수가 표시된 세계 지도"; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "블록을 누른 다음에 블록의 왼쪽 하단에 표시되는 위쪽 및 아래쪽 화살표를 눌러 다른 블록 위쪽 또는 아래쪽으로 이동하면서 블록을 다시 정렬할 수 있습니다."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "언제든지 사이트를 전환할 수 있습니다."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "내 사이트 > 사이트 설정에서 언제든지 업데이트할 수 있습니다."; diff --git a/WordPress/Resources/sq.lproj/Localizable.strings b/WordPress/Resources/sq.lproj/Localizable.strings index 36e6b3d85f82..9a3945ae6904 100644 --- a/WordPress/Resources/sq.lproj/Localizable.strings +++ b/WordPress/Resources/sq.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-12-02 17:03:46+0000 */ +/* Translation-Revision-Date: 2021-12-02 19:01:50+0000 */ /* Plural-Forms: nplurals=2; plural=n != 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: sq_AL */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "Që të zgjidhen kërcënimet, %1$@."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d Koment"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d Komente"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -405,7 +405,7 @@ translators: Block name. %s: The localized block name */ "About Me" = "Rreth Meje"; /* Link to About screen for WordPress for iOS */ -"About WordPress" = "About WordPress"; +"About WordPress" = "Rreth WordPress-it"; /* Link to About screen for WordPress for iOS */ "About WordPress for iOS" = "Mbi WordPress për iOS"; @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Ndani automatikisht me të tjerë postime të reja në media shoqërore, që të filloni ta sillni atë publik te sajti juaj."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Famijla Automattic"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Vetëpërditësime"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Zgjidhni një ikonë të re aplikacioni"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Zgjidhni një sajt për hapje."; /* Title of a Quick Start Tour */ "Choose a theme" = "Zgjidhni një temë"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Zgjidhni një kohë"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Zgjidhni një ikonë sajti unike"; /* No comment provided by engineer. */ "Choose audio" = "Zgjidhni audio"; @@ -1633,7 +1633,7 @@ translators: Block name. %s: The localized block name */ "Completed: Choose a theme" = "E plotësuar: Zgjidhni një temë"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "E plotësuar: Zgjidhni një ikonë sajti unike"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "E plotësuar: Vazhdoni me rregullimin e sajtit"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "U plotësua: Shqyrtoni faqe sajti"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Ndarje me të tjerë në shoqërorë"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "E plotësuar: Shihni sajtin tuaj"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Kopjo Lidhjen për te Komenti"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "Kopjoje URL-në prej të papastre, %s"; /* No comment provided by engineer. */ "Copy block" = "Kopjoje bllokun"; @@ -2065,7 +2065,7 @@ translators: Block name. %s: The localized block name */ "Currently restoring: %1$@" = "Po rikthehet: %1$@"; /* No comment provided by engineer. */ -"Custom URL" = "Custom URL"; +"Custom URL" = "URL Vetjake"; /* Placeholder for Invite People message field. */ "Custom message…" = "Mesazh vetjak…"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Skicë"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Hartoni dhe botoni një postim."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Prej një tjetër pajisje"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Prej së papastre"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Prej kësaj pajisje"; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Mësoni më tepër…"; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Mësoni bazat, me një kalim të shpejtë nëpër to."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Majtas"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Ikona të Dikurshme"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Ligjore dhe Të Tjera"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Le T’ju Ndihmojmë"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Nisje e Shpejtë"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Vlerësonani"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "Vlerësonani në App Store"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Ndajeni lidhjen me të tjerët"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Ndajeni me Shokët"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "Shfaqni Postime të Afërta"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Tregomani ca"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "I shfaqur"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Shfaqur te skeda e shfletuesit të vizitorit tuaj dhe në vende të tjera në internet."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "E shfaqur publikisht kur komentoni në blogje."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Shoqërore"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Ndarje me të tjerë në shoqërorë"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Disa blloqe kanë rregullime shtesë. Që të shihni më tepër mundësi, prekni ikonën e rregullimeve poshtë djathtas bllokut."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Kalo te përpunuesi me blloqe"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "U kalua nën mënyrën HTML"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "U kalua nën mënyrën Pamore"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Kalohet te madhësia Titull 1 për shkronjat"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Shihini Krejt"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Shihini Krejt Komentet"; /* Button label for viewing a post */ "View Post" = "Shiheni Postimin"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "Po pritet…"; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "Doni pakëz ndihmë me administrimin e këtij sajti përmes aplikacionit?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "Faqja e Shtojcës në WordPress.org"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Punoni Me Ne"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Hartë e botës që tregon parje sipas vendesh."; @@ -8718,7 +8718,7 @@ translators: Block name. %s: The localized block name */ "Write Post" = "Shkruani Postim"; /* Placeholder text for inline compose view */ -"Write a reply" = "Write a reply"; +"Write a reply" = "Shkruani një përgjigje"; /* Placeholder text for inline compose view */ "Write a reply…" = "Shkruani një përgjigje…"; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Blloqet mund t’i risistemoni duke prekur mbi një bllok dhe mandej duke prekur shigjetat sipër dhe poshtë që shfaqen në anën e poshtme majtas bllokut, për t’i kaluar sipër ose poshtë blloqesh të tjerë."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Mund të ndërroni sajte në çfarëdo kohe."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Këtë mund ta përditësoni në çfarëdo kohe që nga Sajti Im > Rregullime Sajti"; @@ -9160,22 +9160,22 @@ translators: Block name. %s: The localized block name */ "widget.alltime.posts.label" = "Postime"; /* Description of all time widget in the preview */ -"widget.alltime.preview.description" = "widget.alltime.preview.description"; +"widget.alltime.preview.description" = "Jini i përditësuar me veprimtarinë gjithë kohën në sajtin tuaj WordPress."; /* Title of all time widget */ -"widget.alltime.title" = "widget.alltime.title"; +"widget.alltime.title" = "Tërë Kohën"; /* Title of the unconfigured view in all time widget */ -"widget.alltime.unconfigured.view.title" = "widget.alltime.unconfigured.view.title"; +"widget.alltime.unconfigured.view.title" = "Bëni hyrjen në WordPress, që të shihni statistikat për krejt kohën."; /* Description of all time widget in the preview */ -"widget.thisweek.preview.description" = "widget.thisweek.preview.description"; +"widget.thisweek.preview.description" = "Jini i përditësuar me veprimtarinë e kësaj jave në sajtin tuaj WordPress."; /* Title of this week widget */ -"widget.thisweek.title" = "widget.thisweek.title"; +"widget.thisweek.title" = "Këtë Javë"; /* Title of the unconfigured view in this week widget */ -"widget.thisweek.unconfigured.view.title" = "widget.thisweek.unconfigured.view.title"; +"widget.thisweek.unconfigured.view.title" = "Bëni hyrjen në WordPress, që të shihni statistikat e kësaj jave."; /* Title of comments label in today widget */ "widget.today.comments.label" = "Komente"; @@ -9184,19 +9184,19 @@ translators: Block name. %s: The localized block name */ "widget.today.likes.label" = "Pëlqime"; /* Title of the nodata view in today widget */ -"widget.today.nodata.view.title" = "widget.today.nodata.view.title"; +"widget.today.nodata.view.title" = "S’arrihen të ngarkohen statistika sajti."; /* Description of today widget in the preview */ -"widget.today.preview.description" = "widget.today.preview.description"; +"widget.today.preview.description" = "Jini i përditësuar me veprimtarinë e sotme në sajtin tuaj WordPress."; /* Title of today widget */ "widget.today.title" = "Sot"; /* Title of the unconfigured view in today widget */ -"widget.today.unconfigured.view.title" = "widget.today.unconfigured.view.title"; +"widget.today.unconfigured.view.title" = "Që të shihni statistikat për sot, bëni hyrjen te WordPress-i"; /* Error message to show if a widget view is unavailable */ -"widget.today.view.unavailable.title" = "widget.today.view.unavailable.title"; +"widget.today.view.unavailable.title" = "Parje jo e passhme"; /* Title of views label in today widget */ "widget.today.views.label" = "Parje"; diff --git a/WordPress/Resources/tr.lproj/Localizable.strings b/WordPress/Resources/tr.lproj/Localizable.strings index 7327aaaf49d6..e03f6b3384ef 100644 --- a/WordPress/Resources/tr.lproj/Localizable.strings +++ b/WordPress/Resources/tr.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 13:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-08 17:54:08+0000 */ /* Plural-Forms: nplurals=2; plural=n > 1; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: tr */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "Tehditleri düzeltmek için %1$@."; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d Yorum"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d Yorum"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "Bir kitleyi sitenize çekmeye başlamak için yeni gönderileri otomatik olarak sosyal medyanızda paylaşın."; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic Ailesi"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "Otomatik güncellemeler"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "Sitenizin istatistiklerine bakın"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "Site başlığınızı kontrol edin"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "Satın alımlar kontrol ediliyor…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "Yeni bir uygulama simgesi seçin"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "Lütfen açmak için bir site seçin."; /* Title of a Quick Start Tour */ "Choose a theme" = "Bir tema seçin"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "Saat seçin"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "Benzersiz bir site simgesi seçin"; /* No comment provided by engineer. */ "Choose audio" = "Ses seç"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "Tamamlandı: Site istatistiklerini kontrol edin"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "Tamamlandı: Sitenizin başlığını kontrol edin"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "Tamamlandı: Bir tema seçin"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "Tamamlandı: Benzersiz bir site simgesi seçin"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "Tamamlandı: Site kurulumuna devam edin"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "Tamamlandı: Site sayfalarını inceleyin"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "Tamamlandı: Sosyal paylaşım"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "Tamamlandı: Sitenizi görüntüleyin"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "Bağlantıyı yoruma kopyalayın"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "URL'yi panodan kopyalayın, %s"; /* No comment provided by engineer. */ "Copy block" = "Bloğu kopyala"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "Taslak"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "Bir yazıyı taslak olarak yazın ve yayınlayın."; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "Başka cihazdan"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "Panodan"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "Bu cihazdan"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack resimlerinizi optimize eder ve bunları ziyaretçilerinize en yakın sunucu konumundan sunar. Global içerik sağlama ağımızı kullanmak sitenizin yüklenme hızını artıracak."; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "Her Yerden Katılın"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "Bir sohbete katılın: takip ettiğiniz bloglardaki yazılara yorum yapın."; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "Daha fazlasını öğrenin..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "Hızlı bir şekilde temel bilgileri alın."; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "Sol"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "Eski Simgeler"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "Yasal Bilgiler ve Daha Fazlası"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "Size Yardımcı Olalım"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "Hızlı başla"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "Bizi Değerlendirin"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "App Store üzerinden uygulamamızı derecelendirin"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "Bağlantıyı paylaş"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "Arkadaşlarla paylaş"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "İlişkili yazıları göster"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "Bana etrafı göster"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "Gösterildi"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "Ziyaretçinizin tarayıcı sekmesinde ve diğer çevrimiçi yerlerde gösterilir."; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "Bloglara yorum yaptığınızda yorumlarınız herkese açık biçimde gösterilir."; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "Sosyal"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "Sosyal paylaşım"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "Bazı blokların ek ayarları vardır. Daha fazla seçenek görüntülemek için blokun sağ alt kısmındaki ayarlar simgesine dokunun."; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "Blok düzenleyiciye geç"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "HTML moduna geçildi"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "Görsel moda geçildi"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "Başlık 1 yazı tipi boyutuna geçer"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "Tümünü görüntüle"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "Tüm Yorumları Görüntüle"; /* Button label for viewing a post */ "View Post" = "Yazıyı göster"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "Bekliyor..."; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "Bu siteyi uygulamayla yönetmek için biraz yardım ister misiniz?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "WordPress.org eklenti sayfası"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "Bizimle Çalışın"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "Ülkelere göre görünümlerini gösteren dünya haritası."; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "Bir bloka dokunup ardından bloku diğer blokların üstüne veya altına taşımak için blokun sol alt tarafında görünen yukarı ve aşağı oklara dokunarak blokların sırasını yeniden düzenleyebilirsiniz."; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "Siteleri istediğiniz zaman değiştirebilirsiniz."; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "Bunu, Sitem > Site Ayarları'ndan istediğiniz zaman güncelleyebilirsiniz."; diff --git a/WordPress/Resources/zh-Hans.lproj/Localizable.strings b/WordPress/Resources/zh-Hans.lproj/Localizable.strings index f96ab7a2f72f..7d60a51664f0 100644 --- a/WordPress/Resources/zh-Hans.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hans.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-26 17:20:17+0000 */ +/* Translation-Revision-Date: 2021-12-08 13:54:08+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: zh_CN */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@修复威胁。"; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d 条评论"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d 条评论"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "自动将新文章分享到您的社交媒体,让这些受众流向您的站点。"; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic 家族"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自动更新"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "查看站点统计信息"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "检查您的站点标题"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "正在检查购买内容…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "选择新的应用图标"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "选择要打开的站点。"; /* Title of a Quick Start Tour */ "Choose a theme" = "选择主题"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "选择时间"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "选择唯一站点图标"; /* No comment provided by engineer. */ "Choose audio" = "选择音频"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "已完成:查看站点统计信息"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "已完成:检查您的站点标题"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "已完成:选择主题"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "已完成:选择唯一站点图标"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "已完成:继续设置站点"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "已完成:审核网站页面"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "已完成:社交分享"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "已完成:查看您的站点"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "将链接复制到评论中"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "从剪贴板复制 URL,%s"; /* No comment provided by engineer. */ "Copy block" = "复制区块"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "草稿"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "起草并发布文章。"; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "来自其他设备"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "从剪贴板"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "从此设备中"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack 将优化您的图片,并通过距离访客最近的服务器位置提供。使用我们的全球内容交付网络将大大提升站点的加载速度。"; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "随时随地加入"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "加入会话:评论您关注的博客中的文章。"; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "了解更多…"; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "通过快速演示了解基础内容。"; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "左"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "旧图标"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "法律及更多信息"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "让我们助您一臂之力"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "快速启动"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "给我们评分"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "在 App Store 中给我们评分"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "分享链接"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "分享给朋友"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "显示相关文章"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "带我看看"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "已显示"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "显示在访问者的浏览器选项卡和其他在线位置。"; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "公开显示您对博客作出的评论。"; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "社交"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "社交分享"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "某些区块具有其他设置。 轻点区块右上角的“设置”图标,以查看更多选项。"; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "切换到区块编辑器"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "已切换至 HTML 模式"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "已切换至可视化模式"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "切换为标题 1 号字"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "查看所有"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "查看所有评论"; /* Button label for viewing a post */ "View Post" = "查看文章"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "正在等待…"; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "是否需要获取有关使用该应用管理此站点的帮助?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "WordPress.org 插件页面"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "加入我们"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "按国家\/地区显示查看次数世界地图"; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "您现在可以重新排列区块,方法是轻点一个区块,然后轻点该区块左下角出现的向上和向下箭头,将该区块移动到其他区块上方或下方。"; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "您可以随时切换站点。"; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "您可以随时通过“我的站点”>“站点设置”更新此设置"; diff --git a/WordPress/Resources/zh-Hant.lproj/Localizable.strings b/WordPress/Resources/zh-Hant.lproj/Localizable.strings index 9c5982d9696c..f8854a5491f1 100644 --- a/WordPress/Resources/zh-Hant.lproj/Localizable.strings +++ b/WordPress/Resources/zh-Hant.lproj/Localizable.strings @@ -1,4 +1,4 @@ -/* Translation-Revision-Date: 2021-11-30 09:54:07+0000 */ +/* Translation-Revision-Date: 2021-12-08 16:01:04+0000 */ /* Plural-Forms: nplurals=1; plural=0; */ /* Generator: GlotPress/3.0.0-alpha.2 */ /* Language: zh_TW */ @@ -40,10 +40,10 @@ "%1$@ to fix threats." = "%1$@以修正威脅。"; /* Singular label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comment" = "%1$d Comment"; +"%1$d Comment" = "%1$d 則留言"; /* Plural label displaying number of comments. %1$d is a placeholder for the number of Comments. */ -"%1$d Comments" = "%1$d Comments"; +"%1$d Comments" = "%1$d 則留言"; /* Singular button title to Like a comment. %1$d is a placeholder for the number of Likes. Singular format string for view title displaying the number of post likes. %1$d is the number of likes. */ @@ -952,7 +952,7 @@ translators: Block name. %s: The localized block name */ "Automatically share new posts to your social media to start bringing that audience over to your site." = "自動分享新文章至社群媒體,將讀者群導向你的網站。"; /* Title of button that displays information about the other apps available from Automattic */ -"Automattic Family" = "Automattic Family"; +"Automattic Family" = "Automattic 系列"; /* Whether a plugin has enabled automatic updates */ "Autoupdates" = "自動更新"; @@ -1362,7 +1362,7 @@ translators: Block name. %s: The localized block name */ "Check your site stats" = "檢視網站統計資料"; /* Title of a Quick Start Tour */ -"Check your site title" = "Check your site title"; +"Check your site title" = "確認網站標題"; /* Overlay message displayed while checking if site has premium purchases */ "Checking purchases…" = "正在確認購買項目…"; @@ -1398,7 +1398,7 @@ translators: Block name. %s: The localized block name */ "Choose a new app icon" = "選擇新的應用程式圖示"; /* A text for title label on Login epilogue screen */ -"Choose a site to open." = "Choose a site to open."; +"Choose a site to open." = "選擇要開啟的網站。"; /* Title of a Quick Start Tour */ "Choose a theme" = "選擇佈景主題"; @@ -1407,7 +1407,7 @@ translators: Block name. %s: The localized block name */ "Choose a time" = "選擇時間"; /* Title of a Quick Start Tour */ -"Choose a unique site icon" = "Choose a unique site icon"; +"Choose a unique site icon" = "選擇專屬網站圖示"; /* No comment provided by engineer. */ "Choose audio" = "選擇音樂"; @@ -1627,13 +1627,13 @@ translators: Block name. %s: The localized block name */ "Completed: Check your site stats" = "已完成:查看網站統計資料"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Check your site title" = "Completed: Check your site title"; +"Completed: Check your site title" = "完成:確認網站標題"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Choose a theme" = "已完成:選擇佈景主題"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Choose a unique site icon" = "Completed: Choose a unique site icon"; +"Completed: Choose a unique site icon" = "完成:選擇專屬網站圖示"; /* The Quick Start Tour title after the user finished the step. */ "Completed: Continue with site setup" = "已完成:繼續設定網站"; @@ -1657,7 +1657,7 @@ translators: Block name. %s: The localized block name */ "Completed: Review site pages" = "已完成:檢閱網站頁面"; /* The Quick Start Tour title after the user finished the step. */ -"Completed: Social sharing" = "Completed: Social sharing"; +"Completed: Social sharing" = "完成:社交分享"; /* The Quick Start Tour title after the user finished the step. */ "Completed: View your site" = "已完成:檢視你的網站"; @@ -1810,7 +1810,7 @@ translators: Block name. %s: The localized block name */ "Copy Link to Comment" = "將連結複製到留言"; /* translators: Copy URL from the clipboard, https://sample.url */ -"Copy URL from the clipboard, %s" = "Copy URL from the clipboard, %s"; +"Copy URL from the clipboard, %s" = "從剪貼簿複製 URL,%s"; /* No comment provided by engineer. */ "Copy block" = "複製區塊"; @@ -2496,7 +2496,7 @@ translators: Block name. %s: The localized block name */ "Draft" = "草稿"; /* Description of a Quick Start Tour */ -"Draft and publish a post." = "Draft and publish a post."; +"Draft and publish a post." = "撰寫草稿並發表文章。"; /* Title of the drafts filter. This filter shows a list of draft posts. Title of the drafts header in search list. */ @@ -3212,7 +3212,7 @@ translators: Block name. %s: The localized block name */ "From another device" = "從其他裝置"; /* No comment provided by engineer. */ -"From clipboard" = "From clipboard"; +"From clipboard" = "從剪貼簿"; /* Button title displayed in popup indicating date of change on device */ "From this device" = "從此裝置"; @@ -3799,7 +3799,7 @@ translators: Block name. %s: The localized block name */ "Jetpack will optimize your images and serve them from the server location nearest to your visitors. Using our global content delivery network will boost the loading speed of your site." = "Jetpack 會最佳化你的圖片,並從與訪客距離最近的伺服器提供圖片。使用我們的全球內容傳遞網路可大幅提升網站的載入速度。"; /* Subtitle for button displaying the Automattic Work With Us web page, indicating that Automattic employees can work from anywhere in the world */ -"Join From Anywhere" = "Join From Anywhere"; +"Join From Anywhere" = "隨時隨地都能加入"; /* Displayed in the Notifications Tab as a message, when the Comments Filter shows no notifications */ "Join a conversation: comment on posts from blogs you follow." = "加入討論:在關注的網誌文章上留言。"; @@ -3868,7 +3868,7 @@ translators: Block name. %s: The localized block name */ "Learn more..." = "瞭解更多..."; /* Description for a prompt asking if users want to try out the quick start checklist. */ -"Learn the basics with a quick walk through." = "Learn the basics with a quick walk through."; +"Learn the basics with a quick walk through." = "透過快速逐步解說瞭解基本須知。"; /* Left alignment for an image. Should be the same as in core WP. */ "Left" = "靠左"; @@ -3877,7 +3877,7 @@ translators: Block name. %s: The localized block name */ "Legacy Icons" = "舊版圖示"; /* Title of button which shows a list of legal documentation such as privacy policy and acknowledgements */ -"Legal and More" = "Legal and More"; +"Legal and More" = "法律與其他"; /* Heading for instructions on Start Over settings page */ "Let Us Help" = "我們樂意協助"; @@ -5620,7 +5620,7 @@ translators: Block name. %s: The localized block name */ "Quick Start" = "快速入門"; /* Title for button allowing users to rate the app in the App Store */ -"Rate Us" = "Rate Us"; +"Rate Us" = "為我們評分"; /* Prompts the user to rate us on the store */ "Rate us on the App Store" = "在 App Store 中為我們評分"; @@ -6412,7 +6412,7 @@ translators: Block name. %s: The localized block name */ "Share link" = "分享連結"; /* Title for button allowing users to share information about the app with friends, such as via Messages */ -"Share with Friends" = "Share with Friends"; +"Share with Friends" = "與朋友分享"; /* Aztec's Text Placeholder Share Extension Content Body Text Placeholder */ @@ -6456,7 +6456,7 @@ translators: Block name. %s: The localized block name */ "Show Related Posts" = "顯示相關文章"; /* Button title. When tapped, the quick start checklist will be shown. */ -"Show me around" = "Show me around"; +"Show me around" = "逐步說明"; /* Accessibility label for the 'Show password' button in the login page's password field. Accessibility label for the “Show password“ button in the login page's password field. */ @@ -6481,7 +6481,7 @@ translators: Block name. %s: The localized block name */ "Shown" = "顯示"; /* Description of a Quick Start Tour */ -"Shown in your visitor's browser tab and other places online." = "Shown in your visitor's browser tab and other places online."; +"Shown in your visitor's browser tab and other places online." = "顯示於訪客瀏覽器分頁和其他線上位置。"; /* Help text when editing web address */ "Shown publicly when you comment on blogs." = "當你在網誌中留言時會公開顯示。"; @@ -6645,7 +6645,7 @@ translators: Block name. %s: The localized block name */ "Social" = "社交"; /* Title of a Quick Start Tour */ -"Social sharing" = "Social sharing"; +"Social sharing" = "社群分享"; /* No comment provided by engineer. */ "Some blocks have additional settings. Tap the settings icon on the bottom right of the block to view more options." = "有些區塊具有其他設定。 請點選區塊右下角的設定圖示以檢視更多選項。"; @@ -6879,10 +6879,10 @@ translators: Block name. %s: The localized block name */ "Switch to block editor" = "切換至區塊編輯器"; /* Message of the notice shown when toggling the HTML editor mode */ -"Switched to HTML mode" = "Switched to HTML mode"; +"Switched to HTML mode" = "已切換至「HTML」模式"; /* Message of the notice shown when toggling the Visual editor mode */ -"Switched to Visual mode" = "Switched to Visual mode"; +"Switched to Visual mode" = "已切換至「視覺化」模式"; /* Accessibility Identifier for the H1 Aztec Style */ "Switches to the Heading 1 font size" = "切換至Heading 1文字大小"; @@ -8129,7 +8129,7 @@ translators: Block name. %s: The localized block name */ "View All" = "檢視全部"; /* Title for button on the post details page to show all comments when tapped. */ -"View All Comments" = "View All Comments"; +"View All Comments" = "檢視所有留言"; /* Button label for viewing a post */ "View Post" = "查看文章"; @@ -8238,7 +8238,7 @@ translators: Block name. %s: The localized block name */ "Waiting..." = "等待中…"; /* Title for a prompt asking if users want to try out the quick start checklist. */ -"Want a little help managing this site with the app?" = "Want a little help managing this site with the app?"; +"Want a little help managing this site with the app?" = "需要協助你透過應用程式管理此網站嗎?"; /* Editing GIF alert title. Noun. Title for Jetpack Restore warning. @@ -8699,7 +8699,7 @@ translators: Block name. %s: The localized block name */ "WordPress.org Plugin Page" = "WordPress.org 外掛程式頁面"; /* Title of button that displays the Automattic Work With Us web page */ -"Work With Us" = "Work With Us"; +"Work With Us" = "與我們合作"; /* Accessibility label for the Stats' world map. */ "World map showing views by country." = "依國家顯示世界地圖的檢視次數。"; @@ -8791,7 +8791,7 @@ translators: Block name. %s: The localized block name */ "You can rearrange blocks by tapping a block and then tapping the up and down arrows that appear on the bottom left side of the block to move it above or below other blocks." = "若要重新排列區塊,請依序點選區塊和區塊左下角顯示的上下鍵,將其移動到其他區塊的上方或下方。"; /* A text for subtitle label on Login epilogue screen */ -"You can switch sites at any time." = "You can switch sites at any time."; +"You can switch sites at any time." = "你可以隨時切換網站。"; /* Prompt shown on the completion screen of the Blogging Reminders Settings screen. */ "You can update this any time via My Site > Site Settings" = "你可以隨時前往「我的網站」>「網站設定」更新此設定。"; diff --git a/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings index 4ada2a438be4d9bfd4c0428997d01ecf331be7b8..7353ce1c2cef886bb50d74165ed381107da81cda 100644 GIT binary patch delta 1401 zcmZ8fZ%i9y9Pah*-n;9ycgF@y1nd=BSWCx1M1@QfpzX#2$msD;ka}ycrCaGW?Ujuo zGEMxlYLxtDG*c57OpKZ=nHq!1%nTYnxDWaPmYA8a#h7T!;s@iu_{I0GWl=x8x%cv6o$=!sBWj)(FH>MfId{#DeIj0wlnekjgH8goBojtu)YS}kCmX6QM z1A5lbvWC*H#!thagcr8#%TLFonoc>9SCfX-DHn4YT}@~SC8{oJGh^CQg=0FLNE`Af*8JoU zo{Q6HZ*PxDRT0gI&zsp4(uP*RXNt0v(b?HJ!0kT0^JJ^yCqBL4$RB z^V;odG-1U76O?!DYCT+|C!UxY%oen~VFf*{@q>T*zUH&5!gUol%ARl@dwW2=cx5=mnh44O%R{#S1Fx(YAaEA9l zNE~-1@o5NkW8@*^hh5hRc!%o&hH*RMD1shBox1b@9O8qpAxO~4%v2gWaoa)k2)xcW z!prPY2(rGq3<_Y9!{|6_!$VElJyZjFtR-umgfSw3j-kN{B8-Q0q5cGh2JvwZY_pS) zaeM@`Y!?&9;6C&yI9+w5E;WG4dEsNBy0)x2U=bcq;I=Nj!tes;28Q*)I^&0SS3M*J zAH3me*-H+S zN%A~-fqa#GkGw*DLf#;^$)6~Ws-o_rUZU2i4QiA6f%=vDi?-3t^bz_Z{WkqReU1Kt zzDeJrzelS!gir&{^*p+azGUi{7N*EtVZLT=vNdduU12Y=yBy-&+$^`mJ8f4&9Dc5n{{g~=gl_-< delta 1348 zcmY*WZA=?w9PeH4p6m7ca%>7!T6?^LP$&clD=jYrX>RR9TRD2Hz2X=m zGnpoaMP+|Y9E%?&i<+32nZ?BHiw=!hjETmVC~>;+NexlIIAdZ=eC}Fj`10H(|Nrmx zzgoLm`%-i*=68m3d9ASUkF#?>_0 zm(AmxCJkh=vttn~CnYue_()pLWwI#==W=RpbOb9np~Xc%*eLJX-+b4EzAO#Nb2u(m z#Io`U1xuPL73LL{;DZKvG%Ba^QC%@E?io@gc|p!7#%4aF;XDkQ?<=2R8>+ zXqTK#UYntQ5-Iu zP%`UH!!8;kjb1G?GZ!LOM zPRve(k{M0XrK7`g3a&FAKl#_a#>KK8tR>QV`9@Dfe=3qmq@^x3tKqB$JQWD;I;5P! zI`Zz#Li)`{Vv&L41LPWnh)_U*s(xU+Gnte$ausrrQWd(4-n_o@j@h%eT~jt%G#eN1 zFGX5=qq^+>PD^TVh#j|1L`g|Toq$mt0dx>R6`ZrS!n&mw&hoL=ltI*vdI-*kdUV+)^3#jDmAeiacgw-=P9N+S zyi_Hz)dtVl`nUwaKZJsC#L)>`{MB-dLg=W$+@OlJgs2_uC*zaiV{i%8z_P{T!^T*b zZ7+HVpaX=ZA9c!A zA4vWw-UIdAG5FTrU@y)~#libR9el?f1~;mN<2D~SZ5{A2it&0|h8U#9J~%@x*O0ro zog4fdsn$o-y5YKg?~28=YI@i7sp+=qH`5=KiLy}Tl!ppa5lW#>QVY~7b(y+KU8BCF z{-WJFiP>TPWL<0(+r}PYN7w~+nO$e!WUsBDJ;;qF&>8eLx`DnzKXWWs&jq=2+$HWa z?i=o=g|!4M$1GEp7cF1&jeG|m;-~p%`PcdHt+m!ht0H)XfKU)#72Xp*6h0Sj+A8ce yd!4<--e(`RU$Af5Z#h~V6OI|j^Nt&iZKu`gadtZ|I4?VQM4Q+wQeVJMne;E`vVXV$ diff --git a/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings b/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings index 5b54d04539884e888510d4a22bd004094ea9c517..623e2cb9306bfc502dbdf253e9ad95c4320529eb 100644 GIT binary patch delta 1520 zcmZ{iO>7%Q6vw^Z+3#)QHcf+7yV;P2stO8rX-G)YkHksZw2712YdarJHXD0vZ?oPt zyX(-XLV*JkP$8%$2vn(2B@PuFkl;{J(MqUAx$tp7zyT^jRUw2B2LuNY5@ObN5^$Tt zYIbJcy!U_q_gf3B1ztZrLi7(r28V`EoE$lIdUPy0K5-@%mlMg<#io)Cb9NI(vfG+FHiPoGLoa_Y@~B-=rUE03Zx&!sa95=P;*f6 zwIPXUMz;V<1o2<+z-&CPTAGoQpkN1DKbrblrBY(YmyhvM5g z44rh|HN@5&XyY?kUM|AaAk3;I-BEnIstMhYBDNGqOh#~zIn!E3EmR}A;BBcJ)a-(0 z+sQc8VcJ2>e5q6MHMkvYw1!{0M&Nu=Q&N{yO;;CmSSdQ?+9gHR0z^01)=NL^W|Eb@ z@iu^Z=||B`DmgwgV%X4f%HB@N*0QALRLxL)^%XNVjZ0R>v}HwEwp(0wyHCZSn!!8t z92E>CWX;hrCI6FJomrKr9q1C*k78o$?mTD#1K>Cafg_+B41>@EbUn4n(?jT51kE4< z!k`yF?!kYD%89T~wXg-UU>7cP3UuMP&_k%Jub~drv0-$T2{IeXqe5GK4(!9lT(tvO z@6iq3+PC9P15G&g82-98q@h*5eQAo`7_|a&K2+ocon=2J_NVHkKlLk7v-T^sXl6z zx=OuE-K6eN-%#IC_h}DJ(*e4lj?%BuAJBK`Ul@V$GY6QX%sg|Ed5gKme9qiu1vbnk zS;)T30WQEj!A)}x_ae8-UE@CHzU6-7dHxtb&zJa@_$&M^{!8J65S$e(0SVWIPlTUD Yk2op5AR=*1d|zA_?~8w+e|AX!0%N4XD*ylh delta 1487 zcmb7CZ%i9y9KJvA{l8!b3Iz+j0WO&&Y#s6^C>^u|VS|G0K?~jJj`pR!^|&i{R~!;U z;)f+>i4orUWkgJziTk9YiHZ9%oyHHw_+j5n7BfC9GclT&EQ@~gy#foMCfcOE^xoh5 zJkRfWp3T5!;O%q$1Ci(%W{?{aULGDfdv0_rHa_u6JfTibB~#Ng>GKz6GZ$O6xoi&3 z=L`C!qOo9FrNu7Wam(t`tCyGik;ETE52a^)H3@AADmh!5ca@UmxM&;rkEcgW2imSO zs++}R9BMhmGA|?wnys681=_Y{PbHuMvo5;GwTaW-m=e<#Ao@~h2&$@b~X;(vTZ7^RUw^WM-ZFbph*Z$KqQWP4Pu7_L z`dH%7oBRr|PT*}bzGgJQ)vtXb^ksa0Z$qdoTV-2uT+3co3ebk_?d`KW@)T#s0aaZt z!BiAW$>Sk41~0p4Mrc5OP!6W!aKXZcdX}gWEnA!(%;~P;aj6qp9(@HG(S3<)&G?QC zK{s3Q46WFLY0k&>Y(a@yrVCB1>^ZEg1_jBdLkBX_@(`!d`y`G*FOI}yd~{|M`+)H< z5(;z8O{sxgPH}M-IELN*JvJ|7Z{#Doac#Th$kdMDjIUvG$4J!9DmDAf+$CI>Q{uFW zP0{k2ZtnG``G7VIUC}lMbGoLCmt5U49h8!fS3QwiX^&SMWJ@jRj^OXkgJ(bl^nhN_ z={GZbS7LWlaKg9a=if~9nTFqYH< z#tYymM(hMHRPaVnN(gxMLMMc_&OBZ+gvY!qeIQ%}N@egQruS_04zOn)LS*+(4;Vsg zQj=FaB#PargKwet_3Ole4F9oT^Pn1IoyC!0bJ6cYJ#JWQ_1|lS!eTdWmH40Pv`X;A zRbq?yj<`?!Mm!=3k|%4)Msk>plLom+E|FKs56I8RTjX8x4=O-4Q_oXf)G(E%R;Uf? z2K6mHKo8MH`U?FHeVx8R-=yzgfl)9F;vflL18;#1@HO}mJOsah$Bdsj%5*VdCc!K* zuQS(~51G|lY&9ETBW#*oWLMdn?C0z@M{xnJjSF)L&fr$KE8Hgc4fiwmCtt<)@#Fj) z{|5g){{??fND79qCfpUag-0SI2E}XQZSe>3f%sUemtvA5ZAe?vZRvaIfy~JPxlfME UWqDnGPyUpsd?=D25MNdM7l^m8!vFvP diff --git a/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings index df93cff1bc21ef4045f2694c3ecf1665df9c69db..9a79013e49eb15a6da123b121d66c443196aa464 100644 GIT binary patch delta 1415 zcmY+CTWl0n7{|}qx$JFrXSTJKTGkG|DHp-21i2&%y(Gm_N_V=Y)Uup*&UPm|ooVK> z(gFn&U$7yuevl@{2P4r$ABaX{L=a<5`l1FB(HGR%5My}ggVBg+FrL|6Q6DCA&dm4y zzyJSt&SLvw`%9Y8yZ4#CA9mbv&W8~m^-*z*Hw>9y3oV5!7G9cQ(OaN zgqDalKqhHUX#*8E!N+_Ar`amqI+iIA$FL?<>NvJ@Z`U2{h6ns{({Ky$8{Z6RysDCQT9bldh^|85( z#^%kNb4sd*dJ~0!jca(+W#2SyW||In(LC`@FQ?R0=L99w3<9e-*vTSK+RhBD6YAht zXkD_)aHkB{&1R@cCp=i<{H-~qHVF1l;wnC-*Kez&L=3a+vOIJopr`heDGKL9Eek)~ zCuYkyAj`KdyxRzuh3x*(UdyG9R|Y+zIWsDmBnFEsR|wssnXR1MfB95LYeDwmK}vLX zj&MRquN~41&t%u-e@0nRaL(|poW^Z%INStJN*f`Rssk!*16|3~Ori|(kb_o`g^GyS z$_7@}4VPjvXDcdOKMmW%jSm#j0P@i|GLgZ`Y*Z>Y*tXJKRjr3FWf?}pWALh!X002b zNlZg+bUPf6Y^-CXb{9RLn8vJKBFvLsB(tzqoM<-D9wt{ngt@qjRJI;RF54A!bO=r3 zM&!ZXr~yyJufqG0r<(F;hQ{Jz;oS6*WCTKN}k1*X; z_7u?!gkxJ_f8-JPD%=6-WLvF)`Vqm2^8XYWmjZ)&>we9P^Z+T_`>+xlf}7%| z*vLJ@a3D$GdGR6WNxcDbxFI=qsOY=FO`o;wk`LcU*C+CffrEUOgr$YL)RtBQ4d4-G z*e$auu}Q@OmdYPIHd1HfP54yV9jE_Vfj7mSCs72=qqFEDT1G3F$5GsY58xc0!aiQa zOL!T7jsFbALiM3tq25q`$O)}-0vF@zxktIJ+zxIZm*-A#FLLL&x3~-32i)h}b?z1) zAR?+8d}5q1e@h1Z0)h0DTc!Z*SV;ih;JiK4hx+$O#tE{fN} zE#b$)r^8=_e+vH<>5jY}`6OB&?Tj9bUW#6iei!SB*TuCsiM#O&@r&{0_#LTT8ja^qe zFvq1=kMFiU;`-{KX_rScL^o8&-k+V)UDGb9#C08aBugw(^b1NCNVskGFR?!#9#)6+ zgQTD|WmY(s^>fIj5XW3k4aNi)^1{I=U>eH>zg)E>5Z9?+lk@wlw*}0Xek@>I% zW!XZd*>fvWkC-mF!4`fjme(jGy`-BqjEP0KCwIdasXo{*_x4z51X;+zN0Etqq#_3y zsEl+}ox&2TA+P?>Ky%1~uZ8B=$jHoutNV_!25__u-V@qE6qdm+$!46UPo7vdiC?56 zHTo^1nMss;Bo0@TYvIrMT1bnl5|d~ja#4Ww&=!`&x5DSqJp3S*RuMEr-KvP73PD+_ z;-bG1U0lPqvLEP{S#>Hp-GEWnt8ho@hHLSS^wvBGvp%u6sf>nEfF`K3Nyi;jp?WrQ zASUNvAofk8iH32$-fbE;)3*eb9i@XxYy>B=1WrZzHrW4-N2z#}N{tEiAGj=Sft!(RBL6UmqqIRK-c1|!KznKpG%M$i?cY}pyzoC=wVg_UqUbpK5ZypO zqMy+{jBpe;;#NF>GuXl};R-&E-@zB~Mf@H9gK1$_Fg?sBW`G%I4l`$%v&=Pi8@r1w zv#+ry+0*P<_FeWW_axWP4R9H5l&f-YaA&wLxm(;%++FT>KFzoD$2Rd#^I5*aAK_2) z=lP3~hDb}~Smaz}PGAIC=o0z_O&AwG5x$Lb(NuJKbZ@j8Js1 zLTq#FNbE*zF1|rxrADbJy)AtzU6Q_%ZYJVMCb>A-n%tgzKKViNR`OSQxBRMnQvP1P auXHJWNySh;R<5L&)RNSW)LppWp#BSm;J4EN diff --git a/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings index 46d05f7654451be57c186261dca1f465c7e0bd54..7c17a29b1472de83b2e7115652c15343177c02c8 100644 GIT binary patch literal 3239 zcmdUwOKclO7{_p0 zo40gr-L`$lLp!@4&OXx9yX(>2dmejy?-PAb?%V&=(+A}KgSmmhLx-OkI`ZuBl9Bw; z(PM?8RvIghPaL0|nx3gVhqrXiR&`R_SvSlRC#_u#%IxR&I^6a4&oxht_v<=xah+E( zn@SYVS_HWadA7x{j(U;JxZ91oEFINMi}0x&rd48@w4TjoE16YA13Luy%ySTTnd2ja zI3&1*Nz}X3%>@%ukxrj z3vwHk%!Wm3gbmK`vVD;i?Wb7~qF5>n&xB$i9`0SqY%bzC5{P9R%w-&5_{?_?-6BT& zW(vgh94bT>TThm39lHb#oAl&u3czYnV5(qN4U}WlCDhdp;wn71F~>Yhr`uc<*e2}E zA`RPO7l*ix4_=*`5H8_rm3h=fIwKrW<|0EJ*(OfIrRFtqZCz%qJ>JpM{iAh{?(bh_49x)X!C>7r4%Iz9}X z&*R*2h`3clU?jTbz_F(JHYpE~8ul!=l3CW;TP(4`P*^dZ1N-WL{tb7bb}$F)+gfTT zDI~5uU~-}SSdmzy3OhKX7QrB(g*^&3gPN$!9DURw99XjLZg9Ac%)qCG8`&yrAWU`C zz$XdfUO1AWwHTOyiUJ+D1#NYUqVPNnE3RXcfhpKzq^XTT_Rj9l?}#h-iR@ro+Ug0YNoClUW4R2Y4>@+YKuDvjhPE&0s$3mI+Z~@z~aOx|Wzd&qBrU{_R1p>jzXeG0z&G``Kh4d(CrfY$Q*9qTh{NLp8>H-X3 z6L=va8$=SD$Zy~~3*xfo>DVH0;{QI2$8)~Hh_0J=HH_~@5QEVJW)qHv9S;q#K#yDI z`GQ>?IiJ#|&r!~=G2oHat5RP2U9$eKxtzm#b5et*Ja|n6LfkBuOL@X^Z483h#9sSE z+;oU<8_m;)ndR3#c)`^u(~l2ZO&=r;NM1I`U7wJB2g zm=mqs<2gJ?oAZ$V(;NQx7hagU?l-Q3trfpxAu_iK zUINLxc<@RI=?&?O^r>`7`c96@Nx4@(CRgN!?8$G*7v)Rx75R@yDzYN7FESL#N1Vv7 zN=!*9E0i8(kJ6`%C^h9}<#pw(@}Y8G`B=HEe5L#xO-4JStD>i)??pd}UX1<_{VjSe zCdD?#_QlS`&c!~8eHQyX_I2!=*!QZWs_HtmU(Ks0)YIx&^@94X`ipuk9*J*>AC1q% zUyZ*R{~&%jel`AMB9(Y8@lN91#QDS*i7yjZ51qt*`XiKLOb-BoqJu literal 3239 zcmd5-O>7ip7@pbxAC;lVuT;MBPhHnmupo-IYzqZTsk^h?mbQ#vcfQ>jJNtdZd^24} zJ~L}uCU<*!ep347P&g8e#S_U?`jJN;Tc#}USn>GERjb#mUH8QL&L=mZu8o^E zZ`rzS`;P9XGEZlp>FIrT=dS1acJFz9?+Y*Pd+Fu=f&IC`=urGX^5F2H!>^1S89h4o zYQCTr$4e8F$EK!dj%%-N#QvF-HvCtW2->PCD}u*wK0b4V=q5%-ZP#R! z7YA(H@}~|_P8=7Fm~^g`Cs>ENGX(=XCaogkILsL@5Q~&uP1#=G^?07R zova%gZ6Ccs`OMJl#M8;7`#pDn7U zYmw5R$!jL(Q$<_HE(uuElx4jQMH;M#uF9A<3tlo>N@+^x5=7jPN8ArMC5u_@MS{~( zv!JG+Kv?J~Tyc{rTGO1IWS)a?xy(H3BApSAD07h^3}q8X3;+gb)3Fx#0?N6D$&nBM zrZ)&Gz&A9Y*Gvj~;b50JsEjEp8<+xfu0eQvL7r8|KoU*axWuSJtTu~i${JxZf_wp$ zLuDTs#39*i_IN{5#2Y45Ro^BPIbgdAhtyGW5<0AIBdbxlL6fF9V-~>x%fcQl8v-LL zF-ISB2#5W#?F=YfMP@L4>qfTBY6w#u)$kla+-u-!5Qf1MP*Lm~+yX)}q9{BMh;bF0 zG&_|iH3rlQ*Q@(+d2Vt@H(eySP{%-&J81@I8V+23fVgEtEM4G#;9)v%!T>o&T|!~x zElZGk!#^3=Md6c0i{G?FYoUk4LKlkpkz*sUzt9c(Xv&5qO1HB*F`(;6>;$Z8(}x16 zI0Da?21x~b7C^k|CbSNUqc*A9@rq;%(qg(%mnv1Bl2 z^96^jbD()`_lT$6FZm0p##R&NmozHSe_4EmQt)K|G#g70Td6bWc&d zHV=Vbhp-_caYPuK$gg2o-$hxx5W{A1lyF>m*m79)DfQre2d*zmqtZ3WnmNcUzv@AX z3OY)vr{iEHZvPT(1#-s_cYTVgbx1c#u@{8d@*K3N`yBSO!XRc?^}h_}VP3F(ydxpYaoD*Y~9lO;JJuaZ0EVL2~b@(FofJ|%xF ze<5FxugHIf)`vERx24>F}BGx$yb$#mMeRE;1a+ zM@o@5BJW4eM!t^x82KggTjY9lO|&c87kw#Oh|Wjfik^vn61@=Xh^>$9k4?o+#NLU0 z5c@E8Ire?*kJ$Ct-*F|rBfclzAD@W79sekPKK^O^%lNnPpA+H4rbH%jG;t~MUE+GO zBiWVgPWB`ZC%;NwPF_h~P5zonr%-BFYC7el-c6lKeU`eI`XTjKT1t1OyVLum;1iM? NSIKW)o0s(Ie*mWLC4c|` diff --git a/WordPress/WordPressShareExtension/da.lproj/Localizable.strings b/WordPress/WordPressShareExtension/da.lproj/Localizable.strings index 16f5fa01a6b66647e9600d02d15ed3f5e27732f8..04f65a86ff9145d23b99703321b5ba1117dc06ed 100644 GIT binary patch literal 3228 zcmdUxPiz!b9LL}6?9BdC7(k$6D~~?~gu1pMf)$jd{418F?9O&u3XHEiZ+9M@eKX9w zE!2|-jS)35vBs;3Cr#vJj3k~g;iB<`UOX5zn0PQTnwS_5_jca-$nM!9KcyP&5W7+Z*53O9ay5r$Bk92lDx)!fn zzhPtdrp;R(+q$ji@$3`5ecN|Dx$~)AyPxiVX3ySdpWCP8_75D;4<0&vWbo+oONNf+ zj}MLfba@+8LwrtS#plg%Y(qFFbx7PnEQ56ek%_* zCZOGpWvpEwMzg@#EL#>>(SDk_Mifhhp)<{9;INt7GBy;+6pfnYJD%`DOyE6RJyeT5 z-hZY*MI+#{$ujkL$+wB1c!=@IMFPNT8Q@fbRUACvaY4B-_mc|jTQ}e}T$^teIFe1u znZ+jYWtM=7U>dZ#FeX(Zm5SHk0^1%9G4}*^$eOf+1tEAxy%UIsZEtmKpD6AMA0QqWw{=B;oJDP*8wvyUO zY7$pIz(U#iks@_z1u_J~E+x=FmozxY4BftvGRu+bdJrnCf@fQS+uxCLeP$e^$vhLzL^PAz7XlBk3|3-_XThjmU6!DPLDL@zT55==C`X#KwTf$G`uK_1dTL?n)x zv)!?brA-r@!*--O^_FoH#8%5p2~@d2!8ko`8Ee{yC&u-;OxI>q2$ z&;9MVqtbCXnF2pq)Nr8<(sC)|b|{z&qSk0oiWI)v?mO!E9~ee~lGM$-hW>@BDrkoL(7g6+zDa}v#-*n3> G^VZ*-s22?Y literal 3228 zcmd5;O>7iZ9DlPryR*9$8HzwfkVm0_u&k|UK~!W}`hk>EcW1jT3yiNjuRFuez8PlT zF4T{M7cL~mix-F|G?H*4-iTZ@!Ndy*CMKRR9`vB`qy}S5{J)v9-InrUG~lL5x1Bft z_j|vunJL${eBRr8Q{5{?qH-**B$BC)$Cf<4R9)7&{D~DSS9LwP`l&T*pI(R8cW>C( zvuX2|XSQxjZ_hm2+xOg#=U?dGx$DK%u~_vQA-29&|%(C~pJuN@pYGNbL=`k#}3$>(#`2h2&$MJ~8YNb3S2FyKHFo|ceDyE+2c;f|X(+bzsEk#DAY>K&q8?NoZ(!Mr4 z=>Y4rWmA7r48xw1971igqls_^5Fo8cCH38g+Gj&S}^N+sturE)Li-SR=03#-rSu$rLq< z+qAUb^6QrGmy51JI1O0S)unx*A|WecS9Pp01zs{+O6ls_MTnS_M_dm$r3+c@!-CV& z>_A<`fv~WnaK$`Rv`%w+(rI{@R4Pt`acnr$$IRi_6ozuCCk_AxXw$JC_yWdp)AF$p z08VdGT!3#lYt$_Ux$p>gJX|3RS4_fyIc`$FeW0Jw#y}EX?Ox=lLaa86=xUcR8O1XK zst=QAut`0d$z+a)l43tJp{C8abRq|AS7DJhN>9TMtJ=s4Cxqf z#3jcw#ysjneq1*V3RkfeoW6A-Q*r8;Fay^~jbgtM;tB~P;0c&0@&=cHkhB;I_XA>5 zB^Jw+^R(^&wZiqYRVlkVWB>1;L-SL@Uq(BG83me&omqeROr*BBR?`oyZyn7MXyk&iYUQ z6-(g$(tbKk8a6>2Rdg3+27IT0H+;%-#8(rzx$US7hI|A@ZfTeXFWVO-&{=dDeTBY5zo1_wBqgMk(pqU) z%1gF%Qff+PrH`afr7O}6=~iS-q&u=T(jOU)lp}9N&POgpu0^xa!DuadCi+42T=YWp zV)S!)r<{|A<-A;y-<02z&&yxP-^xGAKgqwxx?<~N{joi%^_(@?>{%dvYlGS@O%|_2kc~rKt_6-qb{jrQS}RNnK1`P2EWSmin`!tD~o57YaTR ODf|uZ^z%L)@Ba<8xfiJb diff --git a/WordPress/WordPressShareExtension/de.lproj/Localizable.strings b/WordPress/WordPressShareExtension/de.lproj/Localizable.strings index f91ef13e619e389f8c7cd48163d5ed5e929d6e73..a7b2b377fe633e4504bdcc6a8ab5d22905fa6558 100644 GIT binary patch delta 1415 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 WVQo;0YaeJIX&1C_wOiu*9po=KS$R|d delta 1133 zcmb7?PizcP9LM*~yqPyMMYpYX(cO5h`d88@Qi7met)l zag#_9>v5nbe-bX5h!Y1%5eE?o2Z;zFA`V2-_!Hq`rn^KNiMY>vf8X!t^Co-~zEe9k z*Ea;WaE+)*+*;5)bJn))JBnLc+sb_H9XmtefZU0@BHdLB7e#k1tzNb~w!5b{zGu~H zrEc%qgu0&WOQtr{lV}mGmdd>)VP%kD)l~M`IAd5geGTUro23U1HXnxR{N`u|;S()(25j%7c+E0(xw3#X}_?iBso zqCoG#3i=iegFlrOPE(fmGe8-x;=kC>o-+Iwq&NIZ%8I3h#d&!iap3lGo1W*P7pc#Zf8XN$FU<6zSH^43M1bk!sOeIsz z)G^IWj5*AVGMAY9Y(3k=_OVCVv+Q~H5_^@s1J}SHY=$8ifrsEpI12B=XYd_-55IDA zxC*Y0+sK8vL2j5k&t2idxAEn@BKU=6ss%w%3xYm~Qd%q&gbJY|h!yLL2#WX+`~c~Llp;8Lcd1ROKDaN# z4FCDf?`tn~TGA;2HR;y>XGymE)sf8 z-Ag}$JA3CdCG1&F5fRUGz1zFVaFSw=@95kqT4BCT7Q(j-u8Wo+4a(I)jb^PwXsiOYnZQe*T}0iOP08_d>KvZEe4#M$0uG;voNoF zD+m{{!JMPMvZxxi5?n|OA~Ce9eq~nip}U&U=t&{fi4>gr)#CTsx{H` z%6?`fqSs(MJ;$~|gxcU_wQe^oYbsLFav=nmLPZz!G0zh&N1;u4(8Vb0_% z&f$t^H$A6zQ(tSPDXouw1rgn>R{J+7|F59v@360Feu|hDM$?tRavlH9cwi$QIwPIoK&*gW delta 1178 zcmaiyTWB0r9LDF&<;*2Xcbbx9i@WYgbFsz}DUm2%n`{$PyGhpF*=)AkWIf$EnH{p3 z+0LAV#uBP8qC|@6!3UcsiJ%}9r1YVE>je=X1bq;EuvihKlopC277?7uZfa8tzW@1u z-}n2z3(*VF4-Ov~8crURM&wcT)uyqQ9fw{!+?pDnXz!Rzzn;m)jU1ZFPj~n97LGjG z_td`P(V5xO8w2>*VEH+dyf9}~>;nwT2^N#~=)1Cbi6GO%a}?EFpRyZbbYJn1;}egf zl*l@TSgV)k^cVv*}6RP>&Xmbxkjdwft(c_8586LW$!C7c0%|@yX%r@@W zB4M)oh(|)i*<2=dB;{f=coe)S>4|{q?(Y3)&aRT_A=5-O;9JsL8}UQEu)*M#ofG0~ zH@f7hx@)$hDZX|wvQuwdqFO_cy(mp<1tTDWEo?hmqj+VTxkjv+abnsSP1dOGI{t$T zxo>-O8UIcqC~0#DTkS_4YX8C7<^L~QVNtCsD0hWD4!hVSd^++_e~q#h883CRzm?9G z|4<*?7VMGKD_n|mIn0@y%{iQfdK=tfojV&)dm`J2V{7flCqlxVGxa%DxB7Y{?o*t? zt#V&*UvockcevjH2Nci_;$RG9KouMZOJEgz0?va=;5+aqALIA%ef%Il#uxdM{5rqE ze<=(Jqr$xKj_{#yR@e|e6RwEQib-)y%!qmMP4Tq2E?yOX5PubKiGN5@sZ$!1UY4@b zlC&b7l|GenmtZT5!C_d0$Kffs3O|C^;C1+$+$=vP56A_1MSf3Sm(R)H$aj=o%4y}i p^0RVRZBpM-H`HtDx9UADqQ$j-Ev@<5yV~d4SK9a5P1e?o{sGVAac}?t diff --git a/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings index 96374f1077441ea6e11024c861f50e39fcafd0c4..ae86af2256ee37f1468526e08cf066e2243ae029 100644 GIT binary patch delta 1159 zcmbV~UuauZ9LIC+x#ym9@32YNcG-UzQwPJn|Wu~B7g{JH0MOdM*Nj89F^%y!Hrl6yLhNLMPI*|&ebr+1<6 zaQ2Y{M;4bJ&Al-AxVfCSo}@#C;irqwmgWyymd?zg&&Ode{{RJf1@7TV6eY&2S){p8 zFV{gg|6V5iOZ;HZVzOj*3wt;kINd5nqa#PM(%^ zf3uB8ly2Ta@ZO~aWi`*ynX6Y_pJh{3%VboK+s;u@^U%&C2|HiXW3I!f!;BF#f0So& z4_}vF;azxltC2L1(QJZN++)qAtE98tn5Hi?!w@jJP^h^Ke@fZQKLXgvg~BPvTrSi4 z%v!bVnwCD$7``xO*-W1mYaEV?UqRR3-=7P$j#HK|)meR;QD6KS#!8iDMrpyUm02#d zvpJ$(QWaT=iustJD7xMX--kN*IjjdWqqbkMeLtO~WtwMvgS^zxrVqdaI<5uWF&jb;Pwku4unsPO4M~%BNyE~FG%b13?+`%^?t+iOC*TmAf(7^nd<(t@Pr=XN*YFp3 z9^RByxmDgRzayWNzmd<#*X29%U&s!iC>lm<=wtK=`VResE~3lmni5bHC8ETXIi;)| zS57OJlpD&QIE+Ve60hJl@f!XXpT)OGfxJfEC!dm^$#3Mgiq(iZtbU=MRe#lh7Ssl{ TN$sTex%Q)WUc19D@6i7N^{8@L delta 1122 zcma))OKcNI7{_<^F|)h8OlTejn@pSp(G&&ILa0CrNla2x9Fy2814&>Z;Zh9#(|nPTcRT&w_V<}X0<52?67OHpLHvCb2>(+OqZ8; ztJX)dlcW7P-N9ZrZHVOA4`Se8ZGOhLdw@FGf`_bnU1w+Kg_xc#;E-uJ)Noh@cCaVP z2Z1+a`#rMpL@aVX;xcoCZiJOVaQ{eeE{7eLor|q@jn~%WDjsMl3+N|EAHa19eI>F~kj&2(E+kfz8%c}p3uY)zi zdUhDqAKu#cmX>#Ivb!FTatKFwd{@ACKgWuaFX5GIA|!fjzmxG#Jq{3sq5Lt!2U@!8DwP^Kb#)fy?j({2T2=0dx$d(L7o} z_t3ZKXY`j`FE7g9%PaD#ysnfKraV%AkE;=NT3uAXR3Ecnx8eT)6_sd? diff --git a/WordPress/WordPressShareExtension/es.lproj/Localizable.strings b/WordPress/WordPressShareExtension/es.lproj/Localizable.strings index 1e47e7e63b5d24b9babf6def5f984da8fbca825f..884543707dd38e6737f44a73ca3cc95882fa505d 100644 GIT binary patch delta 1508 zcmY*YTWl0n7(TOe+1X)dm|j3Cy$roTxK$cbOc2phiUF6lbf>#rmUcPaIlDbDJF`7A zTPeuJn3zaov>c2H!Dxa$=z~c^LL@;SDq@U@F-CmxL5LyIAR06w5)G!Fp@M!Q|YnH!R(>&iQHj0nYU1(IE9ZKwM&j$ zo+h4OnR(&Z?7rhCUOYM0XIX|1iyqy>chL*ta$4e>Xj1Hu&0$zXIlYS-TpRsFkhvE2 z)zUehoPq>9MFSDyl1ICNV3!`QOxoC+q7Q_2+QMyYNREyqCi2kkY6E=;k!oJ_5AE;*@8YY64*I9Kex92&$?iZI-_%3lN01RaMDIWgVhQ(jLd+AePfvQd@#Z4GBvupyK{Qo9^~hz0&P6(BafY# z=4=_IccTKV*nUp0uhj`c%1i_nG1kv07hN(-*N7|ViO3plH}*={^HND7 z9}1l@$*cj35Hq^Vs|r0*GgY13fAy)AHUsYI5dg1uzV5gCfAd0Whcc(!0{8c#i=IQ*g%3=^NO=hE~Qgbd~{a zBkz{VkocI4g)-(Lp?Bk3=+DyAbXsYkKSsytrD$U#n?qmTuRt3ghr~dR4fBXLOIzBQ zX{u(zmdnlwp01!g`%a}?dj=7@UEV{_#%Aeav}Hy5xe6o}B;&hWLY83Y`$}75CW(s` z%p8d_1AYMELyvwcH?3-{rZ^$EPoM=uQ?%3H;_XjP1da)D!kcVABt^(V!;r?INoH|| z$x_)6v0JqcF1xg-Zf(GzA3)#(#ME*D0rvo;JJt1kPG3jgR$Cu`BwA)S@|Y^DPHMnL zMNBSVSL!%=AwEEzXls4lpj(HtjW?FOLx`}mGjtjkjE~J60%tNbYI!V3~6k@ z#wF}9p{4j{nvl9^kG7yMui9rx6+~}oE1Q`~dKhZR&hRRe*n-U3!H>_fWo^BjP9PMF zgMOo~Q47FiG<;A2HgM^*)Oi}nU=ExISHTT%n-jPg*TWs)a$Je4aBp#o+zsv~_jg2z ztc>i4?2QaYNaP+b@(RC_-@^Cu+xh)`fj`5a<=^B#;6LK8@L%!Y@xKT$p-xyOye3={ zJ{A^*JHnsBLlKA_;tuh=_^$Y&cuo9F{9gP){7E_uBuQ$Po{@<3s&rktFZ~nU7R^VG zMPG_8M1Pez`H)QHSL7@5*YeHS>e#v1LhNeni`bpm@3Du9uB=lMN>(WE zm&zZ@nwPCzwmH5t{&M`C_+?dAThuPKTg|Fxv?sJaEv+5VJnf?Pp7y!+EdZ^6JrOQg N*>kG;T3WRS{{mQftu!DQ6iiu)6-%kR)4i~?I zL@*i>AR5~vF)6+n2pUaHkOvbUj28mY_+Utg@kMBS@Io*#F+^ixJhQu{aURZ`%>4iV zegF4;bK0EtmcD)8^F#ZG4~)E!OzETPOg48ge`svn7<&;GiYA&UmGMiHR>gLzgIlIt z&kv>#ADKCN?B(NR1^X!J5>~0pQg9k+rVA&0t?GC_S>RhY<)5=Xv+clPb|8AELimqyx*6S$h^JMN5DMlR~@?H#Yv(!9DTx;|4y*#xCfqDA^J zIzpvcIa=EtEpESwsxW~qL|XZvGoM5ihbkYcrtgNu$=ra6eJzC6M_`G3!FOz=_mHch zHt$7#u^ftD(~06AO5$Q!OE|WVY@bA!?!NyS2}>yKeBjwY=vitsIdpJ{x>x zoh{A7PNhJNFp<@0B^#9Wy}1D&PX)+_Ugp^Vx+ZiDwT2sSfEodumL2!v7W~%@dE`KH#*C78uHSN80y3I z7-ISr*=}e^k>1I_;*(@obRe2fK(_>GPZ+3IrOl*W>>^()kCE4uE##Wm6Uh!(xPooy zl8f;*#1-2}5Z^#f#x9dYeEA6=gR|f=_y*hozk@#+z{t!Brh^$|l8nVnG1JUh<|1>2 zxysyR{$ktNwQM)LjU8n3>@oH{dx5>q^>cf3ZraQ9OZT8wDPWU zNx9Z^tLdkv-W`7A4%4$ z|95V!y0z-$;8wY3+xG3f&+X{j**`G2Ybco-9!Zam?H=DVu{X0%ZJx|(Y$`X+_aD&n zhFLgh*^WE&{Gr*yb4QMjc4``R)SL}H;tF_Ms)oF{6p~WHpBhwiETgOdDm20suV1Lg zU48RJa$2>xk)zDAOzZKfyLd_ux|2G$r{SJ=In)cS@#OGO-`+0O$TFSU<-CRY#^qR; zn#P8`L(Fk4gE}THn6@)MT+md9(LQb*SeRcK+cU(o)3nPp9A-GFEo$}vJP?}UhG%YH zMyYA1nx#%TrA+D;bW_!smP)EKY@b}%9gERvZaXH&4bO788r4Ko*$7H_8*HwM z!wXe)cwYPH+=zOk>6mL#jiH*QLS+Lo%T(GhZU-!m*1!edkwm9vG23P|%_dQ`5(;Kf zoNOh}RGxxHxeeY4Y=ry%R>%a~pg}&k1T`u9&!x<;(2g9{bW9h{`I_LbzyvG{-9=Ch z@Op4DR3y5xn52Yz5(s~%sqraZtk;69c~)l=UHGl9JIrLVI(Di8ytV#4w#OlEnm$;RY^7EC@yJ z!#-u81)p4}n{|znx2eYMf@yGk9OM0Fo@y>FGiyiKOJSf|fjd^}7Q67eDI%ZQCjC9}9YOenk>Z1txrQ-b5Mwe_Q&WukOHxk@PF6!ZqQB@Qv`d zC+Mm5Z1VJa`aPEC4^a|>Vy*au*dcBZcZyTui{c6KP4NTqocM`&Q~X-I>kW9L-X-4G zyl1@^z1O_Ic>nZ1l!%m&Hc6+XGt!6BW$C)~t@OS0vwV!mvRo(ckk8AX$v^lu`!4xw z{j2@!{SZ(Bb%FN4yMeC)_kuh)7knxBPt~uXme7--ZK0E))1i+-zlU4Gh43q32!9#A z9ex-IMYDcwy&Devu5U-6-#IuCJ Ir;8f?1#WZmsQ>@~ delta 1532 zcmY+ETWl0n7{|}t_ST)<*IQ#{^XcjjEB?;DJToGx;mi|Y#Z3AY6d$W zuZd?eYT3%Tjs+z;WMFk#rCP1hqBgN$yYNWU?i8^dQ+Ln0c}9||UL+d)z&EqZ?eMke zg&}^)v)K%_HIjRdS`}(p`E0eM+N2h^poHh$>fWSOP?TY3LZjAXO_DY9B*Zxk_k|8` z{fAT1;+nL{&q|qL<~#S=qq&08>^4pCjNzErvJG1=9n=OCK~ z6JiqJaGhMhN^)fxGhY26K;mPX~V z41=VWRjM1xdiW{W2%m*T*zRwFWq|}d9@)UHsDJgq6M;o=F4h4jm0p;Lc7YI!EoaTL zu!Qk05nNSGmW^mAjqW225mZDrqR2ox(&2>fXlTf&;F5ziN|;?240-xC>_fL}Mf;J% z4%qA=$jWcgO;V&kh^{+$!#m^29t!_{#C+)T5%&h7K^~!!35XKinpE$#w0`O zsq0ij@j#8TD;|GHXR9&*T*E#8Xu`Bhv*xNybkq;e5@1Rf6x9CUoD~C8A*Tl7Q{alLExc%HTcbt2ZdzZV$ea`*CFXlV> zZhkG_&*%AB{v3aSza=DuK4D5YCY%<|3KxV+!bjpdF)8+oDKRG=6kiq3i8sZs#Czg* zhs6g{v(zE2m7bB((zJ9)IxAh2u6d%K#hw$MTi$l>X78Z4;yvm;Fqnz>YvJPzbydct7xDAf;k{ssEXuNM${=5ougf<>!LSfs7;X!% s4!;rpGJH?jqg+w0E4L%vk=R(|RODjhW^_rkCu&8HL@&oK!UqfR- diff --git a/WordPress/WordPressShareExtension/he.lproj/Localizable.strings b/WordPress/WordPressShareExtension/he.lproj/Localizable.strings index 28ca3514b9d9cbbb69bc58db31687d447724b036..58c09424fd4a6d2887d80668d2febc8b7a0cc141 100644 GIT binary patch delta 1517 zcmY*XYitx%6yDjHJNxX+^aVDwFlAd`t*r!+*peu=G*7`7Yzg)taI@XYL5Y4*q7d(U^y z_c)XBWqj`{&o#fey`{CSy<h5eAXi%d88kQ5;zR8Jo>v6EG zN9zVUsgaCFWkZ)^dcx@Mjs;bN$}L)SWOCx+g58~3U|4R@qXvx{%JXVq1nx2wFl8U# z>z9f*$icWeWLTYYG8Wd=APp*A>L~5+q!E2IJI61r?#|WZ4HmW<|A(|NRodu2Ls8JV zUy^dVv%^psOfV%;vp1>^hN&qq%aEJVw=Jj{atCVO)q=d3MomqPU&?QyMqt>?CZQQL zfp3a37Nfn5bVyBx4Zl>7<1ryI3;_{48_;q{kB>n)DTZ--xzMO3B3dHR(?!EHV8D4c zxydgTn#TTfoQn_Vwdt}ts%l|NrA69jrYE0o=59X7jR!r}`om36t9$`Nzd%9cEj4*yKD}*A* z-17)Ykr}c`Zjp>lCK+;(T*iAwmmY!7ge@>H`rw%7S%`>Ry+Lw=T*KleU3wggwcvGE z!k4ZFsCAUMf;b_Ka~9xZp`F#GsvM#iJ`f9PHF6ba&yZ=0bND!q#3{0b zHxqKxq+Z8Y!I0Yr9nRv_BS?D*`)A0n2)vE3B|N90l<$MZyh3E2CBGnd3ewI1yzM@X z>_re0A1w_c(iEK5aQ-4muV~NnZY~Jm`!u;g|Mv}tT$LqZi{YBpa0~kv$(*gm{K0pQ z&5auBN#pAk9G9zxEFU*epaqNIJk#6-L|9(&ypSygaM%pF2ph#ZF@$F3FmM!zfD{N~ zB}!k5(yO6fkWk$;*5@hy%_6{b*yz0j+l6{?JD(`jP~`$Lq#nqm&fN}|_zFh=eb18H zpy%~MlCOjsX`*W7rk8Wn$UM1jsWLwRGur7WNZwMoC)Qe9wfuwNC`WN?uu_2^MS+J} z8^Jx23>@R@57?Zx3EN@YSGFnJBEvB*W&^W>@iP%7$sA?QGgHhA^N-zaUuEB7Z??DD zX3 zZ(<`pvV|Nb$H}MU9Qhtsf0f+i57>B~FXcD#2YKLAj$+4JN78ZDG3~hGe9ZZ#^N91L z^S-OdRpmP9I_f&^X5DApi|&m3p64k~y{E}D;yLK~+Vit#!E@Jh-&^E;#`}Ud;{Duv v+WT$Zsl4BX5}{fc7v2*-6h0E}iL&^G_=7kr{wevSYN=IvOPYiq^W}d5{aFLf delta 1469 zcmY*WTWl0%6yCY~yR(|+wLmH@rR+{`6j+DdzuU31JIn5D zrBvj_kSLK@j#qdw!6*-kA;brH(5MLyJoPG6C{i?`txAj%FfjzrKV4BXFLVC$o%3DJ zLghl`n_9!pmeyTuyW97KBU(pixU0KoZ|}bS2cj?N2V-&Cm*_WM959n9E8To3leKe$ zFC88_GW_z1}e!4r7)roQZ=5@`)oCBWo?)hi)(wIPi1MwR$GnKKv$URan(xg zkM!#qBb88TCSzqfBh;iZJF2XM0Jm!7FK<&11FLO%l17zf9Vz{wNmbiYb7|AU`Fdx$ zrs;{S#u%f@k~T}#2X(`AkXgf~S=c3%EIkmWb}o}*vrJEClb(uE6Mp53QS&OeDSDud zU%jI^?jw07hjd8?``suVNRR2{N%88vHLnIW~GW@ueq-GN0}YIZRcO&dzn?k1Fw zK#C?8dc!nnVe%|B?KwR*(6c>m*eave+Vuo{Etajr zf2K966zrgOte=JNZ-N-WqrqtO8Ir!EkUjd>UE?wMzL~lgyKGGEGLwq)R1ZSWS}!GDUu* zSX{+oj!d#0<(_SjmWqnz$qeEq$sKIXBW})8mSb~6$ta>HD9*BNQ)D5I?VAh$zsT!h zz+VE7q$hka+`nqJxk{Pt16DBzhe;@sCo_uzsGJ~ zK^&i0027u{4I6?_!g#O-X8bD(4JY91g!#Me1U?5VJw0$y-c)6va~A&?S-|cnizMMF zzK!rY_F2lBys$q(>p=~@am*k$$Subs z+se*1=8{||To+tdT(?|zUH3Q_Cvi);GOn2mb0&9)8{|%KA95GDOWZj3Ctu1}@YVcA zzM1dkhxs%7S^l!nDC`ghgyX{7!fD~Ga8CF}Y!I8oW-%;wiAThf;u-N>2KUFy!c-*Zp6@46p&f}RbYW>3WPiRUZNeTkENQiIek zQOT6vmFB!H-cE1Q`?~it@9(~P-)7%y{w@CP{&)OW{lEDi1l$2RuuX1|cghjDPqyUC q@~nI>*b+P*d_QZs}i}SYt diff --git a/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings index 462499f1216d36c164d875dac5c6b9eda83cd32c..410e1f49b718b8d8afbcd9d796a379e588127c9a 100644 GIT binary patch literal 3228 zcmdT_OKclO7@qZd*Du;``fh3I^pU2e!A%NSE@SV+yYYHw*&U}f zLI|NAN`VV1;)H|*7dUVN1gNJXl>EZR-_v{G-un*T|G=RK4?om*1cyV84-D*LG&e91Xy7O~#pz3H;`}hi)-*4xb*Q zyyiIqWRZF*=Ng1lJZw3Yn*@N}BEa;RRWk7ab2xQ)_82L_x$Oh2W*bfy#{q4E&Lqwf zS7h-h_v*ma*$KfCDV12w;n-l*#}4Dz6eYXVt6IKqv7oLd`BiFIL`2}GZKkPa+CTiqfkoQGj0WnwwN&zeBD&FY#ug?3U5lR0A9fhh!tObD8A zid126ac~G6LP&ivrJouJ1T^Y$(3PL-cU`-lZ_vHm>88wYWR(EBRIr*Wn2fo8H}+YT zf;fSUGcXJIjK{>S2}U(PlSvG!59HbEw;NEZ7byk-oC)T$Y+Jy3a_WTRQ;!EqoXF0j zqid@gCfJf~zA^Q>c1?&)$g)CEg)s`o$sAqV+{S!E%q{oGWi4(4hSve#Z2VUH@U5`m z{Ah8O%vt}b1K$Sjn@f?WiSa+R-(1GAszAw7o@;`w+GrM0WFRU<5Y2=CGC|@s;V(I> zH+A62oCod@Sa1d9q!r-aJaBP>swgSGx^|--FYwrg126a!YWf$(n;$ibqy){}-iEuJ zQ8r!YdYjGXDmHVVuchsINz!hi!7{A_rQtnYK{bg0@3X)@ZN9r5_XlAPx>S{F(reOX>5BBF z^j9bzS|92Qod~5uUg&38k>m1uxko-IAC^bt8TmQ+g8Zudw*0RAf&7_#RsJa)3wMM! zhF=c98U8SQIs8NTxA30|Qg$kR%0=Z3`5^0o54id0qIqV}sP)ly$l-&3!u z->JW-e?&G#1|ykBJ#s#BG4gTb)5zzMU!!*PT=YWpt?2vFOVKZ)KgL3_6|r5hL$Q%q zG4_1yh1lQmweh|2;rL{n#LvZFkN=*K61x+J5<`jcL@n_Q3O*sJaYeP}wRuUr@(*LO B5xf8Z delta 1334 zcmbV~O>7%Q7=~wm$GdKcQy_^+j3JMBB0&%FQIMJS(TmYDqeuD&29HWZa9DXVJaX)*(XsKw#N^Y-l$Op+P0!3`(eb(YuI}6k z{BXW-Kqm{u5`AQ`+-E#iF|F#7?YOLoe~6t{TO;?TaE&0{#tSa0THeJ?vE@ManCTGP zMPt+~PbCS~k!8-MO4z1m5fR(A>`aOnq~PWv``F8JeB+L?d&VzD30xt$NHdGe&2de` zMMv}J=OTL&7Q!`54V*U!a;Qrj_Gu{EG@m5yvTY*Q3SQ3)VzWRD_C4R?Z5U^pB4i1^ z>u_45u0f`bQl~;4C!4P7*d@Vwxky8A(2AC;hJ|&a=OU5G<-9?iQvJVW9%8*5V&4hv zaO;9$wJn(aBRnN(lfLXWxtk^A){go52FR(a)wGo=nI80BD_Zu7mLSi#?1j(+?0IE5 zo=uX9<(cOT*9LH*JTs(I7y09~NnB(fh%vUR!uDLGahSM;l5bw1yr-w98w^#vD+7wIAPnmVn{X!Z)iMNCc4@&Jm%JE8Dv=f;Un zF`B5l)H0nv6SBQ_K*n7pge?#{G9Cz4jiys3tmD%eZj& z8VG@Pa0Pq3-s7%vpL4(RZF~p6pYP*G_$+^l zzrbJOKNk9hVWBKMC%ht@7cL2J3m=M)ii6^am=vePlj2L_1@XH0mH4fAOS~<$NbORe z^n{d>YSOB7UV2MfyDIOI+vEW`D=*1w^16IZ{z%@Gzmac20HbgpJP60317C%&!#Cj- zcpZKLZ-<&fvCxswwa|^w9Ys}Im4nJV%Dc)nWmEY{`AyxcKCX_cdG)kheW&dPncJ2Bde(0vx diff --git a/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings index 87d88b4f0bd1d933e72f0c8677091d3a26a7ba65..29bde8448881881efbfd5a2792592521fa22af88 100644 GIT binary patch delta 1368 zcmbW0U2NM_6vypcUw;Kiwyf>Cw!~{QCRCJC1QM$XqfI*~OVT!Rl6L(txA9G4>e!j> z6go5oiHAviY@oXV;)#zZ5CRDy1k!}I!X_jhc-asVJWvo4Lz)CaLPET7owOA#}ug&a+!~ic@QG6!4Ro}PLhRv zqB@1jSPLJbAETrpi-Z+#k1b>?$T6(4f*r?pwpQc*sxVbwG7YyvF3B-+iN7tB*-FiJy}4XXM;=y^hP6z??$|q@F^Ux>VOt)y zJarTmm&sWnMxGE)lZ?=QRL!ClJeR>$d!?16g*$RJ(?&YhmBD7oyXdoIm{?8YCp}ed ziVbged4%sG1A+i(ny-Jx?_qXaH#}vEzMV+YLR4rx9@oNqj$yA@@nyS)hh4g-s;f0z z7{eu0H$5%9ccZ8uQls){#7u&UDcjB}ISAWGR8&HRF~hAIuA9$d6Bj*VN%ecRaKx9P z=ng7*%~anRS}<)ZXayN2S~79#)LGvcC5@_NzuZG=qVUr9`}llQKi!FuQL5)6%umiu zST1(FrjN6#v#OvnGAu0|YI&m6H$2L>CZmNn9oafw^$jRwFw$u=M|K85}XO;k-$mi`+QG9tB! zn|_cTgm69~6p}lZKMIa8bu~Sd#UbdVPm$8$UMiKXFg%BGV3hIO6(vz&1!6wt+TJNYwT6_I{Q~Z z4zve`0~3LCzzN(05Xhh%+zsvnLm&l8;A!wIxB%V;?}3lNm*5(>!Aaa6Za?<|_ZIgt zx7Of(;(q7;gbeJ1!|*(O9lirE!q4E>@LTvJ&+t6o&5!VD-r%3-Kjg3RKk&Z_P&h1P z1SFghUKZXIz7Vbp--(R)lt{!^#Sg?Q;y2=NQcxO_rX?($lFmu*OP|X}X~J$$qk* z-}lew*9bSluTKn*jK)uJ2{t|xR~R$azObJPV7)os@!4YsSVc*=6I)sSt?Wh<&|gQHgVZ2g&rlB`PkZDqBI+9Mk%$1$!|ipq$sNHD#77o zO6nj>K9&Xww zh4u|Je?v=k(^fUCl|rHP(pl4RE3Nmob&L#9h+GztP-uU-!bQkS61*au`Ib0xTcH$XrH*IfzL;)1D@qE#=tt|!wUtmyxzB$t7$zoN>{6_l!8O}&E=aA6 zs^#izLNh!Rh$v}QCpXzB^w)lI$H=sJ|K2khqg+98+w!pGk=OVmPi|{o)p4-(PRWU& z(}1j-(L#FNQ@8nwp`4NXd3eTl1rfj?X&@%fT6#ayvIb>8i!!MWs|%q zN7t_J+kdyQwjdeeW~5ogSwX6<8rHvK(X-85JI7oSYle!Z>Yia+E*X{w_TTZ_9E!Ws z5R3q)B!j4J`rY@?#~=wdfDT-M|2qM&4B}uD)X4i{$H4#P-$QQm9fan(TkOx12l+!g zQ8&N@*aFJ{0}oXF`zkfPJ9U`P`(wGP5?MS-Zn2Tw2@h>6aYw>cFxph#0;ca_!*8QM zxZ0%qTBLUbe9uc&U;Flv&MHVW4{G?KY=5=sAKC!!uJkVe0bB$hf-k^#;8*ZF1t@_! zNJXh}DnpsnBDG9iq~4-FrfyJQQGe1Ax`#eO57Ogwkv>PS)7R+FnGt4;sWPuJZ!lMx zYs@>$E%qrk&W^Jgw!p5km)LdoGxlrtNA_oSi|gVZ;s&{AxGcBKo#(D{Z*%$${s150 zNBJVZ$Y0<;;6LFvAOi&$g@Z5w)35?B!H?i|_$B-X{sR9NV#0Aj5nd2(i=E=*;)tk- qmiUAClN6SQq_i|Ay&|nk?@FIa-%EeUd*q|?m|T|Y^2_Ar9`p~Ik)`Ya diff --git a/WordPress/WordPressShareExtension/id.lproj/Localizable.strings b/WordPress/WordPressShareExtension/id.lproj/Localizable.strings index 93e9ea8f26ba70182d5676df35171e5299b4b335..e91c271359902b4051c8f2d4a9b8fd5858ccd484 100644 GIT binary patch delta 1481 zcmY*YTWB0r7~a{r&%|Vtw7GWEvrVG5wXH=;p$5dHt!Vwc1QE4fS5EK!qs31XT5m6s}@`9xg^~~-j=+j)z|Nr0R z|ISMHO81q?fyU9X@zWCtBbiE1W~Q>!XJ*W^FgM$uM{|WDK3B4Ar(8Mjdc>c9bz$+f zr3)7?O}?DZ0|E;kJz3WEuVcYidfd-h*elY%gc~# zL8a`GY_gJv1c4FklvbCYZke9Ivqdmeb_jBaF$iZ%^dGK|u7{V-nvv}XLEeRPq}mDm zidBYrls6J^9%UzxU7oMaF(d8C`WZM_t$mI?=dgv0QM5n|gDE#7kvi|%Fvg57bDd7m z>%g3a0)jP!`i#u6JSJeAah@7sxXg|H`}doX=HrOW76WfQOpwR^8OCA-rH`UH=v%~$ zwA68ek_t0{RZI>s$%V4JNMqu5x)hEz9>t!GJuj6&7Mdk=jrR|kk=8)irsBGNY~E-Y zzn&i zQ_Z0*H&eCE{nwv5v=L}ePav3Qd!!e|=)R9OcbOTc9(`3KG6Uf;oK!|eKC;s=pR zo)R#;Szf61BB`^rX~Ir3P~c^D%)v92C@T$PATp z5Lm&6nw2goS=|QxRo}5avn4IfE-_>#n33MVGWxZyNy$@w-nZzC)O9(egqA~BL!X4! zLk~HDQ@MlOY0l(q&gb6a*0^=5m)Q8)6N+8^#)v)P4&53vN2%eEQ+ zRK&!@2M}UCm?$JZh(UbNgzzNB7&P(0#Kic9Mgvc3h{gwlCdS}7vkT(eWX}Kp-}P+Q z*{;`fV>1Vnhf--XGn>uj=L++O7m7z$TVjX>anux`6_e>6I7ny~Df46$fzm~jDI zhS-iKeHHodJfxVd}b5SSwuGZmG7XO`^b-iOlJ7U$1^4lY?OTt`!($Q zg-qRo0g4D0jr9$*CN{E)hLH?QHufvgNh)S18RY=^CEhPLAKnnVqthP0Dw;`(yLNs{ zwrF%P(Fm-#p$GiH^;SRyd1!cec%eZH_zhD`bES@Q2}+?%hs+stoLbYKiL|5p>W8Qc zOV~!FLkRl{DO7W*^UO7K4_vI~_gXjr4BAY>GPxo2Y^C3fYtd-khl0flGe7c);?Jk> zVg)2zCqPa>RBmwee?h`BVw(>#+siUbXHrvhQ#1{Fh@K!JH_)5gZCN0osn9^0RxlXm zJRA8a-m`XlbL(t_Y|-d!N?N--(E6XJO*Hb1m{ap6H3^m>Cf~_JWWT-%wx@Be4joW+ zX{qY$G^j%h?wmVV_c5487KS+!d9YrE4$Ur&eat?A3Bv$7S?Uc07N-0n5x|Eq043y= zU>RqU*v1tyBM+`G(B{GBPSI#1hvYUrP3tz>Kqr?qKz67-k1b51S_#@1R1u?+*#iS; zlh2fXaz-8@oyu5$=0IqLc5Z?iiyM@Z49yF1^E~-p?`)@`P|_tFFse+Gg=tVd6t{=` zpl(z0%~$e`HbSNqZ(Tk~J*D0im^fKBEc>J(Qw_$~mrRAa7(1Q=V z5skM!{IkNqp%Xm}QUL>`E-R1Br76WK_9CA*N4gSH7x_o;Bnvt`l~1@O2yB{kOo^R| zU5$MeyA}H__6HZ^6t0cy;U>5gXLHB6W$q039(Rqq&V9@M#dq@q{2;%bpWqApDu0o` z#D5vz9p4wP#$S!U8NU#}6u%PxT-YHbgb5)fWQ7yLIpL!4g>X~&Nw_226+6U!al5!n zJe3xg#gpO%@qO{Sv_a~Y_Dc)Wap@K5HR&Dcvh;~`L%JjVDN~o^F8OIWCzs`#d`|vU z{$0K+-&0zZZOXV(R8A}Bl^g1q`mB0HeOV>y+v>aO2kO__E^SgvYh}&V-qJqQKGtq) f_wm_|vzoO~a^qcz6EkX+-wRPZMXt41K diff --git a/WordPress/WordPressShareExtension/is.lproj/Localizable.strings b/WordPress/WordPressShareExtension/is.lproj/Localizable.strings index 2a86a543302157ee8c5f2cabda1297d65cf1ae35..803e75bd4fdd0885d33a1a0051eae8e12a0bcf0d 100644 GIT binary patch literal 3414 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 a&Sc)se4M$IxtaMnbEl!9p@}}81^)pZPUd$2 delta 1423 zcmY*XTWB0r7~Z*0W+us`ZIVrz%gLoS#5Ob((^6Y)OdFCKm$*B-$u>>b)7g{FA(J`l zT-GMFjZgIo;ta(cmx4!W7wUWNFtaA#GOvfLJzwIfIN?QnG|x69pua&YH;lS26QapQ+q z3;64%Sk^)jO%5>%1vX?Q&`D-ZW4f#zZK&VDT$sTQqH!^7pGu;6!kmv>vmSx=T=sAt z2OxsB#$kbeB)0ajcf>Vk)(xY;o{h{e`^4~%C9ypVhKL&=H=tEqZ~y;-gas6B{+rq1 zD6>>LId*i6rNIud6Ex&H+a?F|c@VHvSRfTEBACeeXyhHCb!DxqF0)QHXEs+Pt-R4$ zchA!b8r?5VYFUe!1Pc(mbc@;`0dkTD^i3)f*@ zt!|(|i_<^kUV1?9j*MaLvDxjOGBD_;t4i0kbLwucDn06!F#G9coI7bk)~GLcB(_x8 z0GqgZT*5vRhAaygNw!iF43DNl+eW^ROC)Eu{D(BE^kjoKroKK?&k~;xNvY!9C_9S+ zkDk-&l?>|(b|G~Pu(KhB0}QZR*_~(YAS}q7xtSHlCLoU^N~|;?8>1h}yXn_DsAX-A z9NL(s2bBA(k42t@E=!2jgVyQ2^rrRzJuh$9Cn`*GW*Z%p>#OeZ%*btYP1`E?;XZoR z_-ctw7ClmeF*UXvyBhm6_Fe3^*c~p$sayls%8hVI&f%WqO58Gcg}cUG=WcR;@hyBO z-^&m1Bm5M9ioe8P=5Gjt!muzWoE2UWE(({0w}g+yJ>rl!A|}NNaZ!9;yd-`i-WGop ze-{6g;!=k+AU!0dq@|K{TDmB`DP5O0$u07J*_O}B7vxvux8?Wb&*j^Sp)@P|m4nK# z@`Un|vZ~xrzE^A2BkJSoQFT^5qrRxFsz0c|R5fa2T2fomUen&!KG1GxUueJU8Qs<$ s{TcmP{dIj+|I(0*?Z$us4cBh($ diff --git a/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ja.lproj/Localizable.strings index 250ced82e15e959caeef14475bbf16621694cac2..0aae97792e7ea72f85b234fefc672a2b711d2839 100644 GIT binary patch delta 1423 zcmY*Xe{2&~9Pjmh_l{8pbX(ZQjjjC1*z#tw5C?HlU}mrt*4{SeaP`{0wnw|W*}Lus zKb#N~m14H`F^Fgg3I5?Pbf6&^N5~jyNKE)kCDE8*2th=R24Yx*=(}q-H7}RD_ulvW z`Src&%IV5UnQq^)v!f*2>-D4zGd(;qI=277!9%a?c{UP}OeJQZHqwhu(M!=FS%Cs{ zEhq0*Vle3TB8gayE>j#)g}q(yk(3fO?M^8@l+=|7jK~3H820<&pgvr{3A)R= zi+56!UAqy#qiPb$J~(R1GIkzxyNkLDU|1Q-5EYu$t0|!*v;-CyiWq&{BdRIw#+qN~ zz`Qt(#>U2=ds!Pa!*MGcLp7m+&t!RQ2=;D+Q6-%;gYMEIk5w{+L%FSm>>I4;JA@qD_Z3@d8VR%w&=S?NhWWe}pX z&f4s)6-0CimZbiqx{@ zz1I(w2%aN4L|3irmQ^!}f0zFW#YNVfA-DpjL2lxS{|t)ro9fPi+u#BC65RJSI2x^` zf&g9#`1<}^AlC)`??`LWd1gIYCzi2c@Ev#zE}_F*9cmTIP!Ct{hFvemc4(TuPPr?9y+dUD{6_*e@_fIg53O^$|6qb07Xilk47J_4PExIhj|N?4qZ z7POJATC$*9lb85A(JWVwMwn7MWV^__8qo7h8G2U?mMqle!mV8}fo4Sys^+{+@ZU&P z3weR1U@>G_gqD%Xr@(cR@J!EZpi$np`}&2?}e4KNks4$hHr9Cv)-$UA-{D1s-N zh%O>X3=(PLByp9<6W2s!>zmhcRB0VG^o5>cklZ=wDl1IrY@&ob{ z@*?>a`89cu;;Cg+IrSEGmbye;rS4DRtP^JzMTZ?>e>t zE)b)_650AVOhAn?f<#3|;17csoRCTU!x;SoHEKX(5J94m7z_}7?m8gma>+fp-}8O> z{3gpM%STnJWn=4Dcg?KkWm((F^=}^-9NMvS*Yl`^tVQ#gx$>Nd)(@3QV?+WX>~1HHgec~-$~#v8_? zvb-gyXAC>#N#Zh%XeptfYg83C^CQocd(v5Q2cvGmzGJV}bVlV;w=`4+tz1^I9VZa9i-t!~khXo{|=!{2V!s9d}rI*3*rbmSHGzESmyiU~ zn}6u(@--&F74R9D0EhS0_Z-wmja*#<{09C4CqO>d)CS?c<6wC7aj+YVz_x8k0UQI@ zz+HWGKz|e2TvO5gVN)#%Z$e{2ji`fjU{ZI*(F&=eCRwm_&!Kvy7JA14eI?cd$HC9o z=_7C*{lnK#mK;E{_!9IzSBf_BE9S?s&=GJETu;2#`*Lcq5u`yk7`bnlPuzl&=sADQ z9K)+)dcx_p%=n0}5mDS?v`Spb=y-+wRs7OE2GqMJe;Mqh{CWdn@vnxc>W%W92>i9_|i2KO;=&U7IFZdU+vRf-O$ z!5*+a8bpBN#I z5T}SU#8<>^vYf0Y7m>@!X0nIeK^`I}$Z2W~wVp~-FH+;wL280JMtw@Jpo4TX9i}_! zA^H{i5PhEhmcBYnU#I_ON|`EVIkTFHF#XIf<{##DtXahA=5i2^WR0 zg>S?n@vwM8JT0CRr^P=dQJO1tNR|}XDV>zgN|&Ucq<{UZ{Xu`ff3N>_{~aVhqWlMY CWA)4c diff --git a/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ko.lproj/Localizable.strings index 5288afb318e8f3341047e977bcf581b2deeb2a84..d5b3ce0c98dbe161a17f819770f77fc3bef44314 100644 GIT binary patch delta 1472 zcmZXSZ)_7~9LJyQ{p;P8t(0xLY;({4F&1!iK>}Hp7-W#3b&l<}6_}K3`?NdOwM~1S zOqeqfBRWW^PmTZHkbo~Rwd#hXm0`95>lXRz941m16inO;Um3{MH{SI+1~K>I{ye|m z@B96Jeiti?m7NsnT`#_5D~R^gm4w1dWbm~^L$4n`GW>>po7)W)$s5Ky$vXTAU5E$B zQrt<`7{zwUiyY=U42ep7kunk$>QhDStDSvPNcMXn3WWlpM{hf{x1RQh(6Lg0pkCN+zk)SUixshA!lm^kh4m1!L z)aN+NPj%(bU{kJkgL?PKJ|woGLy9P>$sJ~M-nTwXb%sZYQoq*gmz+MN8PpZ>GxqFo z%L;5)J@2)tx+;yv#zu#E^-iR?`ZP9SSwUg-n=C*;sD#YO@-cTe@q<* zaCS9l)Gj>2mEowco^{QAlu>3U@il%EZZ*~wq4qKKqO}0g}A{j$ggf8V3ohH#K$B2jG<}VzdALW1W2V#2jpV5>&lTIpPJ_Leu<`%S}2e&3ua za|FORnAtjAt9R&NoEdn#*qN|SEcNSTmX(&txvwj?Z1KCPxV++G`7B_zJP~RGUf@kd zE7_bEo=az)Q}E_5_zpMxzEFyr*(xC)G^3=B;*X6D_#MVVJ9DuQ@f&d`Q;bcf1HC$p z$%~n{(b)ZT7Ql3N{IaaeJrS zuStG;7JHbg5nu$PAO=!k8vII71V=Oxy9oy|KtzZSi8L`y%oG0_cteSy#jwlJW(XPn zBx#Z-OGqoZnQSIsCOzbv9p2f{z5Ri+|SgQ?xrg_TwCKl!N;^8f$< delta 1429 zcmY+BUrbwN7{tsBA20??WRRK7G}AeO1+@|^Wi5hhPTP<6jM8@PDZ(al zA!^K~8Ge{JxLGph)YL{{nzBCz>R7=D!j_pB>#`+F95H&ObBQ;e)0Uw*H$A8C^FGh> zdq;~#i%!|77hbfCbX06?-W`sp(Z1LE2aX+oeeexjK<>chOp)=?Hn|T$Pgw3&VJH|; z@g2Ibrt|qg1cg;-Q35@7E0R4h7kdu4Z(nl z0xA}Wo%R1ar0hky^5M;z^qaM{TP?3xv}!m;MDhXjWH0fb1mMR zJ=p{5V)W2JQo;;-4=RsOZA*~u&;UN2bXcX zwjrG?fQzFspsbgBIP#5P!o%$2j0Pzd!qtY#GOwO|eTlMWlBJ>v&A3N$4NcxnrU6W* zr>+7XoB&^f@4#*F2l$f!1WyzY#Y8hEP0JOKpmudsJE#PsWIv-^$C@v_tFh?Gi{~q^fCH|x9Ag(iv8kwaYkH}fV4%b clI)U8ib}_%5$Uoh%}V#AzYU_H2df+4zf!OMXaE2J diff --git a/WordPress/WordPressShareExtension/nb.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nb.lproj/Localizable.strings index 5aee449c2bd2f3c103774be6abac30c728581ed5..b04fc07335e5db6f2faebfe497dd7ccc76b7783b 100644 GIT binary patch delta 1473 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 B{hR;* diff --git a/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings index 3ebd6ca1393e2f779e05ef6f8a5d2e3224b988b4..dd7c2c29fe77fb98d442a12411c28472e4c35f86 100644 GIT binary patch delta 1497 zcmY*YTZ|J`818iLo!Q-Cms@2Q&R&2By3!D0AehKyNs!Vl+u3%zmky_$({{GgGi7GF z%L)cH(L^^!HV0$ElaVKlG5TUOKup%K5AtFH@*pN+R1!dqi3!p8pl7Ca(RrE6`TzgB z{NFt2eb9SefA;8e$C91LQ={qBiLs16p3P0<`zEKRX9~v9NmwkIs9dR9vo*VpYfj^o z>-o*O`O^!}PaH5!;KPbXj<8$FMZSyF**MAYgOZ+x6=Y~z31GI6tDMC2(WkzlnM@VB z7Onu~x{ka0HWIw$(#@i6c~$a|8z6nm&YsNpSh8>k;u5lf*XmnZ+%iB10|)Obj3K}2 zV&FTV;duVkc*BG~0!a(kmKL{lPmfupDmdg|A7NiV2un5c2Qx%gqGwJT+PVZVU0C+R zPS9-F4m6ReXW$%~8bftwt~JNdHjKB=Kq9Ptg5JxPjr0^c?dv*KZfIJYcWW4BMi!Yk z4tg;x+9)8{LTJy(kC>JZ(v0&TgCf9GM#t6QFz%^(|&2$~Pv11VTXCRdq8`?p#+|bg;o5&SDJ34g~d&u=eqw~7E0AK}L zRBl(xp;b4tt(^)BA)^HoSH@HjOr`$646Zbp!Cm-Pl`ThI_{vG~({tEvEe~Z7({~(-; z2!hZn><}h}itv(fQ@AZE;x2JSOp9m5kHpW#`{LhHhXkZ;Qck)qN9C9tm$R}V&&wC( z%kr1<4f(G8TdXSNWLS^{)DB Q$L@~3k?@K#B-6R^A2p=!F8}}l delta 1493 zcmY+DTWl0%6vub&Gdo+I7AaL)__`ECgvzRcNQ|T`g$kwA-Ps$x4BzgY?oM|)v&_tH zDPV{X@aVdeDayhNLJ6~3&qljsp*+n<0Kv`S4^0z)~xCIy1g*=nBz81 zd4AArEuLOFLweb5WQ(v-TbIQxK&FT10@QH*fL!PMc1}I*_}~R-+;ZxL3}6$v&P=w3 zJC3S87|*e=aaMa6X;SA9L~ zXlOkXF2XHr*-@l#1>loo-2J_?83>x56Xu3`@@ec;z$U-3eN^*i@)IwS33h0IPPYOZ z3I{EJ!Sem7T*JfxM1l?N-gdW6Z!ir_n{1YC%dbTx=`j09ib3QCHz;*}yd?BTr9Jkn zpik1i%P(&&7+POAG@vE7=^;OGy(Lrw4~B<_XWO!n--e>=OARQdse~#G(kI|FMYACn z%?@{`-$^OVSvHV9zPWiS0}C!CA5zl~;7YwTYFYsbTkDg!Np!h?XEtCb_9NVwxzR zTcHc-pa|Q9DTe|aYv4-|QXQbsflimL@?Q|ng3Pq))Q%JaqE%LGSNDrOF zaxiimzKyYi!jeyP^^@<^4ZSmwUo5BPQld^_9Kfe>WVf_FUTT{Qz$53R$Gh6jaxh*n zv`u7}xM{F(yj{@HdJh9Qs0=>EQ!j_RYCCCB**egpgV(Ggn&{C8j{*xyBaYLw!-nK5 zc`w-}r;?$Oz%Gu=l|86~GgAPsj_lCOWozEmdSWSZO->R+>EjG7NzO}2l8PTyPeimT zQK@&-2T4H=;-$_T)xAU9y`MVZAb^c(7I6*Cq1`JcTM#= z7Bm-Qa_nO4z1WwrYq49g+f0m+nO=pJZ`vo_`9pdWT1@0B@GIy1GoBNdC%cuD=zG<)8c9IdGV6?n)rseB7P>`kyvSq^ssbLs!Hdi z3(`l@E$O!OkF3g%%12~ZUXeeSe^pK@^U7uA17%hDTKPV{F8+tgsFK>N4ye1;wCbxb gsIRK4>Nn~Q_0L340^*5Ni4PO2i66VtC}I(owkT4zr90d0Qt0|R^LA(G?94Fp zhO#|*FfkE1f$^e|#Kfovk3^#fg9#TCFaEi3Fvgfjq9+c}F;& z@BM!7_xpZ+-lJx(hZtdji&=JdSkZo(RwD|!R`UR-CJa@_L$<}J#gxNDg?(FwY~R$Z9SjGu zaXGVCAr8;tQsy>5tMg^95>Zv#w;0xJ>S4=fSm#G}s9QHY&#;4YHN~$}%^*Ai(+v-M z2BQ#Dr?>!jIH%PO3mA3@$c|NFVO1vRGnkQtM!0mMQJ#+G)$|+H(5nq)6C76I3Osjm>L54YJmP7Pa$?N2i9aMU}Ie)@O-(3r!3E3cSy9J4VQ%Dvp~CgyjmNMQaRh|QKM9H`O+1>>}>irm$vdlWJUyZ{n12S(LoySUkct*i12Oo`gP~hs=)t((?aFspZD_>hW1$fn zfbwlV4F~)ePFzJ}NCVXtkT1j^b{}5OKbvNByZdUW2=7E+7+!AYJ(YZb&fCFnbCz#% z$5=wH^@>`?VkuGrn0(=IXP-q0bOBvPpQG#OXCW#ig#qD&P!Z~aFT5jM6RrzC2!BUX zk@bjcl$Q+YE$Nc*x@ zDg7B2;yv+vd@5dxUyQ#S|0w=#{6_q@#EQfliT4v9Cca91m-sy?CD$bTk_VGYawh2| xFD0*})}{JVhf-?lY-%C(Ug~OkWx6Y!N$*J?NvmlK1)qozUXkCtHZSSd{{hjw5NH4Z literal 3214 zcmd5;ON`r86n##dIG>if{}27VPTT2+kk0U#mI9@jA5%J=35hdlns&^a_)YANW4reA zOjCr|AT}eh1F7w@m0$&`*j2EARxDT|Hf;DTpbI2eP$2{?xX(`0bULL}{2E2F9Y5c9 z?m6e4c*-#ikM;C?B_9$ZQ85;m63JA0$1Uoj_}rmf|G;2uNE%K)pB`Cy_=O{*N5{tV zFBXbQX`+0ravWDroZLRyt-iFIOw}|xUDu6MGiG07zhyh8U5_17LA_G~djxciIs*Wh`R^^q!clmyI;O5`yAwrf(i&6cT_uZ5nG`b{`;KYD(%ud{ znE>mwVN$Qci{UZSpsKufk%u^ZMIm)h;UHCc#h8uBEHTWWyk{`#-PxIqJj8JKWPvi@ zwKxb~W@3O?HEOEz>P{>zd{ny!jigRFjjFtL!1hhe+R1Rx7XxfrtPqE9<5K1}vn9n~ zCM^#dUc>ObYRSQ%|SSInUn$9ue zvh8YlmwGTij*|g}>(~goZ{Nt)>;@*5h8tvtV$Tn8g@h6C1XSen2DgBa3@-}L17cDq zhLx=rXu}3-x$BjFQk$s^X$Hfb3ndSt{F!F3CUoHPVajScAG*N*z{81x0Sye;7NZul zykikkZ}}$!v&en2VDMX(Xbb>ij87No^QNS`Wi=vWzU-(GVf^u$fTx5lgO`BGW8 zZO6-C&u&n#G2oj6-te4j^HUwTx#_4ZhWQAL+}1Dy$~UJd2HEC%oVt}GVc;6%0Snt{lt(t213&zPSanEiGXE5w17lAV z8H_r>y}L^PN7zDXdYcgpQ5kP59o$~goLn0*d&Yy1;G?f3$wz!a7lPyxFUQe{1Vw1>5A-$ z^hHJ@)yT_{3z3VFPolZ#aC9d6di2fc`RK*yJJFBDed2&PA{NB5cvgHvydYi`zYwpB z--|!T*2T8Q`eFxT#n^1@mDu^%+p#P074ePn{&+QhI{s>WK7KBKE&gTv+xV~2N~ufQ zE#;)TG%vj+U6kIFK9W9{ZX{MEHYak44-(%beov;8tCM?^my(y0A11FQuP1*?B~m@9 o;gph^OwFavrQS_lO?{X8F})T% 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 delta 1452 zcmb7^U1%It7>4J6W_Kob6EUtfo1SD7sahgMXleYZ$(lB?X-sz~`_pZ*IoUax9W$BP zoH@HTjim)eg@SZ*RIn9q8vMBt#Ea6RpjLa)8$mDB8!=ZR(p-rZ1og}&HdKx1^?v7j z-|u~&+0%*BiL*!g)q|1YktYs~9v*vg{75=uPGocW!qMWf$>LOLx(CjbEi`LaoTuj8 zdGA5Lx_|>xt3Q2w@x&7SUA>1EjP0@8Gq8?;h2bm#RX-qfRf_K_j(7pW1dKY~TrQ2E z1$=KZQ-Rp=Y=AKKaW;coR3@d^&Sf=0KUDNoAshx{a2}OncTRY4#zlbmpjLH#_I`JB zxoJW>Fhj*stZmE(unrx!IT<(v1@y3ZSNl{Nks9{Gx1pbG3VLPa((6K;dEP<4l~g(= z^z5H79pa+g<4!Q|1VM44YC(dUhD)(+>uMX?$STER z7w(wlOzt{IxEkkjes09}e9Wf4R_{&zcW^)?-^{KI@g_Pa8?Pp*rKEaW|I`Lmh>7D? zU}1v|2j(-#t~spGCLoRIue2EH>dt0;mq0ujq5&}oU)laFH_okcHs^322bbk!l7Tz` z{2786jo}CL&xG{q{_UHo)3yu97gfQcO<>J(o$#7+7 zSO|E2-RCs!4EG*)jr)#U<9^~fUgO*O1V7BDd6!?{>--shg@2#F%zwfEB6JAd!hOOX zVOS^%OTu~Kf^bzF5D$oR;`8Dw;yLkx__p|ov{y<=!%|wxNhhS2r1R1h=^N>L=||~j zIWBjdlK04u${D#XpOnwZZ^@UHHl;%uREo-i^18C3e5QP<{HE?u_o*rMkUFg{sxPVy z^&RzdEvuEaIc-^6(JpFVX*VKVBpG=lawRH7`7%@hIMDNTlL}wn(y));0 z-}%0CmO7U@&uIMM&Rs*vghY+&GgjVzCSyyJH(n&vE$gz{o6or%MJU7OyW+%pWGT~X4chZ zM>0bP`gO~|rs`Je7Uo;lP+--zHXq1f&vz`sIQuRxwtru`X%j#u3k-PAmbPhM7bV9%Hiym5(#UHVPaW=c4>9Z%}M>E-3xDo>D7q9)Lcv3@Ff%64X;m9K~6 zk=EpP;ueYPj%Klm4G)%Be?wlb3xwTMT(ytlrEOI&>%4eHnRUEqS=4fSd|MjOztp(b18LSuR z9N{G2+%%#Q&!p?}zeZ_NFlVTdTj8IYJ@N5A%Qx{Xl?`dB4-U!`iAgk!bTowsvKST` zQ+fDF98f9FfMe?pm5ixVj;9}{m+{a(gP!2y)NbZsXi5#jCTS&{mbzG5?tvCzBV37h zte~UF;4-mn)znp5O$^(F8F3vn3H#yiWHV*`99fjNglt6McI>H(zs5xdjM&ClE~}g6 zfa1Yq2Yf4SgD<2yacqEMOk)qjqSy_+u?9-l2tSK0@JF-`_9eUKNQh`qOa~dLCwQrE zeFfhLm!aEt2$emJG@9We4`CW-8Fp;2STc!0=yFt+&-^spk6klDT8l?ji?3UmTZe0B4!b# zk&lXSMqB|9pMWdETKGU-4KF75!U>@kb}EgltUiqT={%{%NMoo}r9NZ0D)$TFmiTZ=*gA(|XdazKm(eo1!ElVo^fFH} zd8Wwt%qz?iv&>v$?nL5|hRBx4U?d%JBEPUa8)qBXN7xPQW_C9_$v(qA&%VUI&0b(H zv7fS6*&jKPQ@B;!3*0&GeQt^Sj=RO(<`LhfZ{pp!RdclFLd~U`>(T>KxAdrF zNHfv}>6-L|bSEJt>Jw`d>l05T-b|cNe3V>H-c2>6dQ+!TZ>8Q#eI|Fxo8;e>mC9x% eqwH0lRi0B`S8gcZt0;UTOeLbZYOIFZ_J098gU4zB delta 1518 zcmY*XYiJx*7`=BMyEEC>os=fKHjhctq@`_wso3HJ>vo$OOW>x#X;J@JECrQTP%HQZ!Qu}^5DNtfVnGofXwf^9jm2Gd@7%fH zch33FxmO0R44l&VhsMTNO8tq^J8Z}G8b^*UE**Q~_>;7a8=!sSCbS`s8$_+zc-B?x zmgCZELUPCSgQi1lR~^^QL&Y4yRn;;d&(C37H)|@fZOfj_6N6OTGTKU`uzTe%IaBhB z)hu2hWz=3U@j-*AuBCc)!(#oz0l22&nxpxQWz?FrRNTP25mY+5OC0(zpK6=Q5!bU# zzt`6@nZag-81yGD$uxJNdJSYvB)lWG~E z3GbkxJ97af8|H303{|?y_k^1V&x;)aw9Oq8wF$<%@&YCHjwpb@q8785|inJ^_%B*QG1hbR%>31*}W_5$mq~LW==g5M^ocCSR z_TtK+(nwWzRi9d$z%}}T(7Ba8`&!FL*-zZcoNs>M6XQRS(<^go#xh-Ex>SbShW{5N zt`WcUzsyGb%<_fY_+#TN4F<#@s0Vwyrqb1_>atW=AWbWL8sB-p3vvd9_!$*RXC{Xpnv@?WS+aeRKeAq^rt3^kiZy{RQ>kKMyiM z2QDC7%Krx{r~`HCF^`P~L!>w3shy0>-;yPj5$P4n@C-IEvpPo_ zOuK5}^@C#C^bEi4NMtwtS}N0<^5H~q{k*9haq7%3LdWFo$uinlFxR_OTyZ^Y=u6n8 zyP|_kQ7==pkB-JlEv3NeijO&*n7(MX$S_h&ugS2`KvVf3eJPZt7o;u2b3g+aIJd?x zHE)_ubWi{`SO_M!*pmkg3w6;~l5I*RFM!EF>c9dzJs;f?nFSMU zUt=+t^z+2bV7ls6g6lQt**derWD!}wch4sz|4$KjnG3E-%XG1H_q0F0~3)bRb z#mKcEicqtd&nc#%Oc@1pVq_|znN$huxykvtM|=k&dOWT4899^YOtn{wPr{#UJzTTR z9*#+stx6)VCCw63DNbb!EkP4%RGX#~5t=oo%X4Bag#`_bxsSKm%{bAI_HkzB8W0Jg+n(?&NO+hzl z0rymOW{QsOph>NmF=LW%S;vA*VF`%X*N2f)Mt%m?@|7@aTU)V1FJ$#XVKhoJG;YEo zR}94@zZLA?#LM;Jyg@_JrZqiNa#<1`x7t$%wJe1Twz~P7D}>Qf9WYAj=P$2@tNiHD z#O_>y=FL*k<7$3J(Nda@alPe+9=17JzPbPQvn;Jz*~cPOOW-}iF}`}uh^m_zd|m!$ z6hYQK!#h%tT?dz39q^ea0N=`$aMQDeeH6~i4e*nz3VyZwy=k(R^pbAULbj1MvJ)=4 z;+!EhB5M$Idjp8>)u2fOxVH)Sq87)mGb2od2{Vr&Ycp~~qz5X+b+FM}1)GH-_}tL| zx14qGi8th?q#99MEF^R|XW^v#{!7jdzmBq9r2nCCFA2j^MK#34EvqP5f$$C-8=_8$WD%@4jkH+70G~s7)$<+?`Dw+b5B!Ku$II9nZ+DQx3Z2e%tyUrdbwHRwV z{4PD=OA!STt%z&0P=>SuBsl=LC4X%d(zl@@>!=&o$8jK9qQplAkbwsuyds8Jcu!al zHE1O7Xabufz;1+~Pzhb`0k|i0c~hhg`>?FHS#0bh1t)}!(C9k@o9sb&-&Y5mt5Hsq z8a(gBWLD=E@;5nDpDe}LjypXhJV}BjBfG3}EeN9^xCP#jd*pK3E|js1c9C|p)pMM2 zFmucT^AU56`Hm&5lWk@9vN1Nx7TI&`B72Sfn*Gb>vaPgr+IHIpZF$?z9M8G9m0SxK z;@Y`AT#|d9JI%e!z0JMLeaJ0wUvYPclgOlsoFNy;6|zXaC-=w$p5g2GPJV%Zi@(TU zg?`z(_rS;M_ iDJ)%KYyJUrIhx=A delta 1457 zcmY*WZ)_7~7{9x|*Z*DL>liDrb=QqC++btQ0kXk1>Xzxs7~OS$D6AgsyY^Vu8|`&6 z20=ckQ6exOGy&qjVALov>Wm*q{GcXAAn}8K@`D8Y;GduffvAZw@wu+kn9JqveV^y~ z{d?{<+-*3cYp+qZur{1q*jL16nsjm z*WKtz-x3)@d8OW*da7 zc7Me|;wPPCHz$)GdPrAYwqIBOk>R?f-x9GGIev#I| zZMO?1+)jAawuf&iN_^f%`3%L!r& zmBZ`Shv5%oBZ3zCPr4^Xa~w|*Xe3_(p8Ux-o+n0?L1s_Rl69e z#`+d~AA+ykO=vHOa+l5bkxdx4ACh!8_&g18&9Mc=EeBr?z23@=8W-gvT$tNvV&G&u z>6t3(ZNozdp-~0bY(6@zFDdszm9+-Wd75CSrw!j(jOnhbX4vV)Qx8{BQ~KF{%XekEVc_wx}x!yn>j`IGz`{33su z|C;|(s1j<0Mq#tiFT{j-;ev2c_`=d->9b5(p0>PbId8dWdE4?C3J#He5+S4H2suSA zkk84tfKb76{2D~lav))g<_h~!rr*V3TUZM9TkJKrhmR^y*lkWKHeIIfhd{Z9y2XykH A=Kufz diff --git a/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sk.lproj/Localizable.strings index bda0d020b96af0dfd5c048175c868157387b96c2..e6f3a20a049c196936fe096f62e37254fa2329cb 100644 GIT binary patch delta 1550 zcmZuvU2GIp6ux(7XLn~iyED_;3dquFDMdu8HC7a=hTnv=F5B);|A6Io=kD%wXJ^)( z*}@k2i4Q*5fHW6kVq#*__)s(^3Nf0%gP7n0i3*}G5|yYA#1KtL2#Old>@Ee3_hIgw znRCwfbIyGCeE0Fu{%~|>Y-l*1NTxvh7r+ z_vQCjXAZn{aCDQVsSe56Y&*A#y}?VY$Sq}Yeq|sLBRQIuS1}d0vvb}6j=)=_Yj-?P z%DS0TX}N5b7o%-%G!m;!8oHflx4fM!g4edhlf#31wh%Kz4b`sK&CRxVLSxl3H|!av zPNi(Bj-{3?+nGp~G~!ToP&W&6v)#?RhV@Kd-C~&zHJ!v}k}0s;xQkuz9N3$dTYFWl zOtMa`QmvE>i)d6!#K|SXe+H@5Cj8@?qH)e;@q zO0%S5IBB`Lf#ar>zy!z`-2#$xR=LVL_*Qnn(-GdP+eO{BQ*mn0jKj`zl_%43i!1D| z;)Z?DFKVe|n&?K2Wes%9bx)0wB6}y;HTS~$ zuBs$QbWkhR4O%oaRUh2__B44#klJHP;}sfC&3FOxYbF-V7Ya zHJuv7)Tx@uS0}4%O6q9S(Kwn$6bdMsf)X85OYUZW3q4F06?RpWa34f5_NIRsv&7Y~ zg8qgQ_F7;Kds$e+R`@2=&B#J|L;(6PplP8=WJ8qKfK3VggejAS!s#!99Of)p0kWN; zEJ`8+S@@8P$^Hm+urp%c5{ko6XJCSEWP#c}wOcDfn{$0GO7R+^vI$Vssd|his|X= zqJrE0Gm*QhR|lS7YM>~<&4AA7np(}Z8sZ9jH@J#@=6eEwcf!!@#ZkB#W8o3D&-V~} zS~<7Y0K7%@_xFG~#jHZbR%fgdDO9E$$`*vx&-~9OWwCfqwNYCX3P#)j%=)r`c}QiK zqJB)lj-*Vr2-!b33@2dYX|8xF%|E)kEuqMzS zm<`+(+J$X`DV!933kt#J;K8ONO>Z}S(DaoU5L-l591tDxeerYgdT2>#U1)PC8G0pj zDfC_Fm++rbvos`4Nk^qK(kIdtd9A!v;gsb{kCIgKN<}%QTvRS2v;x8LVD|~HnTE+r delta 1472 zcmZ8ge{2&~9DnbAU%B?K!$CJ!c8qPz0fPmdi6~?aa0-^vUfca()LZ-7-g>($ch^BT z0plP3LqO&e6XDMpki?h}Of>wVL4$wzhaw>+CPpMNF{o1$#VGiP@46!D{qyd<_x*l; zeeV{!7rIZ5Y>w@T?@c7NR63Cv866wnH?cqaoIcr^%cDZEWK5OKY0Iu`KH#`sb>`rq z+U(r(hjF{uj@#G{WqDGcL2BO73!YlBT@T-6BJ0PWwp`?R>Tbg-XA(%ytF|?fEa{G6 z6;6R7y6UeJNmf!2^Ne}5(4w-n7iV)4+I7W4DOKFB@qRe)~ zoi`-&8 z7AKtZuXbg!O2jve)S6v&RM)eenp#2*>g(&^5eY?7q{Yx763fa| z-8Z`Dd_75^V3-I;m}>iY0!`Z_bw4rfNj+B{-H|su)u-0tdJ$h{qCMo@*P2zrJCTYGg2< zS3NQjGK@wPK8>HcU-C8`oxiyzoL&-}RazUC=FfJ7?`PUz!;iBgfl-Zwq!)F=!l%Ru zyg_Nf*Tb9fart4*1ZiLb8y*1$L_h^L$b&M_!K?}5zySyb!6NX0Uca=+g-S*_mN$^8 zTLw~drP^ezKrm`xl9ZD&TX_Tz@+sWPH{-o>3vDY=vhTywg49|7V}M`~%rYQdsr$^h zN#2HcN$c=a;@Y5J=71{HeNFg%k8M3_cyx^A*FzmiQ3f6z;;Rv;p=I_&A~I z#5cGt?ft}q3+@m#HgF6AGy{vUR#mD9ulBSTAVue z|3b}!B&dLIiK`1zR4$U;y+V>XzAk6*EomeEMQp)ad4&H8MQ}i9$Dc}3*xk^#3b%1l zoC$8kkzg|-hxkX&CCD&Q{DRjwksbTB{PfL<*KXB+7-QAo$?S6z%g(E zd;-1!KY`yMfC5|rqi`4|pa~Da8F&o70WZQ!@EZJsYNI-+UTT0ErpBo`>I}6&eM}G1 zJLxk05`Bt3O)t=I(jPL9GDFNTlVCE;EOUZ6!+gYi$$ZEB!2Hf0jj*fP0d^~!WM|mJ z>}mEKdx>k}+PH(DdPlkyyc2pb)EOEK#Y5*pUxa>^HF-)tCZCmW kD~d9>Nl7bZ<$dMza45VcJP^JO>JJ5%R&b=THkKy-Z=3+N*8l(j diff --git a/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sq.lproj/Localizable.strings index 8682cb7ea38c15db6b205334c1088a323bf60c3c..1412c2e1fea071c7919f85393c5d6c6de4492d92 100644 GIT binary patch delta 1330 zcmY*XTTC2P7~a{r?Jj$n=~^mjSEejbD~1-4G;)yug+dAoEW_?1*!933b_aH6wlilC zq!gcQBAQ74HkxXTO&`=I8jXojQ^i2!#h03RX=046#H2=T9~v7?6XV&7jXuqsbH4xo zzwi6MjrxuHmlBMBJyBO_5qsh3#ieJKPpzC@O?0JF3PEWL`q(-+&j%pKR>2q_cBvyM zjgwLxC`>hc%DI>j{R`DTIhH}Drl%EbnudAr)LS^kN9^gWW@X?GR|6rYAviW39X!#4 z^ckF0tWw?jT6GO=tQdOhi6|zvsVl@#@`gnw$MY#furjFW^XqH%yQZSrOh)N3bb@uF zcB7ej_>-xHZRhe+NojYJk}}aODOM_WK5L*9PN`#P0Z&G8&R8h*NlJUh%Wq0k5&JOx z&T3h#M(`q0RjNEGNoC%pW|SGMF;#k@R!7rWTp(DQQ0_6&o6?9fLODM%Nas>F8XFsv zlH7;MOs3$Cr4ek=J5^oEfLi|i~(O1sK)3XnWCfg%z;RC3xdmta4?8{YNz` zr&(5P3}^8SflbzKNlL+juzwYo?W6r7hJqH5mMyX@4xK2tr$kT=!$oI!{n~v(tY`;d*j5!K?h(0|IikF9KNoEbHxeRTFGu}4%!8IDBjE|EH&e#f# zQz2Sf4lcP5QtX3p&D92Mjz?`Y zho}0rlZ7m$GILmmtKJSNK7uS8TUxxgtmlUN5X`y4@SE5LkN6M3XMqsB;}7%dVAhy} zjC9zYI9}Sa2AxuYMlHN59icj9&qP1%OcRFZU{tL7V2_VyU?gw|I$RC#l^CLVNB$PL z=?TJ?5N6eW4W|6VUaz(ow#05Cs^v{%fjUi-F|O!oWX{{D99bE zxjC7;pL>zJ$bH0ZazAsoxxaV^ALiTnv-}(UCH^wM#ed6x&+iDU4nYw12@S$?!Uf@` z*dca{Z;E$ZO)k^51xUYH`kLoczi=Lf|PbzLz{NZ(aJH5xe!`@Tg3*Mi6 zZeOi$z!&jN`cC`K_}=r~_4EFHfpB0Xuo8GBuoL)O5~K<#A=z@Pd`updXJuVJC%-0d N$k(0n4X6$({{R%surmMv delta 1372 zcmY+CU2GIp7>3XM?anN-vome_C;b^(T7HB=Az%b!1GP;Fr7YWNch_P!L-(*V?d;4l zbEZF|hS z2Ub;*F0%`I7#)7$*2GtSoE4g@(ms1qFw)d_{?*QGL2Znd#`>%m`g%Y-e^$4!kGs3O zCzfOB!7>!Xn62PkAB|9=L&h*ZPSG@sR(Hq$Y`=+8IBGi>8u_qoJcG*~B_B~U_L`H^ z`Tn9!^vK#snzQPzU04PY{9MewVfsQ=-NJ!$EEo=dPxKw>ub{I5u}grl4P zcGe$tHZqzSdU}YqL4~LUgiL#DZcnkO6WR(bWCcZJ6OoTbKHysBZ+B>8%V7)ZBP%P- zztgV$$8^OFo)B_U-k^}ol4+k!7?4xj;GVVv?xZ@BhX+F9+H~KdHHG0#tpgs$cQ;I< zG+IJFI)O@P3fZWLEaV~^7DXH8QY~;%?p3n=#Gb~)9L5nUC!=tL&uxKp4tSz#kK*F4#Dxnv^GW`OXxWHL26E4C7y!o(grxB)xkk|3)2PN zvF&g(z8XGG?n{jA^+;7>Ehy>^SWMNzoy2$Xv8Wll43Eaf;jP#~*eyNYWDHTW-2Ua( z?QGf%LLAth+Ct5npjBRTxmk%b^@j)TV^Pu3;%@H15#Ou?7J(n-b(}F^f}|dVwaL!b zG8&>NT#8@`=?K#=jZ74v5c!_kvy!n1+9Uz)B{k?sZGr7#FG$H2W+VOE2MeNBGcjTj zk7CBl$UL=9m|IF?KC>EA~_D_jrB$P~3`t z9ltMb7I%odMN521ydYi@Z%WRt7|rf3_qbWI(!)#`r( Dc>1*? diff --git a/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings b/WordPress/WordPressShareExtension/sv.lproj/Localizable.strings index 9a352f8ec0455a29b8f9523ac7abc519ac758b20..39c066c14f1f349d7fc36710779c00c9ee107f8e 100644 GIT binary patch delta 1384 zcmY*XU2GIp6uz_bvoqWMnc21!gu1h|v^K@UnlvT|G1!)dP;0w8yKSvyxw~_BJMQev zW@fffu~vOBp^ZQFV2mXpMxqHyi25KH@ueobXowHui!U1B!T%@*C7S5nABn!q+;i`D z&iTIYoGZOodSBAkQhgnc>s1$y9$S3k_>)UdEl=;)b=AW~7Y?vHV4aUZncV^@zDv|5 zaFJx?9iTEX_?Q!!PI~I>o=eSR$FPbjaU9#Z6OGiOsflXNG~9W(#chX9roT0nPL3TO z!d9M`s@uq0Ta9g}g;m?yb2v%7s$;31tyXN;n@v}A>=AX$uu5yIJ<-RKMt)u$vMrBT zp7s#Vm*5Yk8!r2fAIZw?2~~G+!K-Jg)rx6jo#p{H)2Q;SEH`;Kicw~;%51S}xfafuq(-pOp;=>QL^nKjf^vRzjP|8&3=9lp zW#s_z^7A!sT*D(Sz09jsX;2#1d5m*qLPcYvj}m%9gh3r;bFrq z8?Kv45tHOS*kG%JS-G_)>|e!A`)Iv!Tg405FzYPqO=oKEspGgz;Eb55v%|!+s9|n_m@{?%^2EXLc?2^F*d3XKqF?FI=$`F4+^DPSjRaf12Vz1W zY;Ng;VX+U+N-?-wI0RgzPny;Y)6C%#hOl%39&Gs=JaIIZPF1jjO{5`=RFp$Da*#() zCc2I+RDy75w4I=F8oBfy&y09RiFi~9+?EERON`U)Y>14*d^jGM8N<4c>oTu~cX27Y z3~)jokfskcW^TZ=oPZYt={AB=v|_DGQAZhiFwx_X4*dcvk^AAgf1fgs#u_9j1fw#t z;HSVOToAg%DGjSR+wtIq@F*BU4Bk+F-*u3}3Y34buB6GogbtuvRFX@-B`V9H&jeYv zycv{GE1VWP{h5Y^a8&8*$fQa}zJv?)&Mw7Q&<$Jeq1df(DyYCAMfGQr)tqCL;5i|& zj6}4GPNEOdW%LchF%pwtCYdZ#W~$7q%m#Crxyt?U?M zJIL-~A7%^e)9ecS3VW74&wjvu%6`Fq%SoKVZRVcm&TtpG4ekbale^6$zKh?>pX6WX z-{vpzpYUJuU-8$3Wh4l~Hep0KCtMV6`X~Hp|NCOQ7#I7+74c{BH;I)p(lgR&>H9!i zpfm7R%bP7fwEP-u2_}Pc!D4Vd_)$m*^@b9mBOyIh4!s;Y75Xe35AO^QMtUN1k@d(s nk-y}y9Fu!xOI}r;RbErxRjw)DMO&kHMSG(QzUUI1Z&m*R2Fb9C delta 1435 zcmY+CU2GIp6vyv;?`-#Dc1zkS#ZFu72b9*DfDr`(rM1M;!0zmJYlY3-o!i}Ur!(u! zY@r}lUob#K%h8ZPBpM7#G$d*a2A|M`L`~2beb5IY35F<KF<07 z|L1q^<=)G^FKbJgzWBJ~dbRmIdl&ZYf9Almi_pUMK)0}5X-?yLqUsKw_0+2EdT^C* z8<^Q*vXi zV5>+>_=RnwnLFSLFTo_ca#Kb#Jd;dqHQYJFb!ReF9eX4QoLAy?w}v;-^NO;gRxk~> z97xh(*26HP!cSbM)cA2sXb+?vcE6zQpuS75+&`69+Weu3x?tBF)%9#=K`j%93=R(N zuE$c{IuuP?sFK_WjZmUR+9cUa(X?iQ*~!1t4^RrThDo4}uXW6%$ec~d`_!~8xLBDU z)eTSet+gGv1Q+=gee~JSnpYBI#4DD4_yH&C|76N2memp4@`&Yu%&Z#z-y(5|_?>rm zHtO#zok>kRF+sOMg{TD7n6CSBn{{3F=vL@L8Yp}lpS)jkj$5&GwL6imhs`VZHbz=H z)0Oy-X~PX36>{NejY7gDY*=tg-VT=10gK5Y_%q)9a0P8c7MeviDj|$iWTI>Iy)ug? z=z~i?RMC$!TZw7W1nw*`b(Ez)O!O2S4v}T$pp4ej9*pLYWh*N|4fldAb}G}Oo>3v5 zN1RN$iX9BQ;v3*Zq#JT_zmnZNUvL&YTj@f>)TIWuq-MC-w3@T&>3u`)haq}(gkMNz zQ?-Iabx<04LADY+FL%KEiD6pW2GwXQd>BoJbwp@}^|tar!#@d&QV)C)&4#A~hDAaX zyc6FEXTpDnv+0UatYBMtuu;7MJ`x{UwYwfl)$8-7=>f_;UOztuL6ZRy57D+Rcurgn z{gHlH8@ttIA}wH7pcEaN@-D@kW|(FHS1^dtPC-i>I)+~5F&K^x!40{e4zLDZ4DE!o zQWNyW*CsW37}ifuU|q)!-L$O?HsTG)KBQS>AQRff)$ke>(4&Kaz?ac&ut`cZO=(yy z*bYV7L(>gFHmOEt>H`s94Sr7a!x81q;uyM3W4iQSp`r#|ypJw~j-dC@=jaD?6aC5{ zCd9NbE0}R6#hA>~%sg|1d6W5oxxjqQ{KmGkUF<4$9Xrm>u>0AQ>}mEAx0xH`D%?Tt zRqh0LntPl3gnx)1;m7$DKgI9kkMbw^Px->#H{vCLfni$!FzD@}2NN z_@(f*@Xe-8k&Thj$h(p2k=v2qqg*r=&BVrH`B*u2D0VdVZJdvV1p(t=dmQo6fcN-68@&fT4{voqt& z-9lqbd_;{8CKw-h(U=%D#+aBGjl>v?yl7%H=nD@pXsOz?tan#_bFhCPe(3O{M+P5z91RVR z934G2md)kI3&$r;OrD%NReWM&C+V6lXDoZn^hA}hk#G#Zi3j}4s)nt{Dw@1oj~C9~9TmZRIu_Ar6p`Rbus zY+L(IjZs!}E#73l^<>`B2%~t&ux9QM09Nw=C&!GEj{9wkQH$jck`g?(zTd8yn$^Xy zFB_LLjdR4|ySS9ObD-6k39b?;mF$|uux3*aTQ! z9`+1IA*N1o7LIU6s~Q$C>=KY2mxzT+IFkn#qdlvijb9i35VdisSttUj@)#a2I0x zbFem4QkbNGxWa(p@y?HDsYy$)gF9+c0u3}t%>tRBo48=R+NeuCV99a1LE#EEe4QFM z(j~i!iKXExnW5OL1tS?qOMnT8$kBmYP*yh&3eUr^k_s^_(5Knwww_&`Qz&P|#$=Wl zrf&*XT>x?_4MSR zb8+=ezl73(1LBmb&X-vcgPMk4A2VOr4uTJt}3>oR1|(P}}vkywFpTH(DD z_!7|&H`*KD_5tgGzfrWp#}Mi^fXzX)9aI+44tPU5!ZY-@V}D08p8;${2t5F(hrl=e zeR$htbP#QYY?se7f2+?gFz>+H7hHr4|AC{I{Q~>^=7{&YpBpGy_lb~}cWLa?oP~SQ z&~?<0wg7#h(iVDo7{I!Tm%|L**2K#IRWIrS>ITua#l2ie2rmfdgpY(v!Vh9pRK#BK zm{=66VoiKSyeM80zZL(8BqJ*$`y+#qk%$}lMT$vDX{FR7?UMFM!%|s#R(f7~S$a!) zSNcHuLb@zniz?Bk=&I<8(buCNMlVKxj{X+?Jto9DV*6v~Vz0*Dj$Md-7W*!CCH7NX zh{xk?@l1Rq{#^W>_~rO@IU=iayPT0t`Dytz`91l9{GFO zk(E|uhcc{a$}`GK${WhZ$`$2maw_R1&nC|&KS_R>{5p9(wIoGTv#GPG^QkvepQpYN R{8vN_{=)xbH@#9<{{lxv0(AfY literal 3316 zcmd5EO<7`789&d>H?3bYUk{o0bkXqr(9g|UsbO=0a;+AeV#N&)jV{t|n2Y-2lx zGNIjeK|)-10g1zyv|XoNCXP%(+AfoJn>LBvHfds~2~9ig{p^yarQ=7_25Fn5@#pt_ z-sgGVN6Nfy=&rYK-#uxF4~2zDRE)(F$(LS68>Edbn>KH0ZQHsnwY`1E&JNt!)x9g- zvwP1gdwVl|*;n`V?;kjDaPZLK*N(jY#+ygq8X6wSjYf`%$K!90jlc8m#EHqN>G$%5 zDY-aPIyrl4?(~_n%C7V|GGA6{rc%}P_ZJ3?+Ms#Zvd=rNS07TO?gCk)IBlrd)-2C* zF@ayKI;7%Z+j2c@nMVw+z!7ed(>ar?a+tH>zbZ#@k0NdIZ(n`<%n7RM1W(zXZkcXz z*tU(OxpC8_j)y07bD@-{M1{I%3L0^Avx=$XSk6p=8no;w(w?G8<_(HH3)gMKf}{OS zcrrfLif&MMmKDR3q(&8~ZJnDKd|4({S7sm;sb$i_WRd8GU*6R{>OMM|#krh^d(P&m zS9eSXf|Z%c5wlDUMcUGgWf>n;pFkt2Qbwa9b>^(Pp_;or?9b%^wk(#3&DuEBbC$A2 zS@#TD8r9vJ?z(eDTO}U#SyQA9{edC@E3B(DU7rUpX$_?mX~#N5tjNQz`<&9XtoCEZ zX=%BjB4J-x=*V2L$`p-hF3wtY2a|Hys+%5GE$U*^^03AXWmAU@00wB%vF7^%%6XdZ zVkQ7guTflpcX(K>=_c%jLp;mDWn$v8MoeJN)2Q2A(9O!zAc-P%turbUtH~mYw3V5R z;w1*vh004lPybc58 zEYqVVjGSJF)D{0^U>BKB)-3+AB^nETj4gDbn4dT`0s9NxppPPTtW&y~)sw@jirG%U zsxJGG0cA(v{?aI|kh%d7S6zhGesSC+RWn|eY<^nI1oSCVs_A6VzH#Ps;E9KTSJtcH z`C>`4EZfas*Q!ylG2puZyx|Lu#olVb%|l0JG3b$sZ^4^N4o?Ko0n* zMKl8YkVcyW5uP0MYa%?z_cb3rb*|4t=hO?C>RgPw!hOMg%l*v#&i%o2e2j19ckp9; zo;UdO{33sa|CIldzs-No{~2lzb%pkZ218?^xzGop8=+gFyW!#R@$f?UqwvS!>)~7B z&%<|wLqbj%6Y@eyxFlQ^ZU|osKM21FzX=Z_TO*y3!N}1_A+i{`9JwC(EOI;A5^ax; zMCYRCqaQ}EMQ=vGiT)IQAjZX3u~!@w3*tHPqIgrhBYr3TDBh28F&rC;O~stp{n%ge zj`*p#9{1u`6X8Tlq9ZYwm`&6YmlB^OzDnFp+)MJw)?{yTGFeF4$;-)Woc{>%!7F@M JSoKK$`Zx1R`|bb$ diff --git a/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/tr.lproj/Localizable.strings index ec8e0454de72413412b3b1bb9f164e23ef915b25..f871860aaa0518fd51aef31cb6c07690a445a847 100644 GIT binary patch delta 1370 zcmY*XTWB0r7(Qp`vNPGq?rdt>hGfZXZbDPjF4~vcs7ZP;&80CrxivQH$}=X?8Y@017(~;*QfwbA_9-Gt5k;Y*q$OCS)!-GipcE;6P|%{ZSjDruG3djb%lzN} z|KIohXQ^$e?Im64-QU+ATpVlN=;pn`?BOHDqjSgRpBnEn49z3yJnZFK;j|EfELR6{ zp;^+0NSY?pR?u)Ge85XM!cLKvL-85nns!>FuIsq#w>_oX*id2GGV?R=2j2t{+`b_` zGTcAaL+m8Aw0tFRaiOt^71kVk=hQIu3a+hrj+S%s-sDKmARg8FO*^x=&{p&Ku$i3E zdK}xMwx@TKWCm{I7FhAkJ&{mrW18WTlvmEw3OUOm1~v3JnWdA%H0#V(>Lk=nBWp1& zR>p2+d&;z^K1h#vy3Uj*RCSGar5Ixd3%JfM<=SN0q9uZr4r?_g_86w84KdCK`&nP+ zMn^|SLJjYwUUH`7P2Tiqp8eDHVvdgOrYTaeyo6e_)~5u?F%uYKyoX6nJ8lu8LM_bs zqQTu}K5ORlqj74{qzB7fVMjvUP!jg9;x+qNy+KDKv&6K@EXz$NO73ZcBun9(uX*u@ zd&JSQ9WctbES|523&QAu$zD58U9W8PgzgqKk|rjT8>%?8?&fG^a{u*bt+ig#J~m8= z!R83_LZo9vH$96zm;VuEpwgUKb77L6;hV4#plPP04~<{Y(+!F$TkaphjPDp4p% zjqsM-j<><8)Bq2P-C7nML=@R5jZC&`Y`wwmF55HuKE?@Rat74EJMgNs%|F^liU#%I z*XmX{rS#N{#U0xv8FOM?1Kg2guwQD2RsRmC4@O`zR1ar@b^avM(Ou-i-B7nY-d7o{ z39F%Y#xu%zHpB112Gv03NFT`&FNxxe#*MeXRq8M_gdT=XQmj6Ux)H&RC83O~$3&O- z=9zR8&Q}q*E^et#p*|M1kinuZJQO?x^I|*PAHEFL{`%0APBSiXHG|r;Xxi|N91T#s z9p#W$$~qB_MUAqfM{(>)JcSC(34#pvX~;ntRB+TLSPgX5GNP$6n*_30r;MXEARS^= zweXP`J&q)_fKH`bNqY!GXE2Qi@zfvp;_1^ zoD|LquL~E1i^5mJcfxh?I1)v%LF^Fc#Ixcxf17`+|FHiJ{}uoDQmf=iXQaR7M)^^B zNxmdsu6m&AW?*xmF|a%ET;RpPD}j##x0Ef)K4n^&Q=U;yDVLNh%I)gT>YnQTK@xl| q_<8V`&_Kuy6+_R4uB(drwfb8ahnvFpg{Q*l@Uig4@Mj=z(Eb4?j;Y%K delta 1423 zcmZvbU1%It6vywK@5xSf?xv8BCh1O+Cd7WEU4&M}wluLdZPFNaXOpb4S#Ec3Hsela z;>_&YZLI|#>O(Fk1qLsB!GNBWvtU7J{W zgvQH996Ok+m1NC4L{re9Kk;31{l^)xqgLAIj*I3v(_K8o7&*$&v}9|&lYhG3!YItz4xz0=IXRss^ByA~ zQ8Nc|p_JQa*`X0ho8!1hKM*?m*>~hMj}rSySeT38*Eli#C(?Fd&KUCCkhmdL;ilAo z28oL#%DgwTebLM^+4Sh+qih`6?l zna!j1^_CVdbSM60T34eFi&Kp`lR?5oY`Y%XMqgJtXi*)cKkA$5^~8hpkiKR6JQxHR zCV>Mma6t%DzyJi4*qS^EXFwVF?1#l(19)t^Oy7~a8VVr8f^K=JkKT}ms4J`O|5wKb z0hk9i{WZ2Tk=qyACBhDgKQV%<776KcJVif^Z9StV;{s)7#P=|EIi_4=&SqePDnspqf#{*%$_JX*9lA%)Hb{vb+RwGk^f_&iekUD3 zvtT452Q1d8@1bs*lJ?T0(k8ksv5jiz%E=j%lzi+P7I8_{c7Xy;gNxuZa0A>1zd-;M z*bF=2Fib-SJ_RfAG<*}T!prbF{DbS@y17l<4sMv6=8khq+dBn%5_VNy6IydW$I9|>Oxw}hXC-^Et3>!i3t+%0Crig-diC%z?KmYSpv z>4bDax+zO?quej=l4oQhUy`pWl7f^LWmpN6v&tLFRW+r)rmm>(sb8vpHuN_fZdh)( z7(=m-V^_6yZAv?-ozh;^UeUg8yc2JZx5pod?~X6UFU7Cv>-A~9qQ9?yq2EP%0_{f6 RqqFFn1W2S3cd5G0_#1rtv77(^ diff --git a/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hans.lproj/Localizable.strings index e64357935e1f7dd34afd3e1d6d6723385f6f4d5f..a92d00f88c0e32f6b6ec91572c31051fee114791 100644 GIT binary patch delta 1470 zcmY*XZA=qq9KY+mJ$G|bKoD@uLo5>65I(RO;WZ9mKe>l%`JP$!kmeIkR`Ze+XogPab|#7jB%N9am$<`kv&gajpjbw{h#Om z|GoWhvShO4r1DzR-Zz?8x7b_T98Qsi$!9OtKFpXv?a8l5${9)vKvr2T~p|4cQ*Gls$oA2%JJ;nXnOqy3@k^& z+j^YPOvJ*n8Ihxrxan<=>Z%FlW+U7`nyxC?=QR9%a$_WH!mz2luKN4YfAmH)ZAtC- zS&QmrJ*M`WnMpYj4MtQQ>WWJpgkC2MMFz7tKI_`{+?`yX>3spedyODe?C_weDA>8r zYR&1+f?;JSO_zqrY*^KTkO<5&xL<}Va;95m=~u}TU+b1=I?=~zmH@SH%u7E zXNr=HLeDPPt0sb`&svbDnIY{Y>B)9A1kpK5<>=BH-kpg9x!H}QU#~-#ICrbJ zDIA9}GZS>D5=+WzKsB)4ylg^`({yJy_hddfYK3_BIH9WJJ)&W*+}5rbW)S}_PYK0M zWY2nN*?Fcd~g59q^r@ zCA-urch(=b>5c*WXXB;myP9jJhe7#LCHj)z3|#Y}cgYRfA=DS>CuZFXWJvG*2Yxm7 z(EkxWt|=fVD`kG~PmZ^|7d6s@qCz=(2{hXJyYCSKN`9JDYyHjJp(mG5=^2n2P*JNL zzIFJHMjRaQRNHUbpBcIqy-1{F(F6T{Pc@k$rCfz>@I`g{Nb!kLQfDqt3_BoIOCE#t z9=+h2ClJ{q?NG{-M$J;m8vNy~$qYOK$7qW}Re>Wuen&egYPTcShV*@9i}Mq-UMxaZ zv2{x*t7ybAbPc<~B1m{7*Of8|mt1!f)r2YIMR_*)7fOknP#xe4^{)3@T_?qfq}DT* zsMd&IeD@-1;q%aS>E(9a|BC~X1pMjyqd%wTjHlBg)-|D zZfUaEEiua-hGQhAn5knLm~Bi8)5{!T-ebm@Pnj>6Z`q?viWQYdz?MTe#cI+ zH`%}02OPy!a@)Bv?hJRHyTpCZ&2!he-}w=W=lSP&8{f=(d6WN;Kg(a`7x-KJpF*Cn zRoE%Sgp_bhm=rDvSA+#n0k(oyz#b3)K`;Q`2IJs7_y$aYIq)l31oyywkr!*kI;@}*a$7U`IDTpE);mOhuRNVC!d=^;g-wX2^0AAq_Eh5!Hn delta 1432 zcmZ9Je@qi+7{~ATFLbmRpdySzCTS4a$TmrqP2!jaHz>3{C{Uog>%FuGZLjpMXsN;y zB$WO31LW=rN4V+`((1(xWtxIZw{NR~19V=-oPEXKGcB)WSKoY`{8o6Gw? z&-3|yzt1JtCD(DO{>`_VTRg38UY}oT?+A2ubq9NT`$D~M%Su=U{gJ3PFc^y`^kmbE zLn*^d5AQ#a8Oa_z1dE6&SV?bjZ1T&)KvYw5zbPhl!-UI}t0uTFVStn=HfxE&fDg#3 zs3&^;Q8}e0A|gno^i+o*#6Z{#IoxmqUOutPH+G?7(Idw}$Wh#$kd+t^OF!fYMjDi%Xt*z}_lO-B!p-56D2|61s z2@$JE@_++YG{x<;b76Z^lrOSgp5ZA5bQEJlba(J+7kE)p>LQ8FO1kO@r zZtEXu4LO{9ff!|eveNJN5w`xVSF`N}PJ)?Su zJfEM~oLfMA_`9()x3-6M!ZE zO4>cLkerDOh68T<&Z-cr)MGz(EZW8XTk-c{1y^iIs)Ms^S(Vj3J*{|+6Zh2q2jEMD z(t7Xz9|DKC!s5X-=;3`M4QLjs>8cyw1{uDJ^3V5?aGu`*7uiNqcND-CrWiIb8)1;y z>{1aG*-{Q>13ByPZC6I`jNXHLxeE9)A1_ris~@NctstT5SkbWwTkUlEqynA7jxr7T zIegiF3z@@e(H9P0_Z|t(=nf}z@+I&ahO3ST+@4=Od1Ky@1xuWj2$G6sJT9>VId;ek z)|%n(Ol7qiU-g|q>DiCS0fLHE%7?de=WHUnvo$1`7kH%6qV?W~HO%vc15a5`sveiX z7NLGDocn9yhulq!!*bYH*!S2H_6PO=$8ZiW!pra`+=s{TA$%Cm;pgy+_!ayH{x?xd zY$d9RokSB6B(lV5;w*8M+)eH!2g!HI6XYrKEP0-sqw1+fs)_PZ0cwOgN}Z;@r530= z)Nj;7+C^8;JLz4tpB^5g57DRSPw6X60aMDfFg?tE<{jn;bCmgr`HZ>1+-8=Uhs-LA zv3YC>TgkfF1~$o#vy<#e_6&QG{f_;Gqd1=1$z`}R+zdCzUE{8E^W1$t#7Fr!Kg?(O n^ZeKR9Dhe31gG$l@S4ypcm-7$7bb+gd93t$ diff --git a/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings b/WordPress/WordPressShareExtension/zh-Hant.lproj/Localizable.strings index eafe3f6676d07c9e1676edbf71a041fcb5942216..2b5f75de9cb57b6727269a72b2c10c8376706bc9 100644 GIT binary patch delta 1452 zcmZuveQeZZ7;mp%Z_8K5U}J-Yj%{oN7@KC%kg35j!gQ4FuDjb9+tFU%yOrJbw!7ZG z&ykqO*dW_{nVf_yCdeOXG;^pCGL3o?egrKq{R)eWsg%#^IC)Dewa%?%y8YC);iFx$sRHm=<7 zHUe!@Rn)YgX(=zNfp&DCEJT-G{RjNw>T*essX@y@N{NneRMnxbc+@V~?1qtOS9*?L z%x+k`lggdmE%rNTgrOqC9!pVd=YCOK)SVt?D?=k>j)}3Rs)ZpIm}Xd<(NwJ)mQ-hJ z-dAh$+G&)QmionvUC;`&;cViD1><&2QF=R|Zzl|@iLm7tS1$74mJT}vyQ8tnwj7Ga zdQm>J8uh#Km+v&<5hEV=dSDm^EOe1dRQSbAZ0v8xi}Bg>5w+z^dwo0 zKy=zwFn)6t>viHlUb=AngSBXe@$PM|G2<|1IYBomv0h0HsfKNLMLMA;X?oL}`)59j z)C%_Qb3;|P_lS~AUQvT$SYi8j`Ik_;3GZ2lQ;m}ca|U$O2#QfkSc(pTEGjByq6{tz zO|c@QC8tv)I>Q$ihdcAb*JPpY93c_qgw#I^5BJ@CwWjX{-ObAHqHV)(Yh43-ccXiJ z0h(a90MC46$hj%zwyxAi=e##CKo9-_r^X7Bb!Z*CX|sN`uK8+xsQG+A7GxqtMli=H zUk|aSGS}pdu^xG0{EOjWnG1=a3W;3ya;^TU=0?5u;TyU$W(wpF2IM6&(LbwUR0y+l z4GgvI-7{!D&JDE(d?grx%hJY!|7Su^{xG@?-#g8io+!mnJI3mNdghbUecxb}>9Uq; z^^IsLad@lK@2^152_Rc@v#D06fXUNrQ8B{_@^gNvpiNw#IHHa9c;?Yppc7r?*RFz{ z`JP`AC3w2yMOoHYj=twMW$OE0KRGwnlVY?cU!p|AUeN)*2vxHy&;{XnU*PL{h|TNu z$A*J4(VlO#-2LxnG@O6?elA6x(EJrgXM82{g1jUhic<)>%f@nsZgszRX0U*%WR5d$G4C)l%q3=?`IfoO5-iKEV~f~Y*2kLc3HB6wiM`G)us?Fk zxM#T?oXK@_hq$xcG0Mv v=2QGR{xg1-|CN8hKN2XRM0jSEUg;uoswY_{Sz92t#x-bc}7xi4KIh=ecx_5eRq5@Av(F zzTe-JZ^}2W(Jyarndn?z+PpsFxY^wP{(=19(C{m;oLT{E*hTWZke&mIk` zc$@L9iEOhRka3k3(@KSdKsOZI+7n9Z8PiHAAd|5(?IDl`aW^Xa;WOmYiN|7NCmvQ* zy$3|)1#OldO9REVm27X?M*DT1xTfg|N5hU$d9G?JdQLaf-lSu?z=1pHit?@?aI+Z; z?_!?zM%{{oH2jtFA?BsoI!R9wg?SOykqZ2ouHt9^IL=mj(iv)y)dI+O;>7ZBRQBP}KpC*J8O3q!%z%;v z8BkkW+f~F;oMI`OHqZ+?8WBPQ4QVRqN7XE7^Rk0~)2~4-bem}aeN1*~BnWzJ)I4rY z+oH!)olS=6D%e^J=n41*v)GTGF>6#V+X~!x5|{7wg#330&3IC2v@I7{E)>btb^kl0 zo&b3B>CKw(%|dO#mR&9A8b}C9z${t4q@%$w6c=3u9b~o&Y=fJ}BcITVCvMl2wHINd z^1|6j6Yo`*{nzQN8{EitNSzugNl)me1z+V?LBCYmkl4+?zAeAG_4!B#xb$S9vFrG$ zYvcU|Hr5%=`i=P2Rxn;O9Ow?N8?QKcd;iCW?x2|W7pbm0`wRQUGF)Vf_+>$ zY~Y`R7x+c>Xur@BoBUz&kkS1BoWg1M|gINhJ!T zF??@qt(R)}T!BO|yLpTZkMfl@DO`Z@D0CgS(VB={n6)|*h+M(1MXW{jPtkjdrzwzc zdtHY8>Q8D(F|1eSnAi%68n!IsM9bEZxSnEg1Dx%c!iVr?aZi{_SpmNj=0l5HEn;*; z=%twlH**#6j8qOcNSj7lj~?z;iBuIK5TnGW#J9vP;y2;}Nst0rPA(>!$sm~~`^X$Q zO3sky$&2Jw@-M2As-{*`^;9zzp$4hb)HL-q-9T@pQ}kQ(Bz=mWraz#+WHvC3OfwT? z!c3ky#++upVs0>ZnO~TPtdFf?>)B0gh#kqX!|W;cefANazqogp7w)q{#~N{1C{RO AmH+?% diff --git a/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ar.lproj/Localizable.strings index df91d52eaea141f103b84c7b79d0a82ce82c8f1a..5efbdd7afec88307d10783c80188f0a20c77baa2 100644 GIT binary patch literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGiM{ z%4Wi*&gRah4r$R4G32Y$aP`!Vsip<(}08vn-QA_kT&EH6qi-gxATo* Q00Txw2+hC=rD0Si0M#QId;kCd literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyRR z%4W%?!=}!r0mNEqK*EL1h|L2?8>X{q0p(oSyx5#Ta_MZYY$ia4JDWa;%ONPPps8=? S9mN0!jEoSPffGu@s7wIW=ox+h diff --git a/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/bg.lproj/Localizable.strings index eed61e6f57bb0227d43528cad63f6dd94dc4d3fc..670c968b5c01b477ae8b6c95fbdfbf3006ff847d 100644 GIT binary patch delta 111 zcmZ3-xQ~XHY}zrwk%F81}qLN7FjIvKp{t{9>$kY&qa!Qwx$KvX!BMT*6a#Re#0%i;u9Vlh!)l9NMFTtQRc KB{FAXp8^2l2pi1+ diff --git a/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cs.lproj/Localizable.strings index 31214acd90a4957ef122b0728ae63e3d93bbd1c8..569c4c24b23cc214130da58c8363092e3b6bb482 100644 GIT binary patch delta 113 zcmdnMxPj3rsURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%afEYzZfJLn=ca!`q4a(i0Pf6|x!p7#=c|F(xvUFiJC&fn*qx88SHp P#bwp>oni|nPEY^}37)lr(GDb3_W->$p cg_0PG7!nz(z!Gmc1jQ9J^}P~HCQeWQ05C`-=>Px# diff --git a/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/cy.lproj/Localizable.strings index b7b06ab059ee534f1c15c6695c2311076be7a2d1..0447571f8d5a333d5ebfcab0f9e52a851c38e79a 100644 GIT binary patch literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2=G_ zpHrS5>XDz8mKoufpOTrFl2{rMnOmNkQ(jrbAt)}Zrf+KP!T<)0j1ZcE6H3DXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UL5L? zpO%&x5t&<_np0j`6ycYjl9`y2SQ_e{pHrUBAtRQj0PfoETCWiWz<|qyy F007~79@qc? literal 128 zcmYc)$jK}&F)+Bo$i&RT$jZhZ>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyC` z#E{BR%}E7iD#*z!E-^5;!pOwT!pg?Z5gL}6T3#ILlbM}b9O0awo12XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyO~ z&XCHG#_)t82M9|T6c}6N^&A9ZS=SO4Cv~1jQ9J_1*lV R7{Gv$5kfO?LTMP41OQZeA|wC+ diff --git a/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-AU.lproj/Localizable.strings index 8dfa67aabec187a605ec74877e4c14be3ff81776..7fa299d008b92c0b917dbbd17e9032fdf4a1fac3 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= diff --git a/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-CA.lproj/Localizable.strings index 8dfa67aabec187a605ec74877e4c14be3ff81776..7fa299d008b92c0b917dbbd17e9032fdf4a1fac3 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= diff --git a/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/en-GB.lproj/Localizable.strings index 8dfa67aabec187a605ec74877e4c14be3ff81776..7fa299d008b92c0b917dbbd17e9032fdf4a1fac3 100644 GIT binary patch literal 84 zcmYc)$jK}&F)+Bo$i&P7!l7ZAspZ9?KAG96#SzZ=xw)x%CB+e8nZ=nU`9;MXg5t7j R3}C>>2%#BRp)`!r2LQD`5QzW) literal 84 zcmYc)$jK}&F)+Bo$i&P7!l6Ey*{Q`5VVT95CHY0g5zhI!xv6<2#i3!DspZ8Sg5nCA R3}C>>2%#BRp)`!r2LQLI5RU)= diff --git a/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/es.lproj/Localizable.strings index 1bc4d5e9572b4dba1c9654a248e3a068cf9ba748..6ec98b48c0a3ba6e81ca23fa0051cd5504ed53d8 100644 GIT binary patch literal 128 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2&Xw zBo;^brYfYD7MCPO1C;<(Bo<}n7e_%P^GZ^SIRwRJ)%49Bd>Fuhkr6^Oa6)Mq6%GJp Cks+c0 literal 128 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UL4_@ zs*qkXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYy3@ zr69?W$dJj9%a9rgR+L&=R2&0Um6%zSS{xEqnp(^uD6XKXZ{rrs00xYV5SoD#O2eoK E0OTnjwg3PC diff --git a/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/he.lproj/Localizable.strings index 025e1c7939768753dfdd684215cd7e2e93f5bc24..2b3200f1412836f5ef75a67bb174913d06c80658 100644 GIT binary patch literal 150 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGh_n zne_?lP1d^%3ak%UpF!B^K+YYY;7!)&AgMIgSFD#+^9D?Gq WYWgn02@GJs$OxesIH5F*$^`%<(krq6 literal 150 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyRL zzpEXs@t$S=-HEy*lN&B@B-5EPeH)3XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|sU zU!0X%l39|Pla(3ioez>qEXs@sC`wJwNlnS*5ENI?)VFbC00Txw2+hC&rD2pm0M>*a AMF0Q* diff --git a/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/hu.lproj/Localizable.strings index 6ad18e82fa83cc8034ddb0e7bd4cd6efa47ea2f9..2a3e031112df9caa0af881e6b78ca608425ec786 100644 GIT binary patch delta 89 zcmZ3$xPVbVsURn_xWvHV3L_IU3o8>FduUi@YI$*}PiA&%afEYzZfJ`4{TN*MAP(iswg^k;@_4nc8QHGQwti46(>;ZYj` delta 87 zcmZ3$xPZ|isURn_xWvHV3L_IU3nMEVd#F!lc4~1%SY~l%Nq$jrgmZpwZfaghacEd( pYI$)cgAc<)h7yK+hIEERApLowhwMasX$}rSaRp6%r`U-N3IMGa8e{+f diff --git a/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/id.lproj/Localizable.strings index 2fbd4aa7b6ac9976ed18c06349eba53e09e05882..7f09986b39ba27bbd7c292d1aec91ed685893619 100644 GIT binary patch literal 134 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2=DD znwM3Ym!6mx5?q>{7%w2`oexrxSfrZ`Wkdy}=A}baaR`dbs_9$W1u=jDBO`=n;DpjJ GDi#1~mm_}w literal 134 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|o! znw=OGkeZiXnwM3YmmV)5=$#LePb|{ShB6|(A##a%9D?Esn))X8!3XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyC` z!|;|Nn<0^*h(Up&j3JZZLzsJNaY<%TjAKbgX?kLDYHmtqQIuOwYDr0EUV35?hoHEE VroNMB7y}qEGD2tuPACnd5&?(dBOCw# diff --git a/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/it.lproj/Localizable.strings index b49a5f5248846956645a9a2772feb34bc6d6a2a9..595cab923d59ea5e3cd151f9d71e516d51278b5b 100644 GIT binary patch literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2(nB z4`h}m=44h?C01qT=VgX~RKgTyMu8P30+nWR2#U+9={vglGk^gjBZOw)gwil73IO14 BBAWmJ literal 131 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK|3F zjRH$10;Mxy(wXrB{6Nvt#GK5ks>G_y{JcyKL2(65eG_{R1~6b`gwPC}P#Q)>0RZU9 BB8C6} diff --git a/WordPress/WordPressTodayWidget/ja.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ja.lproj/Localizable.strings index 945a9c1a8fbe79f6a1feab1175c81b969f11a44c..6299b7096579c3e30f3581a8ce771a64ed488590 100644 GIT binary patch literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGi$A zQE8Q0kZj-rgt;jOn++Zsd^R|d+@%%j-@wWtC@!m}Z)WSp00xYV5SoD#O2a5$0Drh0 A82|tP literal 118 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYu;; z0))BAU0R|34Xh~!n++Zsd^R|d+>udfm0G|dD6XKXZ)WSp00xYV5SoD#O2a5$0CD9V A9{>OV diff --git a/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ko.lproj/Localizable.strings index 1a88de85e3d48c3aa7e674d9040a9d2af08d9836..9d76f3cca8eb87125891d7d59d9001dfc87384bd 100644 GIT binary patch delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= ooVfQx@`>)FF2|-MZ5Cd~ki188x5e=Z9D?GqYWhZ&b`$*+0Q~VD^8f$< delta 84 zcmd1H^Ghno$t*50Fu20V#LU9V#?BGylbM}b91)gToLQ1zR2<=)pPQSSS5h1rmYG^! ooP47DsLQb_$$K<+TO6N|v{`r^L*m{K9D?Esn)+t8P80nU0Qq_!1poj5 diff --git a/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/nb.lproj/Localizable.strings index 8b932f477d088cbd88b045e110adc3a000c3bf82..74233a822799cf8333004767d9a0ac7955e9909f 100644 GIT binary patch literal 133 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2&Ip zXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UJRBk z%3yF}NM$Hy_`#43q>C6*qrD-j5{pucB7s`-GV{_?i#PY-UVMD#*z!E-^5;!pOwT!pg?Z5gL}6T3#ILlbM}b9O0awo12-Qe7aNwDm!g}Qt(%itnq3?bl$w}al9^f@>6BWPpPHRoRLmhLE~}<* IIWbWQ09DT<5C8xG delta 105 zcmZo>Y-UVMD#*z!E-^5;!pOwT!pg?Z5$cnfomw0bmRX!xl3!FD;hdkFo0?Zr92%CH zT3#F*mYJ8Lo0+YflUkZx9O;x=m7kiO3RD)9nwVUYnOYnfo|;;eo>-Qe#~~=Lps8;= HF;NKsRKp}1 diff --git a/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/pl.lproj/Localizable.strings index b9c5473886ed0a2f8fdf478fbaf2e679390c74a3..f9584ce5df2ec1cf975aade6db67bb2a470d3598 100644 GIT binary patch literal 96 zcmYc)$jK}&F)+Bo$i&RT$i&JL8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2=1< d4-!Z$s!HV$6qi-gX8;36MhMNo2Bl$?6#zdW6+i$0 literal 96 zcmYc)$jK}&F)+Bo$i&RT$i&JL>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UL56} d58@>jRi$zWiYsX9Gk^gjBZOvPgVHd{3IIWo6-EF6 diff --git a/WordPress/WordPressTodayWidget/pt-BR.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/pt-BR.lproj/Localizable.strings index 747808369b638405d486e75d8e98454c99b47556..1f3c30ff64e77bbe5480fb99ec4068f483c6c4ca 100644 GIT binary patch delta 110 zcmbQoIFC^;sURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%afEYzZfVqQsVF^8bIteU=8 JaMr{+1ptn!B830| delta 110 zcmbQoIFB(hsURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( zYB`WwT2zvml2{xCR*;xil3JY2;LMQEkjs$DkjGHM@Q|U1Arr`-s3*h8AtCkW~ewpEG=ANM$GvbI&g>$)D&TArb{votRgWTFfCRE~}>R K6__!xMgai2@*@ZU delta 88 zcmbQkIET?8sURn_xWvHV3L_IU3o9EtN2pI`c4~1%SY~l%Nq$jrgmZpwZfaghacEd( oYI$*(dwy|AesL67Ix(*#bz*?TM15&a4nc7RO?@-Rh>0}{00!?I(EtDd diff --git a/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ro.lproj/Localizable.strings index 27741762e07eaeccc8f5666dbc2458024ce8d4d6..2143d16de19c0b676fa548d5e7497c0bb2733e99 100644 GIT binary patch literal 148 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGiHa z#*oQS#ZbzS$dChKF)}k0F=VDQ1Tf?PnaMzj5{A?$pgy3s#G=g1sIbhc%#uW)-b@Zb YaalEex6lLzFkoba&XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyPl zz>vep%#h4b%22|P8WomVm06MqRG1kBR0vd;Sd^KW%@D?r$xsDUlE{z)VgWT2F=TQG YiYsX9+j)jCfB_>Tgl6D`(l9C;0EDt<8 diff --git a/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/ru.lproj/Localizable.strings index c5a9761f4b68f274bbd32b620bef4765d741a2d1..9925cfa7be9286f369011cfe7b37510b9c35f442 100644 GIT binary patch literal 166 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zRGi5o z&*H#h$KuFh10yuV$EW~At)}ZrtcJ(!2kw~j1ZcE6H3FVS^!h<9FG71 literal 166 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyP% z&Em&m$YQ}_!(zu`n#Cdyq#RjHS)71EPC(k4#Uh(U3Mgm;gr+REKtTf*2cV=yCQz*d hST#ti6OirAAt|yjxD#*z!E-^5;!pOwT!pg+P9vYUJT3#ILlbM}b9O0awo12D$56uXkfDenb)vpF2Zx}zteU=+@5CGh0OJuI AbN~PV delta 97 zcmeBS>|xYTD#*z!E-^5;!pOwT!pO?T9_o{somw0bmRX!xl3!FD;hdkFo0?Zr92%CH zT3$TSS6nTV!J8qUA(tVQA&;Si;UPm2Luyo1eo|3lRcc;lB8Q;3f~LM(XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyPl z!0?(OhoO)mlOdNOHG?4x$fyG15{7(+B8J!D-uWQasi6UhMOmpFg5nCA`gZ=|3}C>> N2%#A`p)`z&1pq*uA6WnZ diff --git a/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/sv.lproj/Localizable.strings index 4c2cee7a54073b20df9577ccd5429e98d886e4e3..084bf4bd6573e6e2d57acf0f17ee9c961577a249 100644 GIT binary patch literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS8kU(_UL5L^nVni3;hdkFo0?Zr91)gToLQ1zR2&Ip z0A0lFn|FgBZOw)gwil7698vRCF1}9 literal 146 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UK}qV z;GUV2lbD-Wl$~0XnU|hel)>P{kjhZZ@QopxA(5eoAvM|?q9w5?wI~v3P99hphoHEE VroK~fJOdaoGD2tuPACndG65+4CIA2c diff --git a/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/th.lproj/Localizable.strings index 281edf75e5738cb201ba3930f42b5588160c86a7..4535e93a0e5e07c403034e3a8d0705abc1b28d1d 100644 GIT binary patch delta 111 zcmbQmIEyhVsURn_xWvHV3L_IU3o9EtM`&1PYI$*}PiA&%afEYzZfL;wH) literal 154 zcmYc)$jK}&F)+Bo$i&RT%ErzS>XVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYyRy z#b?gv!6yl%b@`;S`DFMk`8@d?_>}lefx=3Bia-g)3_cbXVtBS{xCUS)5stUsN37oS&PUnpaXB8kU(_UYx_= z#E{A;&ydQH$B@a81ExV_Q4T{CP@s|_k)a64En#>Ll`e{i%r7d<%}FfEW^iZt#!w8D i11bl~=7O~saR`blXzF_;W-)*PBO`=n;DpjJsu2K#VkSWV diff --git a/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings b/WordPress/WordPressTodayWidget/zh-Hans.lproj/Localizable.strings index 4522cc09f057637461cb4cc86fc038b9380cd501..99f45caac3ef6dd1171ef7866613d82dfeb31da0 100644 GIT binary patch delta 82 zcmd1H^GPbm$t*50Fu20V#LU9V#?BEMmYG^!9O{#qomw2>oS&PUnpaXB5tdn;S(0B= moSgo&oIAB3u{SQM`$+e$h$>~qaxl;=`1jQ9J^^GR_C;oS&PUnpaXB5tdn;S(0B= qoILN|)QzbX$;q7Evr;RPN+Y`%lDf2_7jX!R%c|*{**Z-OPyhfKDIORA delta 86 zcmXRY2uLc($t*50Fu20V#LU9V#?BGylbM}b91)gToLQ1zR2<=)pPQSSS5h1rmYG^! qoSe+rJu9^$sY@$*QBrAS7en&Ads8>2R&WT4D`@JQSvyP&Pyhf1*d7`H From fe0bc6b4b5579ec693dcd3d63d7978bbc7d38880 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 8 Dec 2021 22:09:17 +0100 Subject: [PATCH 361/371] Update metadata translations --- fastlane/metadata/default/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/en-GB/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/en-US/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/es-ES/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/es-MX/release_notes.txt | 14 ++++++++++++++ fastlane/metadata/ru/release_notes.txt | 14 ++++++++++++++ 6 files changed, 84 insertions(+) create mode 100644 fastlane/metadata/default/release_notes.txt create mode 100644 fastlane/metadata/en-GB/release_notes.txt create mode 100644 fastlane/metadata/en-US/release_notes.txt create mode 100644 fastlane/metadata/es-ES/release_notes.txt create mode 100644 fastlane/metadata/es-MX/release_notes.txt create mode 100644 fastlane/metadata/ru/release_notes.txt diff --git a/fastlane/metadata/default/release_notes.txt b/fastlane/metadata/default/release_notes.txt new file mode 100644 index 000000000000..5990df9c39cc --- /dev/null +++ b/fastlane/metadata/default/release_notes.txt @@ -0,0 +1,14 @@ +Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications. + +We made some big changes to the block editor so you can keep calm and publish on: + +- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one. +- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images. +- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language. +- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead. +- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch. +- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it. + +New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site. + +We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more. diff --git a/fastlane/metadata/en-GB/release_notes.txt b/fastlane/metadata/en-GB/release_notes.txt new file mode 100644 index 000000000000..5f7189b48dad --- /dev/null +++ b/fastlane/metadata/en-GB/release_notes.txt @@ -0,0 +1,14 @@ +Good news, everyone – we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications. + +We made some big changes to the block editor so you can keep calm and publish on: + +– When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion, so you can use the clipboard URL or enter a different one. +– Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images. +– Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language. +– When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead. +– In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch. +– You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it. + +New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site. + +We also added a new About screen, so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more. diff --git a/fastlane/metadata/en-US/release_notes.txt b/fastlane/metadata/en-US/release_notes.txt new file mode 100644 index 000000000000..5990df9c39cc --- /dev/null +++ b/fastlane/metadata/en-US/release_notes.txt @@ -0,0 +1,14 @@ +Good news, everyone—we fixed app crashes caused by uploading images while offline, deleting media, or seeing details for "Like" notifications. + +We made some big changes to the block editor so you can keep calm and publish on: + +- When you open the settings for a Button or Image block linked to a URL, the editor won't auto-populate a URL from your clipboard anymore. You'll now see a "Link To" suggestion so you can use the clipboard URL or enter a different one. +- Create a Gallery block and your device's media options will automatically open, making it easier for you to add your images. +- Adding a new block? If your device is set to a language other than English, the tabs in the inserter menu will now match your set language. +- When you're using the Embed block, you won't see the "Edit" action in the toolbar. You can now change the URL by going into Block Settings instead. +- In the post editor, switching from HTML mode to Visual mode will bring up a compact notice telling you about the switch. +- You might have noticed your font size changing on its own in Media and Text blocks. We squashed the bug that was causing it. + +New to WordPress? Not to worry. Our login process makes it easier than ever to create and start managing your site. + +We also added a new About screen so you can rate and share the app (hint, hint), visit our Twitter profile and blog, view our other apps, and more. diff --git a/fastlane/metadata/es-ES/release_notes.txt b/fastlane/metadata/es-ES/release_notes.txt new file mode 100644 index 000000000000..0462825d61fd --- /dev/null +++ b/fastlane/metadata/es-ES/release_notes.txt @@ -0,0 +1,14 @@ +Buenas noticias para todos: hemos corregido los fallos de la aplicación causados por la subida de imágenes mientras se está desconectado, el borrado de medios o la visualización de los detalles de los avisos de "Me gusta". + +Hemos hecho algunos grandes cambios en el editor de bloques, así que puedes mantener la calma y seguir publicando: + +- Cuando abres los ajustes de un bloque de botón o de imagen enlazado a una URL, el editor ya no rellena automáticamente una URL desde tu portapapeles. Ahora verás una sugerencia de "Enlazar a" para que puedas usar la URL del portapapeles o introducir una diferente. +- Crea un bloque de galería y se abrirán automáticamente las opciones de medios de tu dispositivo, haciéndote más fácil añadir tus imágenes. +- ¿Añadir un nuevo bloque? Si tu dispositivo está configurado en un idioma distinto al inglés, las pestañas del menú de inserción ahora coincidirán con el idioma configurado. +- Cuando uses el bloque de incrustación, no verás la acción "Editar" en la barra de herramientas. En su lugar, ahora puedes cambiar la URL yendo a los ajustes del bloque. +- En el editor de entradas, cambiar del modo HTML al modo visual presentará un aviso compacto informándote del cambio. +- Puede que hayas notado el cambio por si solo del tamaño de tu fuente en los bloques de medios y de texto. Hemos eliminado el fallo que lo causaba. + +¿Eres nuevo en WordPress? No te preocupes. Nuestro proceso de acceso hace que sea más fácil que nunca crear y empezar a gestionar tu sitio. + +También hemos añadido una nueva pantalla "Acerca de" para que puedas valorar y compartir la aplicación (pista, pista), visitar nuestro perfil de Twitter y nuestro blog, ver nuestras otras aplicaciones y mucho más. diff --git a/fastlane/metadata/es-MX/release_notes.txt b/fastlane/metadata/es-MX/release_notes.txt new file mode 100644 index 000000000000..0462825d61fd --- /dev/null +++ b/fastlane/metadata/es-MX/release_notes.txt @@ -0,0 +1,14 @@ +Buenas noticias para todos: hemos corregido los fallos de la aplicación causados por la subida de imágenes mientras se está desconectado, el borrado de medios o la visualización de los detalles de los avisos de "Me gusta". + +Hemos hecho algunos grandes cambios en el editor de bloques, así que puedes mantener la calma y seguir publicando: + +- Cuando abres los ajustes de un bloque de botón o de imagen enlazado a una URL, el editor ya no rellena automáticamente una URL desde tu portapapeles. Ahora verás una sugerencia de "Enlazar a" para que puedas usar la URL del portapapeles o introducir una diferente. +- Crea un bloque de galería y se abrirán automáticamente las opciones de medios de tu dispositivo, haciéndote más fácil añadir tus imágenes. +- ¿Añadir un nuevo bloque? Si tu dispositivo está configurado en un idioma distinto al inglés, las pestañas del menú de inserción ahora coincidirán con el idioma configurado. +- Cuando uses el bloque de incrustación, no verás la acción "Editar" en la barra de herramientas. En su lugar, ahora puedes cambiar la URL yendo a los ajustes del bloque. +- En el editor de entradas, cambiar del modo HTML al modo visual presentará un aviso compacto informándote del cambio. +- Puede que hayas notado el cambio por si solo del tamaño de tu fuente en los bloques de medios y de texto. Hemos eliminado el fallo que lo causaba. + +¿Eres nuevo en WordPress? No te preocupes. Nuestro proceso de acceso hace que sea más fácil que nunca crear y empezar a gestionar tu sitio. + +También hemos añadido una nueva pantalla "Acerca de" para que puedas valorar y compartir la aplicación (pista, pista), visitar nuestro perfil de Twitter y nuestro blog, ver nuestras otras aplicaciones y mucho más. diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt new file mode 100644 index 000000000000..d1dc27037207 --- /dev/null +++ b/fastlane/metadata/ru/release_notes.txt @@ -0,0 +1,14 @@ +Хорошие новости для всех - мы исправили сбои приложения, вызванные загрузкой изображений в автономном режиме, удалением медиафайлов или просмотром сведений для уведомлений об отметках "Нравится". + +Мы внесли большие изменения в редактор блоков, чтобы вы могли сохранять спокойствие и публиковать: + +- Когда вы открываете настройки для блока "Кнопка" или "Изображение", связанного с URL-адресом, редактор больше не будет автоматически заполнять URL-адрес из вашего буфера обмена. Теперь вы увидите предложение «Ссылка на», чтобы вы могли использовать URL-адрес из буфера обмена или ввести другой. +- Создайте блок галереи, и параметры мультимедиа вашего устройства откроются автоматически, что упростит вам добавление изображений. +- Добавляете новый блок? Если ваше устройство настроено на язык, отличный от английского, вкладки в меню средства вставки теперь будут соответствовать установленному вами языку. +- Когда вы используете блок «Вставка», вы не увидите действие «Редактировать» на панели инструментов. Теперь вы можете изменить URL-адрес, зайдя в настройки блока. +- В редакторе записей при переключении из режима HTML в визуальный режим появится компактное уведомление о переключении. +- Возможно, вы заметили, что размер шрифта менялся сам по себе в блоках «Медиа» и «Текст». Мы устранили ошибку, которая ее вызывала. + +Новичок в WordPress? Не волнуйтесь. Наш процесс входа в систему упрощает создание вашего сайта и начало управления им. + +Мы также добавили новый экран «О программе», чтобы вы могли оценивать приложение и делиться им (совет!), посещать наш Твиттер и блог, просматривать другие наши приложения и т. д. From f366e30dfe7bc2b989847d1e80f01c67222d0cb7 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 8 Dec 2021 22:09:36 +0100 Subject: [PATCH 362/371] Update Jetpack metadata translations --- fastlane/jetpack_metadata/ar-SA/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/de-DE/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/es-ES/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/fr-FR/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/he/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/id/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/it/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/ja/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/ko/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/nl-NL/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/pt-BR/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/ru/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/sv/release_notes.txt | 14 ++++++++++++++ fastlane/jetpack_metadata/tr/release_notes.txt | 14 ++++++++++++++ .../jetpack_metadata/zh-Hans/release_notes.txt | 14 ++++++++++++++ .../jetpack_metadata/zh-Hant/release_notes.txt | 14 ++++++++++++++ 16 files changed, 224 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/fr-FR/release_notes.txt create mode 100644 fastlane/jetpack_metadata/he/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/ko/release_notes.txt create mode 100644 fastlane/jetpack_metadata/nl-NL/release_notes.txt create mode 100644 fastlane/jetpack_metadata/pt-BR/release_notes.txt create mode 100644 fastlane/jetpack_metadata/ru/release_notes.txt create mode 100644 fastlane/jetpack_metadata/sv/release_notes.txt create mode 100644 fastlane/jetpack_metadata/tr/release_notes.txt create mode 100644 fastlane/jetpack_metadata/zh-Hans/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..ec61f961f9db --- /dev/null +++ b/fastlane/jetpack_metadata/ar-SA/release_notes.txt @@ -0,0 +1,14 @@ +أخبار سارة للجميع — قمنا بإصلاح أخطاء التطبيق الناتجة عن رفع الصور في أثناء عدم الاتصال بالإنترنت أو حذف الوسائط أو الاطلاع على تفاصيل خاصة بتنبيهات "الإعجاب". + +أجرينا تغييرات كبيرة على محرِّر المكوِّن بحيث يمكنك الحفاظ على هدوئك والنشر عند: + +- عندما تفتح الإعدادات الخاصة بمكوِّن الزر أو الصورة المرتبطة بعنوان URL، لن يقوم المحرِّر بملء عنوان URL تلقائيًا من حافظتك بعد الآن. سترى الآن اقتراح "رابط إلى" بحيث يمكنك استخدام عنوان URL الحافظة أو إدخال عنوان مختلف. +- قم بإنشاء مكوِّن معرض، وسيتم فتح خيارات وسائط جهازك تلقائيًا، ما يُسهِّل لك إضافة صورك. +- هل تريد إضافة مكوِّن جديد؟ إذا تم تعيين جهازك إلى لغة بخلاف اللغة الإنجليزية، فستطابق علامات التبويب الموجودة في قائمة أداة الإدراج الآن لغتك التي تم تعيينها. +- عندما تستخدم مكوِّن التضمين، لن ترى إجراء "التحرير" في شريط الأدوات. يمكنك الآن تغيير عنوان URL عن طريق الانتقال إلى إعدادات المكوِّن بدلاً من ذلك. +- في محرِّر المقالة، سيؤدي التبديل من وضع HTML إلى الوضع المرئي إلى إحضار إشعار موجز يخبرك بالتبديل. +- ربما لاحظت أنه قد تغير حجم الخط من تلقاء نفسه في مكوِّنات الوسائط والنص. لقد قضينا على الخطأ الذي كان يُسبب ذلك الأمر. + +هل أنت جديد على ووردبريس؟ لا داعي للقلق. تسهِّل عملية تسجيل الدخول الخاصة بنا إنشاء موقعك وبدء إدراته أكثر من أي وقت مضى. + +أضفنا كذلك شاشة "نبذة عن" جديدة بحيث يمكنك تقييم التطبيق ومشاركته (بعض التلميحات)، وزيارة ملفنا الشخصي على تويتر ومدونتنا، وعرض تطبيقاتنا الأخرى، وأكثر. 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..aa56f8512c8f --- /dev/null +++ b/fastlane/jetpack_metadata/de-DE/release_notes.txt @@ -0,0 +1,14 @@ +Gute Neuigkeiten: Wir haben App-Abstürze, die durch den Offline-Upload von Bildern, das Löschen von Medien oder das Anzeigen von Details für „Gefällt mir“-Benachrichtigungen verursacht wurden, behoben. + +Wir haben umfassende Änderungen am Block-Editor vorgenommen, damit du unbesorgt Beiträge veröffentlichen kannst auf: + +- Wenn du die Einstellungen für einen mit einer URL verknüpften Button oder Bildblock öffnest, wird im Editor nicht mehr automatisch eine URL aus deiner Zwischenablage eingefügt. Du erhältst jetzt einen „Link zu“-Vorschlag, d. h., du kannst entweder die URL aus der Zwischenablage verwenden oder eine andere eingeben. +- Wenn du einen Galerieblock erstellst, werden die Medienoptionen deines Geräts automatisch geöffnet. So kannst du deine Bilder einfacher hinzufügen. +- Du möchtest einen neuen Block hinzufügen? Wenn auf deinem Gerät eine andere Sprache als Englisch eingestellt ist, entsprechen die Tabs im Inserter-Menü ab sofort deiner Gerätesprache. +- Bei Verwendung des Embed-Blocks wird dir in der Toolbar nicht die Aktion „Bearbeiten“ angezeigt. Du kannst die URL ab sofort in den Blockeinstellungen ändern. +- Wenn du im Beitragseditor vom HTML-Modus zum visuellen Modus wechselst, wird dir ein kurzer Hinweis zum Wechsel angezeigt. +- Vielleicht hast du schon bemerkt, dass sich die Schriftgröße in „Medien und Text“-Blöcken automatisch ändert. Wir haben den Fehler, der dies verursacht hat, beseitigt. + +Bist du neu bei WordPress? Kein Grund zur Sorge. Mit unserem Anmeldeprozess ist es einfacher denn je, eine eigene Website zu erstellen und zu verwalten. + +Wir haben zudem eine neue Seite „Über“ hinzugefügt: Hier kannst du die App bewerten und teilen (das solltest du unbedingt tun), unser Profil und Blog auf Twitter besuchen, unsere anderen Apps ansehen und vieles mehr. 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..3b5823f0689b --- /dev/null +++ b/fastlane/jetpack_metadata/es-ES/release_notes.txt @@ -0,0 +1,14 @@ +Buenas noticias: hemos corregido los errores de la aplicación que se producían cuando se subían imágenes sin conexión, o al mismo tiempo que se eliminaban medios o se visualizaban los detalles de las notificaciones de "Me gusta". + +Hemos hecho algunos cambios importantes en el editor de bloques para que puedas seguir publicando con tranquilidad: + +- Al abrir los ajustes de un bloque de botón o imagen enlazado a una URL, el editor ya no completará de manera automática la URL en el portapapeles. En cambio, verás una sugerencia de "Enlace a" para que puedas utilizar la URL del portapapeles o introducir una diferente. +- Al crear un bloque de Galería, las opciones de medios de tu dispositivo se abrirán automáticamente, facilitándote la tarea de añadir las imágenes. +- ¿Quieres añadir un bloque nuevo? Si tu dispositivo está configurado en un idioma distinto al inglés, las pestañas del menú del insertador coincidirán con el idioma configurado. +- Cuando utilices el bloque de incrustar, no verás la acción "Editar" en la barra de herramientas. Ahora, puedes modificar la URL en los ajustes del bloque. +- En el editor de entradas, al cambiar del modo HTML al modo Visual, aparecerá un aviso compacto que te informará del cambio. +- Es posible que te hayas dado cuenta que el tamaño de la fuente cambia por sí solo en los bloques de Medios y Texto. Hemos eliminado el error que causaba este comportamiento. + +¿Eres nuevo en WordPress? No te preocupes. Nuestro proceso de inicio de sesión hace que sea más fácil que nunca crear y empezar a gestionar tu sitio. + +También hemos añadido una nueva pantalla "Acerca de" para que puedas valorar y compartir la aplicación (y ayudarnos), visitar nuestro perfil de Twitter y nuestro blog, ver otras de nuestras aplicaciones y mucho más. diff --git a/fastlane/jetpack_metadata/fr-FR/release_notes.txt b/fastlane/jetpack_metadata/fr-FR/release_notes.txt new file mode 100644 index 000000000000..cf51fc695d45 --- /dev/null +++ b/fastlane/jetpack_metadata/fr-FR/release_notes.txt @@ -0,0 +1,14 @@ +Bonne nouvelle ! Nous avons résolu les incidents liés au chargement des images en étant hors ligne, à la suppression de médias ou à l’affichage détaillé des notifications « J’aime » dans l’application. + +Nous avons apporté d’importantes modifications à l’éditeur de blocs pour que vous puissiez continuer à publier en toute tranquillité : + +- Lorsque vous ouvrez les réglages d’un bloc de bouton ou d’image associé à une URL, l’éditeur n’ajoute plus automatiquement une URL à partir de votre presse-papier. Vous verrez désormais une suggestion « Lien vers » vous laissant le choix de sélectionner l’URL de votre presse-papier ou d’en saisir une autre. +- Lorsque vous créez un bloc Galerie, les options multimédia de votre appareil s’ouvrent automatiquement pour faciliter l’ajout d’images. +- Vous souhaitez ajouter un nouveau bloc ? Si la langue de votre appareil n’est pas l’anglais, les onglets du menu d’insertion apparaîtront désormais dans la langue définie. +- Lorsque vous utilisez le bloc de contenu embarqué, l’action « Modifier » n’apparaîtra plus dans la barre d’outils. Vous pouvez désormais modifier l’URL à partir des réglages du bloc. +- Dans l’éditeur d’article, vous recevrez une notification si vous passez du mode HTML au mode visuel. +- Vous avez peut-être remarqué des changements de taille de police intempestifs dans les blocs de Média & texte. Nous avons corrigé le bug à l’origine de ce problème. + +Vous découvrez WordPress ? Pas d’inquiétude. Notre procédure de connexion vous permet de créer et de commencer à gérer votre site encore plus facilement. + +Nous avons également ajouté une nouvelle page À propos à partir de laquelle vous pouvez évaluer et partager l’application, consulter notre profil Twitter et notre blog, découvrir nos autres applications, etc. diff --git a/fastlane/jetpack_metadata/he/release_notes.txt b/fastlane/jetpack_metadata/he/release_notes.txt new file mode 100644 index 000000000000..a7c6d8c173e1 --- /dev/null +++ b/fastlane/jetpack_metadata/he/release_notes.txt @@ -0,0 +1,14 @@ +יש לנו חדשות טובות לכולם – תיקנו את הקריסות באפליקציה שנגרמו עקב העלאת תמונות במצב לא מחובר, מחיקת מדיה או צפייה בפרטים של הודעות 'לייק'. + +ביצענו כמה שינויים משמעותיים בעורך הבלוקים כדי לאפשר לכולם לפרסם בהנאה: + +- כאשר פותחים את ההגדרות של בלוק הכפתור או בלוק התמונה שאליו מצורף קישור של כתובת URL, העורך לא יזין עוד באופן אוטומטי את כתובת ה-URL מהלוח שלך. כעת תופיע הצעה 'קישור אל' כדי לאפשר לך להשתמש בכתובת ה-URL שבלוח או להזין כתובת שונה. +- אפשר ליצור בלוק גלריה ואפשרויות המדיה במכשיר שלך ייפתחו באופן אוטומטי כדי שיהיה קל יותר להוסיף תמונות. +- רוצה להוסיף בלוק חדש? אם המכשיר שלך מוגדר לשפה שאינה אנגלית, הלשוניות בתפריט המוסיף של הבלוקים כעת תואמות לשפה שהגדרת. +- כאשר משתמשים בבלוק ההטמעה, הפעולה 'לערוך' לא תופיע עוד בסרגל הכלים. במקום, אפשר כעת לשנות את כתובת ה-URL דרך הגדרות הבלוק. +- בעורך הפוסטים, ההחלפה בין עורך HTML והעורך חזותי תציג הודעה קטנה שמיידעת אותך שהשינוי בוצע. +- אולי הבחנת שגודל הגופן משתנה מעצמו בבלוק המדיה ובבלוק הטקסט. סילקנו את הבאג שגרם לתקלה הזאת. + +פעם ראשונה ב-WordPress? אל דאגה. תהליך ההתחברות שלנו היום פשוט יותר ויעזור לך ליצור אתר ולהתחיל לנהל אותו בקלות. + +הוספנו גם מסך 'אודות' חדש כדי לאפשר לך לדרג ולשתף את האפליקציה (כן, אנחנו רומזים בנימוס לעשות את זה), לבקר בפרופיל שלנו בטוויטר ובבלוג שלנו, לעיין באפליקציות הנוספות שלנו ועוד. diff --git a/fastlane/jetpack_metadata/id/release_notes.txt b/fastlane/jetpack_metadata/id/release_notes.txt new file mode 100644 index 000000000000..c33ecda10c2a --- /dev/null +++ b/fastlane/jetpack_metadata/id/release_notes.txt @@ -0,0 +1,14 @@ +Kabar baik, kami telah memperbaiki masalah crash aplikasi yang disebabkan pengunggahan gambar saat offline, menghapus media, atau melihat detail pemberitahuan "Suka". + +Kami melakukan perubahan besar pada editor blok sehingga Anda bisa tetap tenang dan terus memposkan: + +- Ketika Anda membuka pengaturan untuk blok Tombol atau Gambar yang ditautkan ke sebuah URL, editor tidak akan lagi mengisi URL secara otomatis dari papan klip Anda. Sekarang Anda akan melihat saran "Tautkan Ke" sehingga Anda bisa menggunakan URL papan klip atau memasukkan URL yang berbeda. +- Membuat blok Galeri akan secara otomatis membuka pilihan media perangkat sehingga memudahkan Anda untuk menambahkan gambar. +- Menambahkan blok baru? Jika bahasa perangkat diatur ke bahasa selain Inggris, sekarang tab pada menu penyisip akan mencocokkan dengan bahasa yang Anda tetapkan. +- Ketika menggunakan blok Sematan, Anda tidak akan melihat tindakan "Edit" pada bilah peralatan. Sekarang Anda bisa mengubah URL dengan membuka Pengaturan Blok. +- Pada editor pos, mengalihkan mode HTML ke mode Visual akan memunculkan pemberitahuan singkat tentang peralihan tersebut. +- Anda mungkin akan melihat ukuran font berubah dengan sendirinya pada blok Media dan Teks. Kami telah menghapus bug penyebabnya. + +Baru menggunakan WordPress? Jangan khawatir. Proses login kami mempermudah Anda membuat dan mulai mengelola situs. + +Kami juga menambahkan layar Tentang baru sehingga Anda dapat menilai dan membagikan aplikasi (mohon bantuannya), mengunjungi profil dan blog Twitter kami, melihat aplikasi lain dari kami, dan masih banyak lainnya. diff --git a/fastlane/jetpack_metadata/it/release_notes.txt b/fastlane/jetpack_metadata/it/release_notes.txt new file mode 100644 index 000000000000..8a3b37913cdf --- /dev/null +++ b/fastlane/jetpack_metadata/it/release_notes.txt @@ -0,0 +1,14 @@ +Buone notizie per tutti: abbiamo risolto gli arresti anomali dell'app causati dal caricamento di immagini offline, dall'eliminazione di elementi multimediali o dalla visualizzazione dei dettagli per le notifiche dei "Mi piace". + +Abbiamo apportato alcune grandi modifiche all'editor a blocchi in modo che tu possa mantenere la calma e pubblicare su: + +- Quando apri le impostazioni per un blocco Pulsante o Immagine collegato a un URL, l'editor non compilerà più automaticamente un URL dagli appunti. Ora visualizzerai un suggerimento "Collega a" in modo da poter usare l'URL degli appunti o inserirne uno diverso. +- Crea un blocco Galleria e le opzioni degli elementi multimediali del tuo dispositivo si apriranno automaticamente, facilitandoti l'aggiunta delle tue immagini. +- Stai aggiungendo un nuovo blocco? Se il tuo dispositivo è impostato su una lingua diversa dall'inglese, le schede nel menu dell'inseritore ora corrisponderanno alla lingua impostata. +- Quando utilizzi il blocco Incorporamenti, non visualizzerai l'azione "Modifica" nella barra degli strumenti. Ora puoi modificare l'URL andando invece in Impostazioni del blocco. +- Nell'editor degli articoli, passando dalla modalità HTML alla modalità visuale apparirà un avviso coinciso che informa del passaggio. +- Potresti aver notato che la dimensione del carattere cambia da sola nei blocchi Media e testo. Abbiamo eliminato il bug che stava causando questa modifica. + +Nuovo su WordPress? Non preoccuparti. Il nostro processo di accesso rende più facile che mai creare e iniziare a gestire il tuo sito. + +Abbiamo anche aggiunto una nuova schermata Informazioni in modo da poter valutare e condividere l'app (suggerisci, suggerisci), visitare il nostro profilo Twitter e il blog, visualizzare le nostre altre app e altro ancora. diff --git a/fastlane/jetpack_metadata/ja/release_notes.txt b/fastlane/jetpack_metadata/ja/release_notes.txt new file mode 100644 index 000000000000..ffc1267f2b6c --- /dev/null +++ b/fastlane/jetpack_metadata/ja/release_notes.txt @@ -0,0 +1,14 @@ +皆さんに朗報です。オフライン時に画像をアップロードしたり、メディアを削除したり、「いいね」の通知の詳細を表示したりすると、アプリがクラッシュする問題を修正しました。 + +また、ブロックエディターが大きく変わったため、落ち着いて公開できるようになりました。 + +- URL にリンクされたボタンブロックまたは画像ブロックの設定を開くときに、エディターがクリップボードから URL を自動入力しなくなりました。 「リンク先」の候補が表示されるため、クリップボードの URL を使用するか、別の URL を入力できます。 +- ギャラリーブロックを作成する際に、デバイスのメディア設定が自動的に開き、さらに簡単に画像を追加できるようになりました。 +- 新しいブロックを追加する際は、 お使いの端末で英語以外の言語を設定している場合、挿入メニューのタブが設定している言語と一致するようになりました。 +- 埋め込みブロックを使用しているときは、ツールバーに「編集」アクションが表示されません。 代わりに「ブロック設定」で URL を変更できるようになりました。 +- 投稿エディターで HTML モードからビジュアルモードに切り替えると、切り替わったことを知らせるコンパクトな通知が表示されるようになりました。 +- メディアブロックやテキストブロックで、フォントサイズが勝手に変更されてしまうことにお気付きかもしれません。 原因となっていたバグを修正しました。 + +WordPress を初めてお使いになる方へ 心配ご無用です。 ログインするだけで、さらに簡単にサイトを作成して、管理を開始できるようになりました。 + +また、新たに「このサイトについて」画面を追加し、アプリ (ヒント) の評価や共有、Twitter のプロフィールやブログへのアクセス、他のアプリの表示などができるようになりました。 diff --git a/fastlane/jetpack_metadata/ko/release_notes.txt b/fastlane/jetpack_metadata/ko/release_notes.txt new file mode 100644 index 000000000000..014b2bbebcb5 --- /dev/null +++ b/fastlane/jetpack_metadata/ko/release_notes.txt @@ -0,0 +1,14 @@ +모두에게 좋은 소식 - 오프라인 중 이미지 업로드, 미디어 삭제 또는 "좋아요" 알림의 상세 정보 표시에서 발생하던 앱 충돌을 해결했습니다. + +침착하게 계속 발행할 수 있도록 블록 편집기 일부를 대폭 변경했습니다. + +- URL과 연결된 버튼 또는 이미지 블록의 설정을 열 때 더는 클립보드의 URL이 자동으로 채워지지 않습니다. 이제는 클립보드 URL을 사용하거나 다른 URL을 입력할 수 있도록 "링크 연결 대상" 제안이 표시됩니다. +- 갤러리 블록을 만들면 기기의 미디어 옵션이 자동으로 열려 이미지를 더 쉽게 추가할 수 있습니다. +- 새 블록을 추가하시나요? 기기가 영어가 아닌 언어로 설정된 경우 삽입기 메뉴의 탭이 이제는 설정한 언어와 일치합니다. +- 임베드 블록을 사용할 때 도구 모음에 "편집" 작업이 표시되지 않습니다. - 이제는 그 대신에 블록 설정으로 이동하여 URL을 변경할 수 있습니다. +- 글 편집기에서 HTML 모드를 비주얼 모드로 전환하면 전환에 대한 간단한 알림 메시지가 표시됩니다. +- 미디어 블록과 텍스트 블록에서 글꼴 크기가 자동으로 변경되는 경우가 있었습니다. - 원인이 되었던 버그를 수정했습니다. + +- 워드프레스가 생소한가요? 걱정하지 마세요. 사이트를 만들고 관리를 시작하는 로그인 프로세스가 이전보다 쉬워졌습니다. + +앱 평가 및 공유(힌트), 트위터 프로필과 블로그 방문, 다른 앱 보기 등이 가능하도록 새로운 정보 화면도 추가했습니다. diff --git a/fastlane/jetpack_metadata/nl-NL/release_notes.txt b/fastlane/jetpack_metadata/nl-NL/release_notes.txt new file mode 100644 index 000000000000..a5da1a960a5f --- /dev/null +++ b/fastlane/jetpack_metadata/nl-NL/release_notes.txt @@ -0,0 +1,14 @@ +We hebben goed nieuws! We hebben het crashen van de app opgelost dat werd veroorzaakt door afbeeldingen offline uploaden, verwijderen van media of details te bekijken van 'Vind ik leuk'-meldingen. + +We hebben enkele grote wijzigingen doorgevoerd in de blokeditor, dus blijf kalm en blijf publiceren: + +- Als je de instellingen voor een Knop- of Afbeeldingblok opent dat is gekoppeld aan een URL, vult de editor niet meer automatisch een URL van je klembord in. Je ziet nu een suggestie 'Doorsturen naar', zodat je de klembord-URL kunt gebruiken of toch een andere kunt invoeren. +- Wanneer je een Galerijblok aanmaakt, opent je apparaat automatisch de mediaopties, zodat je gemakkelijker je afbeeldingen kunt toevoegen. +- Nieuw blok toevoegen? Als je apparaat is ingesteld op een andere taal dan het Engels, komen de tabbladen in het invoegermenu nu overeen met je gekozen taal. +- Bij gebruik van een Insluitblok zie je geen optie voor 'Bewerken' in de werkbalk. Je kunt de URl wijzigen door in plaats daarvan naar Blokinstellingen te gaan. +- Als je in de berichteneditor schakelt van HTML-modus naar Visuele modus, krijg je een beknopt bericht te zien met melding van de schakeling. +- Misschien heb je gemerkt dat de grootte van je lettertype uit zichzelf wijzigt in Media- en Tekstblokken. De bug die dat veroorzaakte, is nu weggehaald. + +Nieuw bij WordPress? Geen zorgen. Met ons aanmeldproces was nog nooit zo gemakkelijk om een site aan te maken en te beheren. + +We hebben ook een nieuw 'Over'-scherm toegevoegd, zodat je de app kunt beoordelen en delen (hint, hint), ons Twitter-profiel en blog kunt bezoeken, onze andere apps kunt bekijken en nog veel meer. diff --git a/fastlane/jetpack_metadata/pt-BR/release_notes.txt b/fastlane/jetpack_metadata/pt-BR/release_notes.txt new file mode 100644 index 000000000000..6bd39e60bc0d --- /dev/null +++ b/fastlane/jetpack_metadata/pt-BR/release_notes.txt @@ -0,0 +1,14 @@ +Boas notícias, pessoal: corrigimos as falhas do aplicativo causadas ao carregar imagens offline, excluir mídias ou ver os detalhes de notificações de curtida. + +Fizemos algumas mudanças importantes no editor de blocos para você poder continuar publicando tranquilamente: + +- Quando você abrir as configurações de um bloco de botões ou de imagem vinculado a uma URL, o editor não preencherá mais automaticamente uma URL da sua área de transferência. Você verá uma sugestão "Vincular a", para que possa usar a URL da área de transferência ou digitar uma nova. +- Quando você criar um bloco de galeria, as opções de mídia do seu dispositivo se abrirão automaticamente, tornando a inclusão de imagens mais fácil. +- Vai adicionar um novo bloco? Se o seu dispositivo estiver configurado em um idioma diferente do inglês, as guias do menu de inserção corresponderão ao idioma definido. +- Quando utilizar o bloco de mídia incorporada, você não verá a ação "Editar" na barra de ferramentas. Agora, é possível alterar a URL acessando as Configurações do bloco. +- No editor de posts, alterar do modo HTML para o Visual fará surgir um aviso comunicando sobre a mudança. +- Você pode ter percebido uma alteração automática no tamanho da fonte nos blocos de mídia e texto. Nós eliminamos o bug que causava essa alteração. + +Novo no WordPress? Não se preocupe. Com nosso processo de login, ficou mais fácil do que nunca criar e começar a gerenciar o seu site. + +Incluímos também uma tela "Sobre", para que você possa classificar e compartilhar o aplicativo (atenção para a dica), visitar nosso perfil no Twitter e o nosso blog, visualizar os nossos outros aplicativos e muito mais. diff --git a/fastlane/jetpack_metadata/ru/release_notes.txt b/fastlane/jetpack_metadata/ru/release_notes.txt new file mode 100644 index 000000000000..5881fe7683fc --- /dev/null +++ b/fastlane/jetpack_metadata/ru/release_notes.txt @@ -0,0 +1,14 @@ +Друзья, у нас хорошие новости — мы исправили сбои в приложении при загрузке изображений в автономном режиме, удалении медиафайлов или просмотре сведений в уведомлениях "Нравится". + +Мы внесли ряд существенных изменений в редактор блоков, чтобы вы могли спокойно работать над публикациями +. +— При открытии настроек блоков "Кнопка" или "Изображение", для которых указан URL-адрес, редактор больше не будет автоматически вставлять URL-адрес из буфера обмена. Вам будет предложено "Добавить ссылку", чтобы использовать URL-адрес из буфера обмена или ввести другой. +— Создайте блок "Галерея", и автоматически откроются опции мультимедиа на устройстве, чтобы вам было проще добавлять изображения. +— Добавляете новый блок? Если на устройстве установлен язык, отличный от английского, вкладки в меню вставки теперь будут отображаться на этом языке. +— При использовании блока "Вставка" на панели инструментов больше нет действия "Изменить". Теперь изменить URL-адрес можно в разделе "Настройки блока". +— При переключении из режима HTML в визуальный режим в редакторе записей появится небольшое уведомление о переключении. +— Вы могли заметить, что в блоках "Медиа и текст" автоматически менялся размер шрифта. Мы исправили эту ошибку. + +Только начали работать с WordPress? Не переживайте. У нас простая процедура регистрации, поэтому создать сайт будет очень легко. + +Мы также добавили новую страницу "О приложении", на которой можно оценить приложение и рассказать о нём другим пользователям (да, это тонкий намёк), перейти в блог и профиль в Twitter, посмотреть другие наши приложения и многое другое. diff --git a/fastlane/jetpack_metadata/sv/release_notes.txt b/fastlane/jetpack_metadata/sv/release_notes.txt new file mode 100644 index 000000000000..04db3f63bc2a --- /dev/null +++ b/fastlane/jetpack_metadata/sv/release_notes.txt @@ -0,0 +1,14 @@ +Glada nyheter, allihopa – vi har åtgärdat appkrascher som orsakades av bilduppladdning i offline-läge, borttagning av media eller visning av information för "Gilla"-aviseringar. + +Vi har gjort några stora ändringar av blockredigeraren, så du kan vara lugn och publicera vidare: + +- När du öppnar inställningarna för ett knapp- eller bildblock som är länkat till en URL kommer redigeraren inte längre att klistra in en URL från dina urklipp automatiskt. Du kommer nu att se förslaget "Länka till" och kunna välja att antingen använda urklipps-URL:en eller ange en annan URL. +- När du skapar ett galleriblock öppnas mediaalternativen för din enhet automatiskt, vilket gör det enklare för dig att lägga till dina bilder. +- Ska du lägga till ett nytt block? Om din enhet är inställd på ett annat språk än engelska kommer flikarna i infogarmenyn nu att matcha ditt inställda språk. +- När du använder inbäddningsblocket kommer åtgärden "Redigera" inte att visas i verktygsfältet. Du kan nu istället ändra URL:en genom att gå till blockinställningarna. +- När du växlar från HTML-läge till visuellt läge i inläggsredigeraren kommer det att visas en avisering som meddelar dig om detta. +- Du kanske har noterat att textstorleken ibland har ändrat sig av sig själv i dina media- och textblock. Vi har åtgärdat felet som orsakade detta. + +Är du ny på WordPress? Oroa dig inte. Vår inloggningsprocess gör det enklare än någonsin att skapa och börja hantera din webbplats. + +Vi har också lagt till en ny Om-skärm där du kan betygsätta och dela appen (blink, blink), besöka vår Twitter-profil och blogg, visa våra övriga appar, med mera. diff --git a/fastlane/jetpack_metadata/tr/release_notes.txt b/fastlane/jetpack_metadata/tr/release_notes.txt new file mode 100644 index 000000000000..bcd419e39188 --- /dev/null +++ b/fastlane/jetpack_metadata/tr/release_notes.txt @@ -0,0 +1,14 @@ +Herkese iyi haberlerimiz var. Çevrimdışıyken resim yüklerken, medya silerken veya "Beğenme" bildirimlerinin ayrıntılarını görüntülerken oluşan uygulama kilitlenme durumlarını düzelttik. + +Gönderilerinizi huzurlu bir şekilde yayınlayabilmeniz için blok düzenleyicide bazı büyük değişiklikler yaptık: + +- Bir URL'ye bağlı bir Düğme veya Resim blokunun ayarlarını açtığınızda, düzenleyici artık bir URL'yi panonuzdan otomatik olarak doldurmaz. Artık pano URL'sini kullanabilmeniz veya farklı bir URL girebilmeniz için bir "Bağlantı" önerisi göreceksiniz. +- Bir Galeri bloku oluşturduğunuzda, cihazınızın medya seçenekleri otomatik olarak açılır ve görsel eklemenizi kolaylaştırır. +- Yeni bir blok mu ekliyorsunuz? Cihazınız İngilizce dışında bir dile ayarlanmışsa, ekleyici menüsündeki sekmeler artık ayarladığınız dille eşleşecektir. +- Gömülü bloku kullanırken, araç çubuğunda "Düzenle" eylemi görüntülenmez. Artık bunun yerine Blok Ayarlarına giderek URL'yi değiştirebilirsiniz. +- Gönderi düzenleyicide HTML modundan Görsel moda geçiş yaptığınızda geçiş hakkında size bilgi veren küçük bir uyarı görüntülenir. +- Medya ve Metin bloklarında yazı tipi boyutunun kendi kendine değiştiğini fark etmiş olabilirsiniz. Buna neden olan hatayı giderdik. + +WordPress'te yeni misiniz? Endişe etmeyin. Giriş sürecimiz, sitenizi oluşturmayı ve yönetmeye başlamayı her zamankinden daha kolay hale getiriyor. + +Ayrıca, uygulamaya puan verip paylaşabilmeniz için (ipucu, ipucu) yeni bir Hakkında ekranı ekledik, Twitter profilimizi ve blogumuzu ziyaret edebilir, diğer uygulamalarınızı görüntüleyebilir ve daha bir çok şey yapabilirsiniz. diff --git a/fastlane/jetpack_metadata/zh-Hans/release_notes.txt b/fastlane/jetpack_metadata/zh-Hans/release_notes.txt new file mode 100644 index 000000000000..775eeedae327 --- /dev/null +++ b/fastlane/jetpack_metadata/zh-Hans/release_notes.txt @@ -0,0 +1,14 @@ +各位,好消息 — 我们修复了因离线上传图片、删除媒体或查看“赞”通知详情而导致的应用程序崩溃。 + +我们对区块编辑器做了一些重大改动,让您可以放心地发表文章: + +- 当您打开链接到 URL 的按钮或图像区块的设置时,编辑器将不再从剪贴板自动填充 URL。 现在您会看到一个“链接到”建议,以便使用剪贴板 URL,也可以输入其他 URL。 +- 创建一个图库区块,您设备的媒体选项就会自动打开,这有助于您更轻松地添加图像。 +- 添加新区块? 如果您的设备未设为英语,插入器菜单中的选项卡现在会与您设置的语言相对应。 +- 使用嵌入区块时,您在工具栏中看不到“编辑”操作。 但您现在可以转至“区块设置”以更改 URL。 +- 在文章编辑器中,如果从 HTML 模式切换到可视化模式,系统会显示一个提醒您该模式切换的小型通知。 +- 您可能已经注意到,字体大小会在媒体和文本区块中自行更改。 我们已经解决此错误。 + +刚开始使用 WordPress? 不用担心。 我们的登录流程使得创建和开始管理您的站点更加简单。 + +我们还添加了新的“关于”屏幕,以便您可以为应用程序评分并与他人分享(推荐!),访问我们的 Twitter 个人资料和博客,查看我们其他的应用程序等等。 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..fd0d87d56cef --- /dev/null +++ b/fastlane/jetpack_metadata/zh-Hant/release_notes.txt @@ -0,0 +1,14 @@ +在此向各位宣佈好消息:我們已修正離線上傳圖片、刪除媒體或查看「按讚」通知詳細資訊時造成的應用程式當機問題。 + +我們大幅變更了區塊編輯器,讓你能順利編輯並持續發表內容: + +- 當你開啟與 URL 連結的按鈕或圖片區塊時,編輯器不會再從剪貼簿自動填入 URL 了。 系統現在會顯示「連結到」建議,讓你選擇使用剪貼簿 URL 或輸入其他 URL。 +- 建立圖庫區塊時,系統會自動開啟裝置的媒體選項,讓你更輕鬆地新增圖片。 +- 要新增區塊嗎? 若你的裝置設定為英文以外的語言,插入工具選單中的分頁內容現在會以你設定的語言顯示。 +- 使用嵌入區塊時,你不會在工具列中看到「編輯」動作。 你現在可改為前往「區塊設定」變更 URL。 +- 在文章編輯器中,從 HTML 模式切換到視覺化模式會顯示精簡的切換通知。 +- 你可能有注意到媒體和文字區塊中的文字大小會自行變更。 我們已修正造成此問題的錯誤。 + +初次使用 WordPress 嗎? 別擔心。 我們的登入程序可讓你更輕鬆地建立並開始管理網站。 + +我們也新增了全新的「關於」畫面,讓你評分並分享應用程式 (建議)、造訪我們的 Twitter 個人檔案和網誌、檢視我們的其他應用程式等。 From a5a8706681794df627ed5a40cbe2d718c6565b9d Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Wed, 8 Dec 2021 22:09:37 +0100 Subject: [PATCH 363/371] 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 0a839eb05773..ccc44a8aac6a 100644 --- a/config/Version.internal.xcconfig +++ b/config/Version.internal.xcconfig @@ -6,4 +6,4 @@ VERSION_SHORT=18.8 // build for the day so I bumped it to 10/02. On 10/04 we'll code freeze 18.4 // and this should be the very last build for 18.3, so we should be fine. // – Gio -VERSION_LONG=18.8.0.20211202 +VERSION_LONG=18.8.0.20211208 diff --git a/config/Version.public.xcconfig b/config/Version.public.xcconfig index dacdc0f54f15..e800c4ff69b9 100644 --- a/config/Version.public.xcconfig +++ b/config/Version.public.xcconfig @@ -1,4 +1,4 @@ VERSION_SHORT=18.8 // Public long version example: VERSION_LONG=9.9.0.0 -VERSION_LONG=18.8.0.3 +VERSION_LONG=18.8.0.4 From d3c541d86beb2ab8fa5b7bba05f82727fd2bd370 Mon Sep 17 00:00:00 2001 From: Gio Lodi Date: Fri, 10 Dec 2021 15:25:37 +0100 Subject: [PATCH 364/371] Update translations --- .../ar.lproj/Localizable.strings | Bin 4619 -> 4619 bytes .../bg.lproj/Localizable.strings | Bin 3614 -> 3614 bytes .../cs.lproj/Localizable.strings | Bin 4887 -> 4887 bytes .../cy.lproj/Localizable.strings | Bin 3239 -> 3239 bytes .../da.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../de.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../en-AU.lproj/Localizable.strings | Bin 3057 -> 3057 bytes .../en-CA.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../en-GB.lproj/Localizable.strings | Bin 3067 -> 3067 bytes .../es.lproj/Localizable.strings | Bin 4114 -> 4114 bytes .../fr.lproj/Localizable.strings | Bin 5336 -> 5336 bytes .../he.lproj/Localizable.strings | Bin 4586 -> 4586 bytes .../hr.lproj/Localizable.strings | Bin 3228 -> 3228 bytes .../hu.lproj/Localizable.strings | Bin 3297 -> 3297 bytes .../id.lproj/Localizable.strings | Bin 3469 -> 3469 bytes .../is.lproj/Localizable.strings | Bin 3414 -> 3414 bytes .../it.lproj/Localizable.strings | Bin 3926 -> 3926 bytes .../ja.lproj/Localizable.strings | Bin 3632 -> 3632 bytes .../ko.lproj/Localizable.strings | Bin 3476 -> 3476 bytes .../nb.lproj/Localizable.strings | Bin 3832 -> 3832 bytes .../nl.lproj/Localizable.strings | Bin 3691 -> 3691 bytes .../pl.lproj/Localizable.strings | Bin 3214 -> 3214 bytes .../pt-BR.lproj/Localizable.strings | Bin 4574 -> 4574 bytes .../pt.lproj/Localizable.strings | Bin 3712 -> 3712 bytes .../ro.lproj/Localizable.strings | Bin 4930 -> 4930 bytes .../ru.lproj/Localizable.strings | Bin 5105 -> 5105 bytes .../sk.lproj/Localizable.strings | Bin 4899 -> 4899 bytes .../sq.lproj/Localizable.strings | Bin 4927 -> 4927 bytes .../sv.lproj/Localizable.strings | Bin 5070 -> 5070 bytes .../th.lproj/Localizable.strings | Bin 3316 -> 3316 bytes .../tr.lproj/Localizable.strings | Bin 4905 -> 4905 bytes .../zh-Hans.lproj/Localizable.strings | Bin 3125 -> 3125 bytes .../zh-Hant.lproj/Localizable.strings | Bin 3102 -> 3102 bytes .../ar.lproj/Localizable.strings | Bin 146 -> 146 bytes .../bg.lproj/Localizable.strings | Bin 174 -> 174 bytes .../cs.lproj/Localizable.strings | Bin 176 -> 176 bytes .../cy.lproj/Localizable.strings | Bin 118 -> 118 bytes .../da.lproj/Localizable.strings | Bin 128 -> 128 bytes .../de.lproj/Localizable.strings | Bin 139 -> 139 bytes .../en-AU.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-CA.lproj/Localizable.strings | Bin 84 -> 84 bytes .../en-GB.lproj/Localizable.strings | Bin 84 -> 84 bytes .../es.lproj/Localizable.strings | Bin 128 -> 128 bytes .../fr.lproj/Localizable.strings | Bin 129 -> 129 bytes .../he.lproj/Localizable.strings | Bin 150 -> 150 bytes .../hr.lproj/Localizable.strings | Bin 119 -> 119 bytes .../hu.lproj/Localizable.strings | Bin 160 -> 160 bytes .../id.lproj/Localizable.strings | Bin 134 -> 134 bytes .../is.lproj/Localizable.strings | Bin 138 -> 138 bytes .../it.lproj/Localizable.strings | Bin 131 -> 131 bytes .../ja.lproj/Localizable.strings | Bin 118 -> 118 bytes .../ko.lproj/Localizable.strings | Bin 110 -> 110 bytes .../nb.lproj/Localizable.strings | Bin 133 -> 133 bytes .../nl.lproj/Localizable.strings | Bin 131 -> 131 bytes .../pl.lproj/Localizable.strings | Bin 96 -> 96 bytes .../pt-BR.lproj/Localizable.strings | Bin 158 -> 158 bytes .../pt.lproj/Localizable.strings | Bin 156 -> 156 bytes .../ro.lproj/Localizable.strings | Bin 148 -> 148 bytes .../ru.lproj/Localizable.strings | Bin 166 -> 166 bytes .../sk.lproj/Localizable.strings | Bin 140 -> 140 bytes .../sq.lproj/Localizable.strings | Bin 134 -> 134 bytes .../sv.lproj/Localizable.strings | Bin 146 -> 146 bytes .../th.lproj/Localizable.strings | Bin 154 -> 154 bytes .../tr.lproj/Localizable.strings | Bin 170 -> 170 bytes .../zh-Hans.lproj/Localizable.strings | Bin 110 -> 110 bytes .../zh-Hant.lproj/Localizable.strings | Bin 112 -> 112 bytes 66 files changed, 0 insertions(+), 0 deletions(-) diff --git a/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings b/WordPress/WordPressShareExtension/ar.lproj/Localizable.strings index 7353ce1c2cef886bb50d74165ed381107da81cda..347d5dd9fa737130139de338c84ff7f3d985c576 100644 GIT binary patch delta 1477 zcmZuvTWl0n7~Z*^-JO};J*9G~ZRs@IZM&tEmVy;fV=r4^ZI`m0?S(?uVdr!^Fx_2t zrqpUk(F9^rZ{>%C7>z;R4DmrjBoc#{XbcZLKp;_4E}D>dC6Xv6#KbeZ8wlvb%s=y= zfBx?_^L6ueZ>iOtvE+5qP6GhK!6LxW5HnTB_gN1I$1chA+*LXMN*#jGwCo{J2JGHhZ|#L&qS-P_7DPa73tbVCQzm zjnt&loz2)JW2?@p@op`XBBo*$-55*cbj>D;V^b2Za6BT)Y<4=YSavo)t4xx-BmTa5 z#4%5G)D6YSRCYf}sD^ElBo6(LI2{zG9B#AADt8u9i}vp7C%U02+j6#%%~%UJgP!3Y z!iD@baR`4_Nhq9$hs617ryOVf%qVzA6f@!98!f@0* zlyb@AQI-0mr8Of1{al5qstYRMbp=rdU?d_G^Y&NWYM75yNFk_`LvjlBqIIZErvuF( z$rbP=4#V4?&2ZKGG4mLF=Wg^(Jhb4d6oz-DYPjqF7FwkmZyjnv8&E51gMIi}c*Q#k zL0kjR_`6};TPYC~L0yIK!*IY;U18Gc)o2ZhqE(L&JAs0=DSFn4o+K!Q))qfX7s>`o zatnRxg?jgPctdQ1gQynf{MB5RvVBu*h363u_s~j;*MyqsnZ$d6owk_(}h(X)Uzn+f{*+WrWwNSr{Et{1y|giFyrnB6v;KA^^{%| zb;1q#F6@vSygDV@POk`D7dOFW->S+fy0w9JdMJ8?S{P6wArT5xD`* z1(wqH5PjcByR}FBVc3H=LqD#bD<;uY7>>F;u6frn*GboD*XORwu0_`muAdnfQ_q}W z&NAniOUxqk7aLwQydzA}k7bPyj7QRa8M7&7ybE zSLi&tgl@UZ+(RC(XPu|hv&VDDbIQBTYkEHs{o)!iC%!Ho7f*{9#6QHpB~Dr*Y0^>Y zv~*E!kk`sD$%p0laEVV<6AA-l7_0Yf_feb3|QOC5ybY_$;nuqgyF|uJiZJ1hu zCX{eawTXSt=>}B?>BE+)vbZrq3I=lnikaF4?+6uen%j8qbTpw`$}n@Yub-*pX~alz z7q#N^cHFFP(JUjRs>^9Q8KHC9l3^XcP_}8RlX*{?ndKNMDahONb}$?0C8YQ!BYJjG z&t@mas6pcv+~6N-EwvLUiHtU9DQU*ocEc0~O+`Db>4tXDp!u8AHWp=2TcmK#>95>B zKoh#A45cmIOl8O0(`jRQA`gP~t894i9rxhMOm8YnGgc1jw3=B~w4|n|V#JrHqbwC@ zP2_)`+u0P{s5XtsQK}`Fw;0*@KfVDYkt3WPS9Qx^|B~A>iMJ5HDpx{E+zZc3HE_w} zcbO!F8*vnBq-`L{RV8ych$DChZpT}2$Rzc+4@|KPnxr-;^|nD6*Lvc(3vb6^lWbzG zCV1Odf|_oQ1#Fd~yh@m9HQ+Wl<*9~ZS2uhj2PzD9Z3}L}eR#7&$=&*I>Q{LWq&?MQ z0*7%E?!i0ZBXJt0T<=3%3M+B8)sF8oZ~$-1t%dGbKjyo?Jb$(^*Y8U(jaK%F!jM=4 zi1?97?qZG`V8LAtN3b6{-9Z=44R^t1Tmi4(fG?S=8ySHv=CK_HeIdrkUtrWxPT8x8 z&2;04{me&cfobnwaLyNk5fUm}VC_~My~AINr!(BlB!eto5H}XOw#6W>$8EM)8>7{S zJLs*9u)Qb>Pq@E?Fe%%#$gTxhpa|QIG8LPEA2+jCuSrVaD5;a|)d=3j#%jUqsbzH( zcd#mgL+}}?hDS(uA>mGzuZMNI;3vF!#o>0WI!-!1cC0ym;CN2t!rTZK;}*Fk?gj25 zx5lk=|2RF)a_4SmuXE6uasGw`Vh@s&Li2 zmRx6Cmt9xgW$v{5sQX3tbrFj-;;gtVJ|=$adCGI%v*x)jZIpu2R%t-WNH0rgrE4-T z`{aA%UU^D>RQ^g{m%lGs_d2{G?*rZy?@Qh{yzhDc^i}!J`>yzYC*`D;bdUkEK;Ctd J3-C*^@-N>;iW~p{ diff --git a/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings b/WordPress/WordPressShareExtension/bg.lproj/Localizable.strings index 623e2cb9306bfc502dbdf253e9ad95c4320529eb..85386ae6913bdd25c2faf07f83aa68500706b5f4 100644 GIT binary patch delta 1504 zcmbu7TWB0r7{_OJ&RloWOq1qnNKTU`ZHcCdH6|ua(%ed$rrWSPn|rdI?wssScXnnw zGn+I*txsZUA50GgUmCE%7ZGe81o46*7%vY#C@M-KUJ#4WN(%~tSkLUH5n=_!hhb*U z<^O&E|My$2TCRHT_|kA~B(Be*y>t5$N#l_-DKl-^nX``D?sa767tZx8P7E7X3Wl^a znu#Pe$FLG`&~a=hrWCfojO}_bn=x%oNBZP2d6E65rY3w!Drp=W$(}Y1H>vh%@zmG= zn$xnT7gLHO+B|}~qs@8w`?l4AgF+4d8u0j{a2~%ame)q2;o+FF^9b_dNx!6Pc*rHf z6N9?p!4Xmx{}?=58dH?bB3n{1r55+{6-zfn911k-{A*uJAV^AGVXN>fK|VDdHsVRx zZ(AO+Jk?j6?bob0GNGHdITg+5nunn8Kcx=d7zE#2<;Vfs6KLGUnnHwho`-8*w+k z2jAkV#qoaPB|-YelkW8_oNQDMcY0YV(?5YNt(rEZb876Ya!bsD}WYiEk z=h;djCt*fKyFX`qKZZTBsnAkfo$e18_@#l3bD<*W^lt5jgu2L)1tJFKxXVeDu z9rY7U(GBzq^c(cs^r!R&{c9i;&;ri{UJASw_$F{GaF?N(0%jlcIMd1WF-MsU^DJ|f zSz*?gkD1%dFMtLTs35Hj5JJ-6dGI>;3VhFwvuW00FJEAPf6h0Kzg?r*2@d@#$xFEhJ zu8CiYx5azXUa3bKmL{e1(lzM==?m#*a7VBuI30W{xEx%S8{|%TNY>>iWh}obv+v96 K@^AQ$0{ACix5JhI delta 1451 zcma)*Z)_7~9LMkOdG4qg@X;DtsZ2FEj_Z&)zCAR0rQFNh|ZkYV=5Xw;}L6kix(j4{42`o{PIpKCi(2PQUY z+PnMx`F_98=T`hH{#TFD^wO~%?T^ReD3MI<(dW~dtg$a;=FVE(wv%7zT|8Hq?vKY6 zM@!mRV|G@Z9Mp^$%IHS2qoV^?fvq6wRq&Uf5nq7cdCn=51;iopV%`xQlwdWl6;iifQ!VciATVCf&S$W+<*Z${1OEV#L(qCG$~l z?Gfa}Qm#Q;caTj2QPn~YO&vxFEuV3gZr8U=4-%P4(<(&0b>;DHz3aiv?{lEkOdZzk ztZv(r<0yk-4qlZOgFaWR61TL3qvS}Wt{O5SY%1D8C2Ri<0hblwJgHbl7C0J zbnZBc>zXo}b9B?NC;D@_OkuKQos_lVALz5Av%`jsETlSC-<7xdCRE+Yps2S(KAvVeHbJu}^jAVtn}XZn0DKw- zU@z>3M_^zBp#2Y!c?3Xd*a`<>Cp*8ZBTI3D;pJ-t}x7~%R{*h2^aD=hEd+1?m5Xo)8jU0AWS}l*7|JT_C$e9!I zgrL?cH_;$TEf4v+uAUv3J;S+3(qV+&q9`5`Pm6i+CGnd0vG|qr pj5H@%5|(aBpGZH;lsqk8l(D=bugdH4J^4?n_+e;@!k+4ee*hbrr=b7< diff --git a/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cs.lproj/Localizable.strings index 9a79013e49eb15a6da123b121d66c443196aa464..8098043d8d9ee7a826158a0c5665b25543960789 100644 GIT binary patch delta 1555 zcmZuwU2GIp6uz_bv%8(y-IC8Ga zyRwba_<|aEussln@db%7Q6Kcdn23lmkwjF`7&V&Ii25KV#X$TCF&gjeZi+-R4>P&v zp6~CRIo*4@_qkNt{zryGBeBu=qlsiHoym^n#&^#b*U#mKb+e?#@C=zqPGeg)i|QWR zw(Ptd*{YT;$5kt3!@?TT#)s*P*8BVW^KxsvGHK|}w0FOZi-aC#n@6eLc&d~gA_ZJA z+`QbD#8skdHZHggJj>jfmwW1`Q3F(8JABLe!S+45vmd+uIr--3CjWiCV%Nllx>cy0oJH3pETC*y)>bRC&Q>TgTnO_c%c;Tfy zcbNp4v8p7U(p`h(<>>#I(?Dg~;1}P@)dw4_jd&+Uh^Aw8wCw7Z>C9j231o+KXGV7% zxX!9uGD%{PDfd7FzpiX-K+{wg7o9^1;#O?ai_jZhDo*{vN?) w?WM+5+Fh=H(3_ zF>B}l3_^uj58IeE!LdPVu}JMeC-->buGvx$YA=%QEL26;kclh}jiWNN8oAT- z;~K3P2qTSFmf&4w7hDYFU~kJ+rW2UJ7MPd%ASXrP*T@yPByMM-^mIE|LOU!5OR!Ga z1TB#yoDX*G(NUbqp(W(h!K;X%l1T|{RADd`;3AclGBT9o4`HQ`!vKZGJ(a3mmp2AS@8aU!Ecs9HvJTYFXINsLInpU*}x5Z5xlXPDUl(~}!jnSep zQcY;K@b7%#{qSbilGj32?DGaRH_b@(ad^pV)QCaQ5bZMPIF?WV9Y?3oIrJua4}F0a z(f8`-*k@=iiWPbO>eAsu)_loa=?>pa;?-t9jA$9|MKf8@(~s z_8fbOy~5sLf8!Xgh3n$ha6{aFZiYL<&ArWi!~MXI@iV;5pWt8QU*kXEFY{mWi~KDi zB6JAd!ge7p)PxhlTf!CLE8!=9kAF6>FYrX*rNHID&ET2fM=hN#Pqn-*vSPQmSsWIz z_`LYC_=fn7)Fve)A{~>ymVOLv4LuOrA0nZJ(Ah8-R>I}*Cy^DAYR delta 1455 zcmZXTTWB0r7{|}-%}4il)3iy=Xf8EY($-Roy*$LU#nyDQ-JRWJlcwuQ=IrjU zlbLm9c6Fnq6{JwB)b?vhK|!ndphyuEv0iG45Cns5q54uPlp@-PJcxo+Q9QF7Z9#@% zF6aCH=l}nmbLRWz`(9OB_wIXgIJ!SEl01+~tC{TRSZ@4eu}2si)HKD#MF+62H*#sFaxkS&my{vPbcyMzkK^ew9QF0VgUoYavu#hPX`*yt|Znb935 znsJS<8A&k*>+*WEF>pJ+N( zMk=munNDV~QZee;CI~v->A`~=%+rS__L>f{-3HX0YS$H9#JZW6Vof?qb%j>8xjgr> zS#hI!G)7YdYt&m_TJt}?y@u8x>||8kHRvw6CzEg&@xI7frWdY6x4_qOyj4djRAn$C z$VAI%z`Fp8kHOJ!x}}KH$VE1~Nyo|vThc?ctqXn-w?bQNaMKJLLM2p3QwSpkIY^@d zMpLMalBh}t45ZUe3)LDLuoT?~c60(Zh-;xckb`1meVjrbEW1@~=(AQ0yNaci@hqH+ zOam*f7Bn=DDoh7*p*>WF=L44^9^Uyt0cEJP#mrH8mogmD9M{Gs-7$@BOX`F-z<@Ky3wbN7^;hkVF)ctXo3$BZ&>82{tnQzic zgSKlP9C+EkUK~wTr)<4US*(KBg#KUym_^UyvG8`_W3d)OnUyKCzmS{F)~9UjLOyl} zu1Z^BM&1CO{?+h7C=Dche_MeN8he`)IGJnbUg6&6KH(O)AGu$- zJ3QjM`5pXe{!RWp{&W5-{(Js9f6IRu`ThP*|5pEt{(1kEKzHDgz_Gwm;HSXf!QH{P zf?o=4!jLc~d?s8IZiM!TaZweq=!oaV3*w@9C)^j#h3CR2!=HvPhA)Tzi1;F#BS#{~ vBd4Orq6^VqVxib%Y%X>@b|&_l)FCZM*QMKXi`*qAWGvhAhw?@Ey+!#4K;*tr diff --git a/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings b/WordPress/WordPressShareExtension/cy.lproj/Localizable.strings index 7c17a29b1472de83b2e7115652c15343177c02c8..47c10e5fdadf80e8df6c81a3c0f736589b7ca16e 100644 GIT binary patch literal 3239 zcmd^BO>7%Q6kdD%v$k8hZ7BVrX{Uc_3a)9Ow50{o#7X~1-PB&kNt1M$c*ovt)-%iQ zY}`E}q^c5?kdP|4mY#|@A#njAxRe72I8-163LxNwL=O=lapUc-BrUS z$^fZh*W{|)QNl9>X*RC$Fdm~vRC#Bxy4%!{r8CYPgyB2C3*w<**QGJ$+6Y&x%%vP@ zj5vrgj&whwMeK&*I0mDLvsRI)K{NyVzqxKW$T2v{Aw?&s1b3)UYZw%Gw=rins$z<& zI;N0|>%>_c&;fuO$`ntT@T?s>q@z?W4yp3m+vi67Jf8 zg#BSthJob!OotBurlZ_vS*8bNuGoy$Mpf><4@qrAs=RHPt$tw(Om;4_V}YL0JhZhA zEmUQD*d!R{%ET@OHNcRe3bVCgn>aA*mX!t3)sYckZ$HRYSp#9Jfz+pA7Ti!4;lyK* zDMa+q!y}lxtREEqKR+P%`V!O)B2pBPwLj1c?YtY&T@KX}`Is^vbm=%V!4Wv>QWVc3 zw;k3$olr}vF<-Hn%bBEPOLU!(PWjON(j3y`s+ioa9Ro+yDGqMTuOMFZB-Pu51 z11~k_Jl2|J1roVsg@8H#yWU*NWA}c(JRVdFuN5$B_xNx{aWxFf|ICUXRueWJ9upn` z6E^&oJeUnH9p9Gu!aL6y(xl8`8mQW7nkI+iSkt@)p0 zo40gr-L`$lLp!@4&OXx9yX(>2dmejy?-PAb?%V&=(+A}KgSmmhLx-OkI`ZuBl9Bw; z(PM?8RvIghPaL0|nx3gVhqrXiR&`R_SvSlRC#_u#%IxR&I^6a4&oxht_v<=xah+E( zn@SYVS_HWadA7x{j(U;JxZ91oEFINMi}0x&rd48@w4TjoE16YA13Luy%ySTTnd2ja zI3&1*Nz}X3%>@%ukxrj z3vwHk%!Wm3gbmK`vVD;i?Wb7~qF5>n&xB$i9`0SqY%bzC5{P9R%w-&5_{?_?-6BT& zW(vgh94bT>TThm39lHb#oAl&u3czYnV5(qN4U}WlCDhdp;wn71F~>Yhr`uc<*e2}E zA`RPO7l*ix4_=*`5H8_rm3h=fIwKrW<|0EJ*(OfIrRFtqZCz%qJ>JpM{iAh{?(bh_49x)X!C>7r4%Iz9}X z&*R*2h`3clU?jTbz_F(JHYpE~8ul!=l3CW;TP(4`P*^dZ1N-WL{tb7bb}$F)+gfTT zDI~5uU~-}SSdmzy3OhKX7QrB(g*^&3gPN$!9DURw99XjLZg9Ac%)qCG8`&yrAWU`C zz$XdfUO1AWwHTOyiUJ+D1#NYUqVPNnE3RXcfhpKzq^XTT_Rj9l?}#h-iR@ro+Ug0YNoClUW4R2Y4>@+YKuDvjhPE&0s$3mI+Z~@z~aOx|Wzd&qBrU{_R1p>jzXeG0z&G``Kh4d(CrfY$Q*9qTh{NLp8>H-X3 z6L=va8$=SD$Zy~~3*xfo>DVH0;{QI2$8)~Hh_0J=HH_~@5QEVJW)qHv9S;q#K#yDI z`GQ>?IiJ#|&r!~=G2oHat5RP2U9$eKxtzm#b5et*Ja|n6LfkBuOL@X^Z483h#9sSE z+;oU<8_m;)ndR3#c)`^u(~l2ZO&=r;NM1I`U7wJB2g zm=mqs<2gJ?oAZ$V(;NQx7hagU?l-Q3trfpxAu_iK zUINLxc<@RI=?&?O^r>`7`c96@Nx4@(CRgN!?8$G*7v)Rx75R@yDzYN7FESL#N1Vv7 zN=!*9E0i8(kJ6`%C^h9}<#pw(@}Y8G`B=HEe5L#xO-4JStD>i)??pd}UX1<_{VjSe zCdD?#_QlS`&c!~8eHQyX_I2!=*!QZWs_HtmU(Ks0)YIx&^@94X`ipuk9*J*>AC1q% zUyZ*R{~&%jel`AMB9(Y8@lN91#QDS*i7yjZ51qt*`XiKLOb-BoqJu diff --git a/WordPress/WordPressShareExtension/da.lproj/Localizable.strings b/WordPress/WordPressShareExtension/da.lproj/Localizable.strings index 04f65a86ff9145d23b99703321b5ba1117dc06ed..7a253641d7ac78dbf0adecee69f865541363ab2c 100644 GIT binary patch literal 3228 zcmd^BPiz!b9DchqJ3G5;WdM;sQh0zZAj?WY5J82dEworl-JR{W6c}E2UU#ND`(~VZ zyQOzEBx-^O5)&^fH$uF5(HOm`i3ek1FwulyGr0vla+R9a{A6xVI+I8zUJh8ET(`LM7 z>$WF5I=AoG`P8oT?#$DBy7umSX8(a_4?cJ3@bfRcc;smISa(nF@e^ua|H+ry22Ks0 z9(p;K*9*hNk-(;6Xe+v~=LQ_tJjW#_HO~yd2RzSYGKRKls5TB5EOFi=WePWo&0G30 zQmPbt=me=b+|X9%Nu6TTClkC;&t-=UZCiM^!!faEx!esff%nWQsE5N-7f0Qik4dTI z))>d8O9RYYjxABqqkh#60^4PnyUihSm6|pY-??Q6IIua*VBMlP4_7#AR&55n`-Hnb zE)j-H7GcnfTQrzkFaUsS3yh3A@T^t4K}Wuj8!)t$$0;v`;6;xB(2w?-HpfFin1k|& zpgOV+L!YUTuCimp6fmsTq<#*;TbGzWjRolw&?zvqE!}R-G1+#G#fmW}XOtvp_VwRqf zZdhv>R%mGckV6Uh${{rdY5ZA=!z1urS`>xf&lu$1T!OhlM7j>L7KWZ(=X^x-5~?ZkQGKT9LOZ)CKpc1K z`m{&K`dL7I9xipbp(Y5&L2yN#*iM)rVL}+%h6Vjwv=?&}+~+cVkY3~?!V`?tSxfv& z=hYoA_x77 z$_w}S|BmGe)IUqkgNWz+30f^2pQJt$;Y^(e8qOeb5zo|SX25O7fyk!tA7$B$E@UU_ z_Oc0mCL9|>)yh4A{O_{(VN2nMCw%WWcNe;}nYNXtTm$ej2WLB>w<{xA#%hiuv~a(v zOVJ?If+&ZqP|+Lc3c89uLZ71>=qCCZ-HD(`XXO3JCy~!0-$ial{)!GpN%ZyTwdkkO zpQ67-?@AG=P1+$HkPb`7q&~@$E=gCUtJ0U!H`4FYpK?S_%IoD#a*upcuFCJoAIm?= zzr;pj)tDc9GxkC3dhCnX*Rk(oH)D5|70Oy=qtc=5Q+k!tim6O0zH&+VFupV19WTat z{H^%y_}^-~npJgmN_|y*TYXQxu70K7P=8QwskaktiH^kH#EHaY!b@CEyqma|_%`uJ oa#QkX@jca-$nM!9KcyP&5W7+Z*53O9ay5r$Bk92lDx)!fn zzhPtdrp;R(+q$ji@$3`5ecN|Dx$~)AyPxiVX3ySdpWCP8_75D;4<0&vWbo+oONNf+ zj}MLfba@+8LwrtS#plg%Y(qFFbx7PnEQ56ek%_* zCZOGpWvpEwMzg@#EL#>>(SDk_Mifhhp)<{9;INt7GBy;+6pfnYJD%`DOyE6RJyeT5 z-hZY*MI+#{$ujkL$+wB1c!=@IMFPNT8Q@fbRUACvaY4B-_mc|jTQ}e}T$^teIFe1u znZ+jYWtM=7U>dZ#FeX(Zm5SHk0^1%9G4}*^$eOf+1tEAxy%UIsZEtmKpD6AMA0QqWw{=B;oJDP*8wvyUO zY7$pIz(U#iks@_z1u_J~E+x=FmozxY4BftvGRu+bdJrnCf@fQS+uxCLeP$e^$vhLzL^PAz7XlBk3|3-_XThjmU6!DPLDL@zT55==C`X#KwTf$G`uK_1dTL?n)x zv)!?brA-r@!*--O^_FoH#8%5p2~@d2!8ko`8Ee{yC&u-;OxI>q2$ z&;9MVqtbCXnF2pq)Nr8<(sC)|b|{z&qSk0oiWI)v?mO!E9~ee~lGM$-hW>@BDrkoL(7g6+zDa}v#-*n3> G^VZ*-s22?Y diff --git a/WordPress/WordPressShareExtension/de.lproj/Localizable.strings b/WordPress/WordPressShareExtension/de.lproj/Localizable.strings index a7b2b377fe633e4504bdcc6a8ab5d22905fa6558..468b53eef33ec9afa36f638ca4f39cc9194a403c 100644 GIT binary patch delta 1535 zcmZuwTWl0n7(TOe+3W1i&H|;hz$r@$7->Kv#PUK*OBC8tcW2w(mNJ>{obHaDon2;T zi`9^o7c~(Q%MXb$DuE^>USf|KC8F3{rXZWs;pB>(+Dxnj!T6yNE=HV$QsVj1tP zS}w6%#T#{auVxjAi5=gKsa#FhT!KBDRB5&65y1=9x{V#TYA@h2u|4s3%_E+9il=To zLn_sIl2Z)VB&yW?KjL)2ObUJqtm-)Aqx$wvj}YC^@WGmER4r%mW;!%6XgC$aao~Fv zZyV1NlN8-4e}0o$zF*g|tCgI?8RFJ$%d^l6PZ^_nVO5|<$o1E1=E5mH&8pI7h%xII z{|rN&*$6wBb>aM8DzQZ6z-sPj=ALZn5Gqem=xkML%eA`D3g&)#&KjP&ds1$BTu`V# zT1hi37-8ERin356Q;%2p)sc<pn!fmUq>F)DvEDW9Swd@Q;iJUX=}{skT@njZ zvmh?EU3^Jm8K}i}!-&wwR;6KBFLc0;NCSRP?t)8+9Q+bq0ljk9X4+bxD%NIZY*H+H zq~+#TYIAN~qg&SG1?PngYYN#Kp@k*3RT#3|S$Y!7D;P1MD|ig9Mt8$A!rD~AD-f}^ z`VAshRk{z(2Gj6Vs1t((b_7WJjdX|Bp%VWMUWX z@)j5q+Mq7Wjj0JQ5ZfdUvBv#(6hhCTGiV9DgFZx8(K5P)eqa#O!<=K@XFg!QV3wKR z0;2&f@O0p{z@@;A!0o^tmSIJ9GrN=B%?_{+vo-cv_6)nkUS_YbKeE4a3>V?rxpmwi zx1XzUFL3X1*ST-`JYQ+>Hh+RY&%eQc!hgnp#V_-BgoMy0bPC-4flY)z%7$LAaUk<-|BnjMJGPZPIho5;0L)pFdqbXCJHLF2l)c$!^L z@8?@$2dDKy8I4+|OH5bYg$s-H3Eu#{lRZLhuKhtZg_p?OG^toijeU8!BV9EttPu@u zsdpWMYf(3dI!PXNRTb>!Ww|M^UVtofguW$o(R1vYd$VJj?xHDBlN*OF4H|h_*+bky z*|Y2DE^&a6sxDVaW;ZF~n&F=Mq;1{oC}=NP_Htg1HQRgjo-q&T6%Iu+yLG3cJI+js z7^L9R8~h_%TRjIzvvJWyRbcF?few=v!b?~;@Pa`a-^_Yg&?K%9`mwJ!erSSdI!61e zu5Ou5I$5n6%QFoS@V?uFN3XGmSLXJb4zb-j)U0YRBV59|nU|vtI;hs9HPaZ+?QEKA zRF6hxnqUpI<>fX1AEfWu}8 zQ(($)Hkq?b!aL}>&<4(u@1j432I;TiP5yL>0CsvUbdR7m=E1Rkkh%B+q z`FbOWZ4nlrW60xxf5>1#?49f=JGW<8arm#Uk=Od{%~ikO=ku_ETf%nvXk0+vlUmzjz;rtDbL z6FnZuT{tHS>`;XnXLP7pWDrz%cSV3y@~R}B>F_HSR%*Y4Zt+v}V3*}j{czy-N>ZZo%y8{sCnB6pm7l6#hWojcF1a$j&) zxnKAIukfAxN&Z#-ef|>vGyezwm%s?U!cO6ga8`Ij_(=Fn_*VE{xZz)6{Cc8YysPP``m7T6a!7NCLOgJQ5P_)h5SupC|!-WZ+=XTsI+o8h0N zh}0`>lMYB}XW7vxptW#t3qOXa5WXDkuh OADfGvh@GV8ThYIth}B{M diff --git a/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-AU.lproj/Localizable.strings index 9fd4f038c934cd6d91c7b2f5df57846fca667153..71a5b13d39b16a749fb29abd95d80d0b127b6973 100644 GIT binary patch literal 3057 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 diff --git a/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings b/WordPress/WordPressShareExtension/en-GB.lproj/Localizable.strings index ae86af2256ee37f1468526e08cf066e2243ae029..f36ad1be5ce36806e3c6b901bb0f5ca93fd6b0a8 100644 GIT binary patch literal 3067 zcmds3O>Em_7`9_OaWYE1jnQtj+qZ7*N|$BrU}bdO*59#}uI(D9Y1bd~HU1h~b!^N2 z(yq6i0EwU5B*YDNKtdci0EZz27m(nv3)&8dioaVWI80(^-p@|czmye*1R|=G#Qyxg z@ALCM>8xv+K5cFNLFwWnf+$5}ay+r?v8uGtQ&Jl}D)^W6ChU3_QeRPffom_3=NOe zUL8%V@O)-0J3i5P4W6GoK6PSxMtkWLo;{t@&ybF}&b)DcTk>V_1FxYt)=LuZQmM*D1I5(f|BXhWD zQBB#K#tQ`L9-gCNJ;(0Qlq12_MoUMo;ZVm%82(mIK|K_lx<26)J%n>Pr)X28JH$t} zLy^HMy2LA(zHd4`G~KJraUQb;ujO2a4Atrtuic=s@MJe0#W${E;( zUeqA|`hq?HtjXAT)`ENG+94h3%;=z|?7m27E&$JZ_<(+*UpFZl0m3XU&0%hVGdY{f zbBJ@{Tb?7RNmDXe!*N_ciF~I(U_>BqkpQwq&tV@86B_!V3MmBGgCVK6gm504b`llv z(kwyHXEC5FZ<#O!46Br=Uq^7mHuEPDBYh4!`I>UL*C|@MeT*U|F`_u{17Fx>s67IW zH`Ff6f&%e?4<=nD<)%i>oPl~Bn*utOkuuYZ?HsXI(M@Jt9fKsye40|roJY_S6Wa%E zmXJX_W~s6z3A3ci+K!Eqg0ny}s!1)PDUB6iu6Zqq+5)JWvafB`T_+4=7*3}Mx-f+Dja2ltua|&;lvs}7OC~Sd zKJjQE>R9L|2*)AViUn+1L4pJcp(zKp^e@w%9VM`Rj;#)n>$L3oZDP1$_Wti;wo=4y zRpQ?W)}vee&+HgFs;ubWj@E`?n}dow3fF%kS06P+r$gUcm1DG_?0bf4Eh#qq5dC?8 zZVJhr<>QW$v8AGz+YI@r+4$dy#J`$`TQ{$if$QUMo7}70p#P>l;biVL?k0DO`(uydU{2@?+%J$bEqqs)S~tT{tWB2$uv` zcvZM5+!DSL?g+mLzl*$>5ci7*#XfOBEQoK3x5e+oU!-xVAbHa3(!0_J(wEXV(miQe zx*x5M)C)o4EYMof-1#M)!SvG-!PV?W7~Tq~cG2jmHv$T#FS?cCjl?e4j| zSGkx-AN`0znHqi6@PrzSF9b+Q6b(H1WP&7wkAxUwgzzGPg!IMTZqppGzW6qi`OokF z`&x~y#!jUNQ~mtF;G1tX3>}Id9v(>_8EqZQWVglD#P-~H{`s8~FLX|J9i7^_ zCGG8f`|(^se~t7O`wo;|FHaoQb>!iaOEJ^gIGw^)ftZF>>hA8Qjj$bR3ZlQl7(K~K zoH~k2gnlaSp)2f;u9<8ZJN_ghj$=C;w}If6AFa-rhFjK@BwZ3)=s7kDcKfGffYXxA zWrkF{{6`n%_%=07j(e)=Yt$5Fo!Ht2`mMa3eg)#M zP7dgXherLSM~7{!hw?S0d60O8av;$)JmUJ6sA{c3^8KWUtERW~L+g%-luxl_J2g$& zvJM^02mAvEnh%HAHo^%S-Hq9o8e;GGjwLzYV%Z_T<% z)u|y|!iJ?OO+9POP_<(EGKoGOhEQ+IIvX`GBcCBy_ql0GJh%P>g$OUAPE$uk!z6A_ zH9V7ON}VP;%Qw&!p))!Y;@9UMB%RqMuTm58P|1(hfM0$5?o!X5A=^ZXc<6=kj*_i5+>8VfV-+62j1iddO=@{R3 zA|ggUjx0wmMy^Kg0TxK02aEv?%!4ZU99#ic!Ea!dk(oB8j~QapjKe&H9F$=jd>Ot1 zd*KKy!bSKI{0yFj=iqtx3%m~hVkNejeUANvJ;PpLudsixkJzVNgzMn?xMl83?rUy^ z`-!{3-Qs@dvk{)>6MTvv<4t~vzsTR@|KuMFF`-|`3N_&aVOh8&ToWFMMe%*{3-KHA oXYsE1ww8wFcANd;Xh7MbUN5T(6NEa#7)5;IE8`RAAcr39yJwEYBCadN0qlIE=XrTh<4?Xty;nEnf_QN!);i>Ela*0)i zBd%+^Wp&wR=-8eQ>yBw70~>qB*kJcJZQ4{;+b8PNCh=y1=N(kV?6A-}(uR<}zc7p| zsBZdYHJL@T7#c3B_|1K`HBeT2*eUJeJLz|!Fm?IE11obDnl>@??G_+x!e?`tv9j7W zihaES<`Exz46QU`5Fbu3g0x3GkSwce3;q_!!m(bO=KI?Iy}@`whQ26v1+epbGen<( zDcka~A)#W{`mCN8VJ|0B+zkW11(_!X=7Hc^|_PVL49L2%shiEVicS9&6aVdB+@=h0sT z*q_g06YKtDbAN+banLZJkE-6j4EF1;6<8Pqr%f=ubOqlhncH$@OPD-OW4p`h%3P}ltzb5=Ss{VC+Y)YhT+*07 zsEUY1cMF~Knl|U)$(@#mUB5v(-_*>Cl(r$7MZ|2R-$=Kt-tix-Uejoxd4&u{21`*( z<40M$+R}Dynx$f})UahDo$+aJ6c{2C>UPaRu1_GVv$~l*;Je5`(5p`q15KuoTSb;( zGmZ3ldF|?Aqd_`y^Lg8x#qQ*U?Xtxc<~RLP>7`s`iryJLNY~3fePwm|_%!Pc!E6C! zw22+Ga$nF&&P{bTO2V-jabO701aFNKBxl|*z|8{ zU}smhp`B&7WCph2wCyrqY&qx~+ zrD5zbznJ2(x|W`my6MJnv?D)a;wo{chJv+$7Y%}4Qtz5%(^!b0iIxadzy!Dgs(>&! zM2|%JrNW?N5}j^H+)LjLKS-Yn_tX2s_asS!ozJ*cfelOj8hP|B zWzBqH4C6pXDNCw#7PyZ=1RMp&!3ppl_!wLSm%&x=D+jnf?hWoV_Yrr2yUg9-(>&sj z@Ne@U^565<`0D~EB!qRseZp2@NZ27b!ZX5g;e_zH@P+WZ@Mnk%$)V0rcW5}YD^v@; z6na1OP3Q-)DAvSzSA0%%-NJph((#z6G>3p~^ z{A&1<@Yms=BZe8%4-ugtiwY_UqGxu`7ij*Nx99nN z=lA_Q-)H8)9C+1i9@_ClM&CI+GP-LlYmVpg6NTdypzk{fbvdudAO6f6VKuZ0eJOjKlZ6jqRBq-jlDLO&9FmQQAl1+IZloW?7twe4#TyEPHV(ij>*mP}Q)$q!jHc}< zC{0IpeH}&Wf(fa@lV^jCk9yW6_3nXM)SOUG(R#H0lgxC1^I2*uVUZN zWs!qQ0lgtU{cua<0N4bU15jg(qi&eOum|7_#15QtP~)402n!g7RYX6DE$f`ziEIqP zNG-sg>yP)>YR+t~0fLQpMeyhk{Jz7*A=gJFs6#E7WEQ{*#I9v5XwU)SJgr<~dG2R3 z-;Ej3$d4gtv)(LY@&EXy9lK80A2)H}u$0{ANx6r3QcLrF^kiZw{ae;M_HqLpdR@L;Iw*WH5IlYpOIj)xj_e2FgbfR*}~HfeUP5k zyPBJZz3LQUX+zE(&!LiE+B{M#u@E7j4S*_(mFMUCYYt{g6N3(}VwZlWt))LEu5De= zNYh=bY^{gtTN4t;i^|;)&3G(C>(~eCzJMQ2VH>jD5&c~tp&4amQ$B-GgxxZ_v-M&6 zi@Y#d=1lGu7jPj91bt6RALeB4W$pxbp1Z_d=S5!O*YUe}i?8w_|2lt>zrb zEM63Eihqc=<6L}Md{g{H{AB$7_=Wgq@oVw#<2R(koFqwI(iVwGFG`z*Evgmuka|=-rk+#3 zQh(RFv>t6u^3mkcv)TjUv3MiAE(FiMI#wl1NMpN{m%eUmz%ofrR*=|LksRh-QG8L_ex0|MJ=EX=iHgwCzj-l$3Oys?T z@PPf!&d$6T9d;&E#hP-@8{JZoz-qR-mhO=X2eN%+QgT!~FUC^REWxrVP1+SeUE4w% zJge#VULQ3*$F?+PG-*O5*w(9DxWb&uBnR_i?G9oW$~=~06AO68w#$l*hoLsw!p+3; zqF5zff?s&Ll_orGwf}BFg&25GaLq35{Jx}8n8LlfW)sa$yHNXkC9ObIY*kFiWei!e z33lDdi_2VV2%gg&6I-@!&fzIyx{{YXBd%v@SLsNSl=NAWNh`KW@?z`%h?6O1V)VMF zVa2`*YsJ;^AtEah-ecH`u2~D0Tm0ER#VRS5MX#{9Ya~TfQm}Is{BmWZaaqQ;RJ8Ud ziS3x0YoVK2dKmPA$8CHjZW!v^39g0Bi|tfkRxkV&pbm34y_Z=P80`g#MUX?6c@HM< zh!j9TUOElfd9g85ZGmbq>)|=6xa#i6w(9X%8vK!plA_TecKLidJ!g>IfMyZXE*Cvg z(F{G5(6KZtDQY?Wa=Ll3=|5bps$6EXvPmMzkYYMP4%xYcUc$12RfTBKB+#=2!jTC! zBoiDVx>$!YNJI2bUzB#mYQy8bkYSOOAaGDd7emeWR2r6;5Sb0pPNQKYAroOFqbq0< z#tyP|aUH!b)YC5`Jlz;?)L@zx&!~OsETwmr*3Q zr(E5~#TNPlFNLxLMNNlWy12f2*a&xZs3--}RYXt$*+@Y;IHhl~sV$pb1o$7HQdP z3VE?U?i3siyN!xv#WHkFfzOsM-c=>-igi#XRzIIjIm)c0*~pKcL?_W1bQXPxE}}*B z6S~SErj2=tImdj!e8ns>w>$}t;r5MyOTB8C)kth z8TLGTf&GoW>1Dh@?{e=dZ=ZLUx8!}s`>yv}@6X&QSK>_WDeg4)D)%ur|2g+Hx5(Y# zBYY#@%(wFo@-G+|aaD%=ch4E2Oa=zQoxcx|{RJQ98^{6?fTvLW)kxLiCeej{G3y&P?dZipU= ZeiHpI))?Cy+s4O6V=u)y6(V=&lZw;|2}gJu6Nyg z*TEQOMxrJfBl2Lx#3;sp)TlARC>Svckw{2LNYs!RVhEUsKmIZriGSdG?NkzT$^FPZ z_kF(K&-2{1HP_Z08|n4#=-;_>;L%-!L&LjA_9Rp3(M)!1d~a^w#QywaYWrkC!^P5+ zeqh=tn^t9p*iLo!;Gwz0^G6;ZOK6(ns3jXzPlvp(M>PxB(9P1?wQE7-vga|L!>3xqN>TJ5^#Tj-^yA+sTbqG}Xb%pl(hdXWL*a?~Ck9>V+w#$1)vkI_d3d zVH%$Hbi)1YJP@vFXF8?M;#?A!t=al_dDJ{wF)UTXni8+6K1i=c-N5N#e8@?sY1}+Q ziw0{2ie+wwcZC*sgI)H}c%P;_$_RC{caW;oY2;CO2X+cmZd_Y;uuTc2({mM^?Zrj4 zYB(=`-neqChk7qrWG;^)i}G&08_WfIg;N@`y}Di2Z99{~1}->olRvmI>LyS$q81&c zLK(YmsKT(NsI#hWsFMb+_Z)YzD8p(Q!#PiE`NR;`bXD11adgYHM-!EbF_)=>pzm8< zcyOJaS;!5THYQFD>Uf&WDQZd8%{*$T(^0C6v@-Sa+{cAO=4A}-tuVK|M+$o zT8*$hn${hIZpl5F#QzXyLUAC0LTDmknpHz}eY;>1(kjkE>)@&!hgaloI3mr%5tM7A z(CISaDp52{$q>4zxV~7Jxb+KCKNL_4yw)%;Wa(ip9AGXn4x=+OOqId(&Y@=;;(-L)N}Du7ix>tWx`d5U?Hw^X$RSJ9i#jHX zv6^Pk3kII(p?^RLm+3;g`9Jn=f>Ykcb$QfMTbn|Sj2qfeYa2m}bf$+zg_qm6V5_x)1_N29HxyDJ1+sHt*cQG6f-|JmJuL^BWnng2ie zZvV*zbHO*&vesuqZS5VMd&6C7q`Rj#y035hXyT!f;TQCyFCIG{4H@aA(yk4V16}=E z)<`Fmo!P9Jjp4xKO2)KoWiXR6HJ#}DLQr7d*w`4urJaL^Qij#<+|OtU0?nRcOWm%; zlRYiuur`>oW4NqKJ3)WIEEI!;oGRfwT4lF>DrC{8{xyw(YaD8uGpR{8nM`W< z1PbyoTuWtkJrlK9uj8uO6`R&H=y8m!h zrSv?T)e|O~4qH^)$@8{>ZlFa*LDT3unuqfYT1i2fgr9LV4TA~zn@2eWlWXY{()vIG z&B6I9`h{t9KDtV-D%H_4T0u)_QAe}rCpb>iyHYu&_$m6SdoSg^=h$_0ldEa%ILxOE z^fLg?0CWxr#^Jm|7p2NF15j6>e+jzFP?yjgz2pCk?vko_6W2HZRCfEQjZ5i!9zt&g z8fd-0gTCxpy`^|R1)%eJfeU$41??a`3D{G>I|I6v`(7y(n=5s&co`-uaVWFsI?3My zRVYU{xT5STnvrY4_hkT|LkmUUNBxzcY9q|*X~tdZiWjDIKz`;)0_Rx}0znuM?Gjq~ zH)#@Dj=SZ&|6D%o8Q{9>UM=gO)6p_z;yQZPT}PvyI%rM<+ya_5@uRfK{|KG*H?Vb( zM~lM@DyoawY@|c3W?usQ%>gPnLi6++`ES}P2PFbIJ8N~A?s&J*v%YPR_yW2DN}vY< zo$XK1q*MW3oZck;Bv4L&^)=8oSY$okG!h3P6KI@qGp{ixnK9-ZbDo)D7MZI|j%Cti_Iq}UU1V=@?VQHF!hOVj%U$7q<8JaS@8fIv&HOfgJHMOH@UQYG`7!ia1HgM0hC3rqtoaNx_~Z@z}s3xH^qQhF0L1w#N8qh zZSfuPwD_@jUcBuJx$e3*yZ5+t_mKOPr^XZVyz6DWP2S_)QST}5=iZBwB(0JvrE2Mz z^r7^HG%1(K>*T1c%R}-T@|b+ahkSk?@qOp_`8)lwKsYcIcq#B@;7{zr3a-Jfr*RU0 KfG^OCCCWeTlMapm delta 1576 zcmZXSYfKzf6vuaV=I(3uF}w>@7_+4vZR`Oc{38-2ugF zX$N0|ym3)=S=IHV~C5&uMM*H5^F$^RaZ@7`3tZfDdZ}(J-&6d_;|DU2PFb z)G*&5hx^8;Qt}jI&ED^mgT4F?HLT&VCOj(!`^Yi#MzWbYOrmuD9-&nn#9cnzuMVc` z0$f2`L{UWvOZ*nYwGy5^vVw&s{IVtpFm8b3G64+%uZFjiaa2g&ql%vN?~-JVZ-F%X z8o(t@Bfw?t##*pfA2%jzI0l3SVJLz-cH$m!K+#68@DtY#F8xX%@Ivj!?CuyNJJTGPlJH_^*TH+i*^)+$Qq1tCpOwXL~|u4o#q2XvS2f|HySm9j$VuaM5h$uA&$zRQ%;po1yN*;_3at{jC(%5)>}sVdRuxcMEu*{8GXeH`_nYuPsleej zbW1=#9>OidNtZ0@kv?@+kaDZH@(`Lv--BlyBs1WyPjIUba!i3?0{sB5m!NJL{wK+} z(@%~#@~oK>@{S#oChK`J%$Ao*pwY7@WoR{zl4}c9t_WrG6SV*=d)*UU}Gm}~(Ordih8iq{9BaRN;q0`nwjtFT{Rg?^*+!n`9?g*< z-Yf)&uOU+HXs+l7-1p#44`{3$G;`1r8b~0X2CnfSyqQKz#O?BvA=|l%|9&j1gk{kF zXbhomQHMSeen4)_QEk`vZ)}Ksz&#AfiyvH)<6IGojg`UXQHor#)C`+!rW2-9rY}s_ zO!E{&*{LnmUMfKKQv=i)>MC`ON>G2B9p-#5u4h^ac7mI!-S$b|#Bi$DCx|XD%{VnV*m6IU?RDE}+d12Pd#=60K4L#(KkJ|!7aa4B zlw*Z`oULJZvwiFcdx^cl&a!{9_no=UZO%Q;e&@LJyz?v9XRe>!h3-oCVfS0^cikVl cS3JDu6VJDvY0qz*m#gF&xntZYxt_)U19~JH?EnA( diff --git a/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hr.lproj/Localizable.strings index 410e1f49b718b8d8afbcd9d796a379e588127c9a..d480d390f19140f092b74f225d625ec6b9e8d25c 100644 GIT binary patch literal 3228 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 B5xf8Z diff --git a/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings b/WordPress/WordPressShareExtension/hu.lproj/Localizable.strings index 29bde8448881881efbfd5a2792592521fa22af88..176db13365cc802f8315b687031b85f07eddcb14 100644 GIT binary patch literal 3297 zcmd^BTWl0n7(TPJyPes!b^xJ(Tn-=wVOc54#eza_$fYf%JKJq(VLaVAotf_JoN?xC zVM%;5YJxsuh&~A~Mt$+Ym}rbdqcJ|17^4pwRP+fWCX$FRKKRefcH7c6NMa(<-OcRT znKS?8`@ip-9dm8V=i9e`uN)9!Vmy&-kmOYQp2mBdltqh|+_!XD^YRrd?_afg&04%} z{e}lNwrtw`;FhhKZP|ymx9)iOk)6AC?|HOs@4m+#-+w@8@96C6J}5nL=@beaAfijXvgP|0b1-MMB5|4O772cH)AF%zahk=dNpTKVxLq$>4&d$)&OBTs z4lbI+fn40A{>*?rG}xSX$e0b+>aim@a`}NCO<8o1@?zM0ki&=Whr4x)<9-0lMma># zB(ji$41|#jzYIiii>BlYCS$Ij!9FWfC=tLrO`)^X9t)PH1quCV3Rw)jhedL)iitri zCxgqRIz}<%IUT}f*cMa)#VR%EX8^o@f%-Ez0DT-X`I@q>lT~cp*~D=$V$6x*175@p zy7nj}o)x=3790)_@CZgX-{eLItfGlKnZuzwH2~#QCvl3@p6YHS@9G3b5|B?*mIutE zxEc)GhuKuINxgtlbxP8Jl4_84aDbNCB+aW9x2dLVoTtrcu4Qm**s7*1ZJi?5OiGVN zRYjye*&CAQn9G4v01nRAhz~(#hOFaP=(7BPf|{~=fvr*Y!5p<|k&i@`hdmFq>k-_i z1}Lw1A%z36sr>-*ZPXDo0P4uMyRKb@G8Y_1ZKI}az70tAjx=TMJX?dprjcAd&yHz$ zhB{%a28>WsyndS!(3MRp4zK}4h6~Ko`#tJ|)?GIPq%*J;_Flh`EwVBujt*2Wffgze zEh5DepeaNQx`#`kyG#%i?w=CKt-b_x1Bp}>XdMW8dYrR6n&nV6k`Jp>LFdYuAs=zv zqN-JwjvRJ;>hW->gAtp+9Q!~Olf<$^2MHZQQ&!H&Ux&RgKtX-XQTyl_Ug!J*He5m- zh$4<|A{&m^pq6a#p4XBm&{5cT7T(vwy&Uee2M2+(XUTugndft5rYsBLnt;X)R1Jaf z!IOPhQRJZ#9D{WPB%M3!|F?DjBd*;G&wvu@4(WOoo{J1t*8%aX$Sop0(NjMQ_fKhulSThs076X|p5m(p*fKSkjyCPd!=-mF*p G+rI!q4kH!- delta 1333 zcmbV~TWB0r7{|}dnfusew`r4Z(zK(sjaWzl{?&iLp?3~@5W_D&X zGaH)pp@LxXQfoP_`q=7|7ZgN9q4g4N5d@{silBXnBG`w5MG(Xn&+M*oW7P*4X5etX z`M&@6|Nqt^Ympb?L&ETZM;{wGc&KSK8XJp`Cz5(9-JY4~oSd4TnVq|Hced+sG`}}z z;C=bRJw@~Ig7sj@cKZ6ui|)jLVQ4-ocm%P#H_Z$pJBKaPE_8QylTEM#W-4ZE)6uAhd3Qzl-Sw@j~?4eca5rHIg@yMz^0vV9@kX7L*abas%PogC}oxmk$ss2+~ZI9?Ne8ksvx?(mIs_Uw@C;e(CImfg= zFga|Pz80qwr$!xQ)V9xt!UwRQD+U{SrjI@9h^{Y}ab^hTQN{94eY|zY#30pIaNOl= zXmh=FP#=g74Ez#mO_?FnE18~`PGSq^$WzLZds_mXn&G0nua&8#nq&9U1~ErNOUSg) zyoGBcCxgwk7%E|Mf!)ab=lr6d@Hqx~i8f~eo(E~Fw35*P?jl7|Dwxo2^w{SMppq)&x z-Tz69O2YD80W0^d)A0|i90rHLuV95f*MVPsF|ck0r}=+EvtrqM* zp{U$pR;4TfOoc4a?+P>CXb$z{PiBZI?jwCdr1@`%X!#{c>4;9!7_rv>P zFO0%Gd;&fL&%oE&gvY!?QEm|zOe3GWJ5gztr)MPBR@6Cx6ii!X|=h@XpB#qT5_9hHdm zvhL$sa$Gs1ys3Pp{G>jtE~-ze&#U}7^+WX{ I`Q$e357kMnTL1t6 diff --git a/WordPress/WordPressShareExtension/id.lproj/Localizable.strings b/WordPress/WordPressShareExtension/id.lproj/Localizable.strings index e91c271359902b4051c8f2d4a9b8fd5858ccd484..19915b05492592c155b589130630a6dbb9384d97 100644 GIT binary patch delta 1640 zcmZuxU2GIZ9N&-Iz5O`S#X?J4r~{=00V~Fcr04@JNa^Qsx7WMt*D`lI+>N)lx9$g8 z64MtyFhH~nB)<7U!h`X}L}Q{c;DbI8YCRM~IHA+IFFKXh<-nB^dX)ZIfzyI%R z?n2Lnp4T(I%EV1}x)&bX0P1P-XW$SV43%-`X;VV7Zn* zf=NmeCjQ_B#X!o5^>HB=Ln820L>uEI9~-jn+`mq>#;J z#w}yx(X)7DM zG?&5UDj06KA#y{LK`jhJw~QPRG~JlZc{U6YU^ZFC7UmHGi;c(!LD=vYK^6H-{JMFF znP)O}(-~B6oJKhlhYqrg{{InY6Tr8VJ3>d#TytvE-uVe+V+f|a5I5Xl`G-Cwe*_10 z90cSi5$vDNA_tYj*(QF>tZ>-2K?p0sLI#DA?=lNncxIaFB^|;pId|CeoW+Y$pJ*Ao zNs51P`A?NZ{7&*1->Vjesl*DEL$)NI%iNbO1)=gxlVV#&XRg(SRxtbMdI~dj_odwO zxM)&;U~G{jDvew?mlbpK~ozhlSKf_w%+ zo2F<^qUXa|+Fb}t7=_TKP;q%d0AUD*kY9ooOlh+kk=uIvRB-~;Bghn4M#ltl=?xs# zpbM(dp)f8zD4J`V`7u;4L5BfkaowZ0YBUbyF=uJ%Z8%8IB_AOZO2~JR6UmN;=y-}* zf%Oum{lQ_xN=l2Hjogqu6jm>~LYExV&urefJ}3sXF?|+*;b{B7npD!QJWl@ByJ={9 z$acMh{Gx3-G&>g86^y|}SX{@X?H__6beNjbn)0?Z`{hTtWe}N@ckKPQN3EOFO@T96 zO0R}}ijf&=ZK z7t=y{5`=Zv_w~;H*q8}ny4qcaz|}b zcdC2U1L~8it-hpQQr}d+R97@kleKnjyS86DsFgKGyR2Q)Zt0w^>Ro5_*L0$Pq_61T V>wl$$)TUH-YA|&&RVDQe;2-yB7ia(g delta 1460 zcmZXTTWDNG7{~YQxz5>5cXQn)n`Wn`iEXseBCQfyq)Dr3lih50&t|i^>~=Og*^D`R z&hcDggF^I0#8_%O6@6?G3Kb~`A}UHsg`x;T#S2o3mm=bW_@F+NKIoj?Z7BFO4Bt23 z{QtlC&*}K-`0JUz@ngp)CX?GzQ|S|#td^V3&lG0o<`;^klc>BnaMp^0nZuO|bWzoz zC^*nEKZcA&tP`U;JUmQW_&8sRLVAOb(K7;2v^1*XQgnb?LV~_84DMRUE+d;YLu}io zy|p{)@A7G{tP^LMz9sCUrm&|yo6AfV8}p&lICqX4j2AQ5^=t#WCbUe)oy%DjwGV zQ3Y4vzWUUM*}6n@tflZNSJRl?QZ(8WSZ{!)F+$%JyXi%)=Ro0Tg}5-y)XYw@DGeH> zXzNqhU0n9f~eBcy3-7S12ROUTpRvsXL&X2zKIs%fv4qHWFbe!p+b2l^EcBl#o5 zsS(GS&SD)ey7ad2++*#&16Z-qk_#=y*jK|Qq)dob5z$du$BjD+J{FilHB3JZ_Qw~J zxIz$|vRq;sPVTT}>1)#s5Uk$o!=tyjXV>SB84kAHI@E$@uR&Br#3)504LZOJfuha=UIgPkFOUZqndbSWRXsA|3%PWYzH>&#CdJ=Te zVMUD;lbBUpq_dij>QChXdJ#ONd@u^r{r2z2Uyd9E%g$ zQawaXwToU*I(lcPEQi2)!e$s+WU(=`Stf6V*p#TlbVEKBi)4vI{7Q2`VazNesM8T? zhm@-mrz=WtTVcyto_${gD};`O2bnLg;_37?sb@W)1U3Ta10Myh2Y%)R4siRp6I_X_ zaUS<3ca6Kweaqbqs==<{!QioADrg7);6+~LyZA@>{rm`@j6oUdZi&L zDa}hSNSCGeq#vX^@;13&-Yci%Q}TxVvHXR6Q<0Q5rAJ9Bo61khZ_3|bJ4k?j@Ho&w z4ZH+4zy)v#Y=Y0hEmcul)tLH zocS-`|NY-Tqqb?deDB`xle&Lz%LAi}N-qPNiN6A z7RMT+F18rQy0B$O;E^e!eL^m8{p9OtB}HwyB8#PDwq_A zVKw6tsfOi zB5Q|&;~Q+(%7VS(0Un}si&bu<-^l5>gIOH1Qv@hyI*65{=4^JuX;HdfP>Rj;)9X-CTsX*I}KM*P?a|=an$#o8K5T3@nJu5FXzEF&4>F; zKjme|qp)Z;r4K;9O?QX{pgYoSwry4*%q5FaJ*dh}w*je^kt%Ol*(`QlwePxoe1#EyO!&&BNeGYY@*KNBQNLRpymwRm^m18ALEDfk$gkC87 zwD3Eg08PQ7$R4(!@0x{Ccz?D*Zq_A;8%U%mKx@&^bLG4-qZ<^eO7bCP*66}^X2?Yx zH!4cSro+c9mpa@lYQ|?1h+{8w#W*ocPeD9|Q00aN{%f#j`zdrEvy@(XmXGw3Jmf^J zf?>L~23SIq3+N~^5k)g7C4Lvx<#fB@a5AVECLSe4@}E;=4fNJTzoQvZscBRM;l&`o z6y;&%!BRr)$bknH#6gQOY)r$w3vZPdR`-7=)acMDnFC!Q3l+YKpwBTAwI{8y9n1G5%kP$hk??= zL~q@C5-?d_m=QRdhu%#CL6G|@lm$%R@{_5i^>^1e$ab5oSS-WWcNm8bdFk3uqF3 zfG(oTXbSy=ehHvJW8n3`$AQlRmjY9P>%rb22|gcuC-`abhv3!VH7Ou1lbWP`(jlo` zIx5-H3(^H?Qu;#rTKZM`BNPZFLhD1DL!F`Hp;G9z&_|)~LO+KG!=a-xa9u;)e&qcG1O62~Q@vI%b?yHE3i>xu delta 1480 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 delta 1541 zcmZXTTWl0n9L9HcF1s^3Q>HB~l*RTGT7*U_RRrYnPyu7HUCQq4rL<){ojKhenVmDt z%&rz6&=)lrmG+>R_@Ku4pfSb^DkPE+NQjBiM1xI?5j4ny4?L((1|K}LyCBA=&E%Z( z?f3ou-+!rlsr!V{KCmy zw>&sFNHspqn>wK1@+;`ef}AwQVHufvKlOwjdRkc5H=UbI9{D` za4<(-6Z$9-HnivR+0jD{eGoL>EpqG9hq5TF`Ys3w@JJ9&<~RN5R5Z72S=GogNCWMK8!+ZE{YrA z5Cx2oVa$7|xChO`suM1p@8~Y=X5P!hpEvckrhIfi3KjwVh6l@vdvH*}K~Tsc2U#J# zCOmO}dz1j!KAa7K#~4R$m_mjCScBMsGY)F}=R|}BWMBo+bMdw5=`mzu2=;p+CT@@) z_B?04&;Y^CS4Z&ZPu!7XlOt|`{ICvn!tmz-EJN&?`mzQcP;JsGG{$o$o2DBhqEXBu zXfto7zUqH``yIPZILI3~bXZI7$kcTk@zij+jH_-LN0l@60cxsi=y_S`S~={xRmWk$ zTvi0^0*m+oiI|;GdRYnk=&+im=@wZjuo7Yyn))Dn4Cttuq|c~>bU;eWC5D`J&VqDG z-N}}p z*d#$vrF=`TRA4H%nfk|IFqYzRqhmbfxEsVa7$hOi@DdYVL=7s@0OHfTIYKo3qsi0f z_xpZ7-)|?%Cd!7CqQ-Si!RAm)Yg@QoiF9;!b+2DNoLHFcZZfQ-98&w>#`az{ZCD9; zO*(C-qtc8zIb}PpoJpCsszZH!6Mo_EwY9ZT>HgM?W*SbfcR!^jAU^DzI#O1vv1Dfh zjH?;bjY>uB>Q*T0X*KQ^_Sx3*s8o?Ztu&EL%|bu;{3uQBSY8sbRLz94Yfp*F1qwbKJ~FHC#z z)8RocJjJ8y2*W;mD~u?HYr?2h`9E+vlF1_U3spRKLqW9=@5W}R8>-xrat+&ZhR;`U zoehT5XE+YJOv|979hxxa_7wK#opr6!b=g%D&ZaPQGil3<&?`@A#k{DPs$wInQYmvF z$5hZ!sTzso{NbBC%8(1uVzQj?s>g^4jDu$TwuSHM7B9hgih_4XrIN_hzc5wIgZLdc zJi2>Yp31me!TG2O)v!=AU7A&tffVd{%5q@Z&71BhFyo&oWXtMS)iCqz=i7}+bN-`M zY3g}3r!x#y9k-~2V80s&SHN%JBVZ}Pa5HS%lHkGn;4-*nOEZbO&<$W|BimPkCV;k! zvx4#6hd_4E7a$v|k*m;O{Jc7?%^Vrjv=v|wg0H}7@Bz3APMV=W{7=xFpUj1R3SZ+%tXa-k|zW2{YJGp1kC|`z7@udNnziREcwD$x$73eQE@Efk&#>glHe@31wI40!WEuF^b*TDWnqu7hJ>KR5}lqQ``V=qI)m-Q+4{boac~|p zkAtz@H9e!q@mHe*Yzf*X1o7aChqR%7?X785Z!yG+CqQn`?eNpEJfvk(ltr26RZspo8ASD zyW^k}w1CYZ0vZy90z5FUuUMYz%(SK0$~Fk^QlVvmdFZIPI19a!haLvcfk6$2+)r@C zATdIW6Q2^tiPOX+ae=r(5@Z$m4taz;Mt)09k~gRjrBW|a2dJaeIqDj9ohIoZT}?ki zub@}cPtqxR7d=9c(1fqeb g19!wZ;(SpN`y}xN5s9PXd*a99H$f^GMACioKXmF5UjP6A delta 1465 zcmZXSe{2(F7{`0PUwwNAbWAs33mme|O<;K^4&np}Y!HF1+uGYN1~hl=+wRueUFlt6 z!^n^rjhkj$UxtbaLFON#paYR$geZ{AB_~P;6ZpeL48GTP3yHZuE^nUa z{XU=Pb2nZ*UOX)4Z`!=2es+Vuv8g!_lv`Tc+B>$6#7aQ>x=2K_m6(MUcj>HcwTcl& zx@N>GD=YCVx`+<>B>V$ih=&;9k(-nl3i(QLf?0%5Gi4>)gI!9JG)pL%G?O!@4bG{p zDW&R~)rH?>O0daP<^*gfpl9j!erpk(T1dyFd8j@{F3DdGWTM`k)MpC_I#M9Iw zyoTZDZVPDPE~(ZuY-HH-dL05c7eY1H83?0ozIwP0n(hKOcMO@wA^JxR&h2>J3h zB0JpWtZQjDvWOvB?n|JyIuun>x;^sElMCBx346>;_Jw?NbMa2UvzR0FGA+$%tJAC= z&9Yj9NJn8C-(+^L$agl7B1t7`O9|rGp&pPq*TsU zYxeUz?j}bgJ2u(^NQn@(kZ-~N{FdsGjA5%q)@+^pC6Dd&#EfDDzlP&5J@jwj2wv`~ z#v>p&g_<@C3XG@58U)J$#a@nupZUJ!@gF`T`t`!rw{ZGnkG(K;t;( zt-x13`7|kD)w2r!#_hu?P&`*{yw=%1(;C=(FoG9})yvfQVv^#ZYyMk)0UDXyxI^Kp ziDeFH=ca!-LGR#8bAydn?i`$m4xE7fL+4)`;&?u2-HO+%g)Xu!ukOADj$24Nb5M+cU79#V(3 zRJoc_FzQ{3kMg~}vJ^dxZU%J;z>Re`0@SZ*ne<Rm00anh0~72ABj60U04{^u;7>5+E$}Y(uJ-QszUF;X tSSYL#EavF9b*&XC!o5C2ELgvxF>j-5Q`2U5v*>AQ^|ozU(-&IY+t#RrJE2SJLfe`5Y67viB%V9L4>99MhMkE=@TN;hUxUa3P^$Slmbq7>M>oEV1N+Dz%w&sq+HBzv% zwH~!g-Ky>v3Yw)|2+A?3UC-)8!cM$C;O$UV*?Pgn}52P{6@k(&Nl`P?&rH`Z zls@5Asmd8Qt<{Yr*_fi}LT~D5cUwn z&{-22@|{`&;M9CjYkr+qj->RdQ2@_4uI`&Vmd))|Z=x zJNGsY@#Xj^U&70#_LZTjOW14E3p>nRR_M#4Q)%Fg2*r4*y%g883vo5~YJu{En-kx* zKD%r)3%%7A~1Q8BOVzhp@ty708nybvzSr(h-ja zCLO0w;IG*gD>}2tslDUr|6tdIOr1Hr_L13Bg~>sqrIlk|yqA5B35>irp2iROnz}J~ zaVA%%DUB|sznBH^LVp~D5@5&&;K}pJ`Z!3`1+y^tx@8p;m?S1n;3c-_@n*{^{ETHe z{*A5RJZwK;isM4Q!lgb;{IDUD4>$ot1GmQ00FI|mp4*WC zsd@mj<5RzF>nfuf~#N#`~vO}fT$uqAx4OAi7Uhm@ql!Z68SFqIeC`6LHtL(d7uW_?WII`%?P1?yKW5KcHd&&UeU?L(;~dKsaqGE# z+=pC}yUhK--Qxb_=kZ0ngD>YrzLVe0zsC>o-|*M@oBUn=FDqxwx305pu~8YSl5Y6);<2D~m9g2qszx3MMYmR|bRn#=Bj|NX)&sJo){e z@9+El{GOqbp_2E+#ap&+Yh1LwX-9L5yH)hGwR<}{4+kqa??zdMx)h9J$yS-$y-5lM zkg9}&H8nLjmnyNus$SgcaX0R=^kLMxcZ8@a+2uz1KqLfp4TiO--sK6)l8#`b66!lb zl;I5&ThQ%R0=;mP7Sd5j7oU*=efUjV6<$rej3Z>>b7HHs2X(nozqZG^=W{IegjG$F zkqm3+R3A6~J&KCNCiIdnibhczE-%>+=6NIg0X8;ngihC-7Dr9G0ON`4htGdoNyuu1Ai_?&HJ z$e(0$tAlM82%}zV!oxR-7xr~+2}MyvpM%;VMh2l2l$4Oqk!R6? z16f*a)_NXhlXWASG}_%rk_~S@NAdsoR;uzG;iyMcbk%qz4`p&bK#Zqd6 z0X%tWq9F$2u3&Qfs%lD~45#()5;%`vU(l0`O?v^n;+<)phW^pxiEg~r{xrVCy#81p zsErve)B97II9PBbUj*q-%(2LlyI2|v<72`~mw)7Ly3ucD?=|~PcL07dJe2`;yW=3; z0HAeqWXNOztMCrCe3@*vUQ0~P1QXq-suv*PFk7_2pN2P<_~Wj#_xmgi^Q!YGRdUcHGI344pw`7HBlrXf%VAa>@I3)wtrJ-Hu$Xn(Zu z%>7f&iBSM2*NuDq7m3Le{<)~z_$TlYR)0R*K6Wns1{%4W${731oV=h|&>jZnH}|2; zkF>BDChG#RgQ?7!`rTtOa~sApxG;Xmz`Zx_0(F|B02kYf^A@lh!@oX(UuDYo0XujH z41pw=1V0lL!4b7Y3*jUBi2>pRB1KFR*NJ~^ysgkyZ`)#PvPEovkTl7Yg`|sIN7j+s z$sY1G@@?{c@&p+tPm|x0-;=WxN99w?s6*5-DnX^FU#UN-ziB|Pr0eM+dYJx{K1-jc zZ_q!{cbI*EVVF{871PNm%zox`<}@?QE@F$=6>JN8fW_<>dxgDaUt(WjUuEyH&vJm{ zI48HBtLHXyZZ60j;0|-cT$1~SJJ0>d-QoV?AK_Q#YKIngTwk^Rt&F))kJC8}{zYDEqSq#vaY(wL)=ssazR8SUog8p&!PJ?&^gdM~==ve(Z@# z#&T*Xi|5FAeg^xNW1?NY@A|shz72V9KvCVZU2G8JUL=Q=xdwU-%feT>GA?dU8xc+w__x-BIX z>E;W$jIMUG@MuC5J(A!y#M`zWBUKaXaJ zA3DC77zq>8LZihTnR6SYpjp%=y4tslIfEg7CHp34Ira zJkOp#A@&Nox|yZtU_Ug2?Ysc9ggtDS`w2d#bv z;5coCCYLnain^jfOxVPh!}bg77Bp?%Bh^tSAUPylB2YeAx@1rxZzYshz&Ug)5Nl2qix7?9GjRXay_W>K?=H+3=ZH3 zj+Vu@9AQNKl4jYHxJJr(iX8*{276Q4266Vk`SSWJtWJU_5eEsfUu0#%=R1< zXu_$MG_%rY+2!OtY*4z3@rk9VE+z6H5Lu()gEOvej1M&?{dtOvrlpAkp@UG$4$VRl zU=_iOh-R#iMvH_vf~!IXn?5PzZ9-`g_@e}p=!Jc|+FD()r<0o&s?qf3BbAUj(!jQ< ztKH3bfEUk$W@|P!i~)2bcE2=gI<8OPv#@Tt`;ffp2Evv8mAfG{lV5j^1; z;iPa%_*nQ{_)WML=i_pGUA!kg65ku2i@y{<8~-+bNi2(V3!*PRC%z`07SD;Firm;5PtO%~)8 z@_;-jZA-^oYCx0YglrPJFro>cNYE$ZPilkmieUkbk-JV{X{#)r#)+^hU X_N+3c98r!d&nvGhpDE|r`P;kpTu6(?L{YI;G)-EYcC$%$XK&pk>q+KhcihR$ zc;+N+Y#~~_K&5DVDvC(43YALhgNjtCAQk!|78ET)`ywR|N)=R)6kj~EvuO*uFUy(p zo&WiNzwdumJ61bh*V{(-?2WG*ON>wKOQ!U6CY#IeFHBBN7oUdR$DO9wfrERNo;!3n zH)I%qz>-H{s7IR|hW0G7OuN+I-%mB6O(@0y{Z441uZc>XJ^@Rp80(>~xS4(`_I6LD z$`G?+fG~FO?bS|ym7Q3au}rT_-x9m2BW_urN+;vffj;npb0_%Tw&^4y3)lw40j}eb zLfSPTK_G70l@t7C`nVWwoJ^XtWiag61ldI20cR`p>2 z&J|-VY1eX~febKMRlS$}&zTm|6X+n(b=Gb%7ONSo768ZIM$btb>1lq`!}*#M0vg3w!!AT-%YM6_Nsz|~>H3n3vLk2?E?DIFS52L{VdlN$;H6@$u_o`=`;GZP zuLz(%J7RkCrsri+$U?J(-VhHwxZdvo7#PkG;4;R(8>WzO09=Ho1!pW2+?n^WfCQXJ z^vh6J+te5`ObEtZVmh{$9&%l4DHDKT`|UnFI#9Qf{>|r>3!}D&FsXvg>v##k5;W~% ztUe$F7HY&Y!HDkWQ*)&IM6yW)4d$;H+w>pCJ(f|W?4@;+SS%@b^`+dw{D<1iZ=t6n zE%bh+v9~a^ID?l6!VC}_+z7G&BM!=@M;vS-P_FLKcT^zhDbqmo3AK;@8R=*(uu=xs zn?t6R3t%Jcr!!Dir0U4&smRuKQ^6g;sGc~%_jPRuQim`grUgvfwos`wJ?>V+hk=Fc z3I&lTn^^QJ#NRJFmXXy>YX(*j9a5hCZ-CE6Oj zvEi<{-OeLDrnRg2xZj@*7i~X(O?f|mXc1Z^eFt8sq*E3mgrdl!EOlShPp8<*Z>2^h zp|w1=esHZf--!RxG06ne`Jcqiad8fD9tSv=TcKyQd%_u(EP^chf;_m))p4(KC%MnL z%iPbr$SeFHzmG5S^ZWw;CVz>)%>T&$6H-IXq3xm3P$GmwzX_6{3eCcR@Q|=g7!&4% z=Y^xf8^T%PBjGdQ8{r4x7f}%##8&Z`_`Y~Syd6&yyUgl(3ZkGq-Nx3W^k>8U)kiV60%Bx{Myd|6p!|*HNQ{nUBo8en^d>vL^QqCyn zlncsL<+`$>#?)?grZym-^8Xbt5(IZ-y Z_JH=3Hl-Qb0qsTYjCP)5KYD##`@eUa@PGgS diff --git a/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings b/WordPress/WordPressShareExtension/nl.lproj/Localizable.strings index dd7c2c29fe77fb98d442a12411c28472e4c35f86..44470229566c4026089b1f3e35aac868240b4a58 100644 GIT binary patch delta 1600 zcmZuxOKcQn0N&Yo?96m4Ly__-?Jt!IhHhv;4dp^#sO`4Y-Psp?4FB%@-JS02Kf}!I zmKvquqQ*zC{50`#QsM>iz`?{o40=!#O}H41F=9Xy6Rm=hz{P|9GqctZJxwx?@BPne z$7;u`>eA>~vUPmo$mCP0w3^B0@`a;=Q`0lE+A&xx>1eK8F-GSzRkMaI`;p_0>-EAj){Ca$ zR{ZyESVoE7L?YL`rw+nWH8+grVBPdIWkVV^5YQbs=Y@b4?kDZhF7iDWBTn?${!JMS zizWh|)#L&pb2^hsYRdY<$SVaruHhk3)EP8p>N7_zX3u&4S^vqKP z?4j2=!*_R2x6OtHN_ctk!59% zYD({zg=sY5!DBL7}F@y;*c`$R($Qw3Hv1D>|r( zFzJ)W#tY%#sKnVdvOwWX)lTwy0kVa8ZEo4L2rHIeO_LIq2 zg0#lE5QQ~+n$rF_LfAJ?e;(DMe|&?5k(=?6rCbsP73Z^-Sw>h#5i#;o zWF>Mg@_yu_$XAhTksl(zFcGGQd5gKsTw%Ust}%C`6Hyp_E_y!tVf1?Rx9Dw_VO!Z< z?4#^Kc94C7wb>Wg74{taDSMT@$==}@PUg07o!l@t%GJ2nxJ%r(+>d;oukp?j|1$qJ ze}Vsm|D6AtzsBDd)(M-04xvXlC=`XN@S?CHyeYgRd@TGLI~F??I~zL}`#^j^JRln4 z8{$Rr8*x>CsNVgiYY0eyoe5+aEZh>3}b@dZA;yDS)AHBbBd z^Zk8(-={abZ+5?;KfY`Cp3!^uj_n&C+dq-iQ|ZiP_P(jIe_CB~uflvyJ-5Z{(fe z`nzT)AgFo-1rBl@KbTIrCJq3NTBLk}TSK=B((;)Jt58DQ9TETu^li9Mrq4(F>HXZ( z)Z^Qq)RVXd(-Tl}YK=TY>qxn_gH15e#(LF<*mKUZK_7!dfv&T04NYqbtOp>64AIlE zPWm>t>e1|oX$5GUshJvORT?x5ZP`u;3Z-yd-wMEIgmit;h0G3^!&N(Y^{W-DC$}^0 zMaNq-wB^n6VSG4P2=sd%wPto$e#P?rbP{YR1oWD)FxVDOfJ_h11;}NLLp7|zn1gT) zTQ<(y(CC>Bv7j+r0eUvt)0Nu`riIZyH?SPyr-ohEUQ9PYu7^A}rd^4?)eO~6ry8KZnm2*?$Yf;6RGohTJbFtRpl6kbTW1@cSmk;E{aRc< zv|IbpliL3Oe+O@X*2>`-+`pn1WJof%$D+ZxLKZ>vGnQ7R{VYUK4t2^Lg-v=_iG#n6m zN_qz6>Ta}1%?V{NJB@ozp0z`cODw1^(8t7egW0A18rr?hov;vQbGAtqIh0*`nHdG} z*(-WS9XS&E2y8>^WT3+B6dd+va)TzXFfkI3yc9VZ`7Clia+MP}ncK+i=M1jGRk_!> zbKH6ENA91f5^axeiSCMyMZM@PKE^A2J3qib!VmF#`8ob5|04ey|1SRl{|SGQzs&zG z$igyVrSP(FINxm-s zp|mQU%0}g|@|3&zyG5E diff --git a/WordPress/WordPressShareExtension/pl.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pl.lproj/Localizable.strings index 8716f7197f8b5931613953e70418549527e9b9bd..9df9c50342d4122f7838e79ba5f0f8fc9da0d7fc 100644 GIT binary patch literal 3214 zcmd^AU2NM_6uyr0<0OoE8)HB0=We6j*s{<98)X~xf9$7gL*g{e+SS~~x3OEt*VxzX zG9e)(gpk;40f{G=5E9xeFQ5s81P?qQ1Ogd4V!Pe0SyC3N@n_Vpi^o;`8$)aijUgG0IJ z@&%>1dAKxEK07*gZd`qyOjO`~jZPk{>c-TxSvzF04*SRpj>|i{$^(WqjR#4Mo-63Y zF{~=?cO2%Z^4fN6GnZq}HW|^Vc6I<3*w1FOs=PkuO#lYnKW~#Ng@>iaBc+E_rb~Tv zl6WRpy))7_S6FhA(HEipQGZz#1&YyyKI5>5_%sdB^N`-kA#~Pz9 zwiw5{AJL{x&2U|VS(vj%k+?=RgZTGcH(cx*oMy42Q(S;6+^y9N3wU=3XAZ6q3s-bv zK`yRScX2=$0B$N;WWt2KX6%rTLNPy}%Il6(UJ1baIb1+r?$->Cb3mAh3W%T?WFQMw z5k@xLRT0Ils$4ATjM;7myR1f`L?CaL0aX_c|q>T3xt3u6rbfZOEBhV6Ge5$yW$lKPTV{ItV)T4OV`s2JR&s@$>y%muAwaC-n%l{dD}i)*o@$HJ;YQJ*^# zh-b*=peY~+7aPKdAd5pb`78Aqt}j7V-oDDwF#B+UnzX`4!^#89Bi&j^_jsOi&j}># z51Wz$lJ77bJ^+}GVz+IZbtrSyW;70}^1eHe)I_ApJ6AaB7q-CU_7zSn&@<8tZLLBJ zRoTgzl)zk>#IryRFl4yI94+Ti7iQhIGa$MuHUjL;jckS0FtId{`ZUaf7s?`>cmgto zh(3DQg1O81LE-)R0lD3mpl%S6qJXUZfnI3mQbbD}sv+{SG9PsLI5XrTj$0L_Zqw0| zmP;KTG<7&s6PV*5OvMZ_%)mhchfw9M%knpAFXbsrAG4G}dY(5mzlsf;sDvu$0;(ep zzgaLB3#=xvmlaI8JY@SuJ?%|Rq8wsy-a&t&|DG+EyEV`iUd5b8`?Wgvrtqw7xXb(b z|F-9U!kLH95@7a%hKev6p3p~;66n(tdj4IDoD#<`xWM6WnfyIB zzSn%Xd^+@D1M0t5jQDOnc=@C@oOg-oc3Yn5P2IieA_={Y=FlbdA^H@3hpwVu&~E|~ zT7`FnkA+W!Z-uMEt;k@6L|%=25V;b$7P%g|AqwIeai4ftJSz5xCq!F(O`H=iiC>6c ziGPSUqe3(l-4fjq?Tem@)}n7kKZ^bs{WUfctHqqy#n`*C%dyX6U&g+VU5(v{uZ?et zZ;S7bABz{`Q*j=DIsRt+N}?l?PmCq(#EXf!#B~WtEz(J8OnOPWD7`JcFMTF`E&U)} zlYUQbNFGRbB#$SJ$#0T3Q#jR=nn;iLVM1*if LUSn-6=~w;&l#CUI delta 1320 zcmbV~OKclO7{_OK_TgP8#0@mgt7NJ?B$O&pUaG1fa2}6)C&><@wh}iR0xSmz@-O-xUi0s%B>0qPNPpV z-#6d?|NoupIn{GIG4brtndgqp&P8MK6t5g zmHA13_mb__*$p+!zJ(8VWTp(SYIt5cNla3p%v3j6XYhf6e5f;OBfO3c6R()0IWpT& zjiR_p*d>0jZ)uL`21YT58n)%7B93F$(@mZJeSgCncAZ;`3*mU=~_c*wRQ8IWE)`y3D7_tP=DxzpJ>;MAOKzm=fG#+ z8o0p;oWdRCj&pgg%GJ2HxU1YX?nmx#Ugf*^aeju6@-F{76rl>c;3Mz}co@#XB76zH z2H%7q!cX8u_%-|i-V_vJkI*fg6y6s;6|M@u2)Bg4L?8}|Vq%G;D^ry_pgK|`!mrL?V`EB_F`5Spl{x#4Rcs1~D;6mU^ z;QPRDillTZqsr5YrYtL-!j$vsUUgJ`MlGmo>ZbaRdNFukus3)h_*n2run@GE)rS57 D#bu{W diff --git a/WordPress/WordPressShareExtension/pt-BR.lproj/Localizable.strings b/WordPress/WordPressShareExtension/pt-BR.lproj/Localizable.strings index db6d0585a10d5eda57bea5c2fdc11ef9818b33d6..0398b715961745aa0b19b478415801677f40689e 100644 GIT binary patch delta 1592 zcmZvcZ)_7~9LJyQ{pq#6wl@fDIM|+92W0AmED{~@&)6_v#+co;-Pqdm+1<15-1V+J zcP$LX#l$EACcp!Uyc7~%7$YWzHyV@|N}`FrAsS<35g{>{fDus>O^nZ7JCx{~Ui#eS z`~7`Czwg~*W-)W5u#ns_vUBvA?3k9zw-v@Gc1=zdOZu~D+A#4gz_j`ML zb#>WjZQ8cH+2HvqDr0t7=xLs5TaYnV7{W8CX8XFjd<@kwGzpsV8-lLWPgh1d>7o#& zB(lH1HRqsd8$;i1dclVCSS~xPt1VAq-w1s?%f}uwn%HVuJ{)DU(Tuozxvr{B<2&+4 zk9X6N$l8{FZm7vPP2R)>uUG^gfl7RmeZdiE8C|Ut_`Zi z9oV!G+*$Q4*YS>C$;gEv%d1$PN3Zj6Lw*d~*zhMC`r%~b1EvXmRQ5_)?AM4BAPjb< zjk3Iq@meW2P_5eY$HWY;tLv%4bsqgQMr+)Cw2$kEjSsSjWfq6F345}4t(1wdc$&tv zb+t9utUz-y53uWu6{Ndsw@t~QvKX0ci`od@>lZcl<3iJgHd_(B8EsutY8DndbqkqpaS#!L z%g8ZZ7KJ{k+}}PP7R5j$pLcB^kr^-w5HJA&SLrGBUiycO=urH3-c>tki~Klb?b}lG zj6eb|wQn+LA0i=V+Md4M${t#hZ4?k!`dzh$32dbAMg?j}olNiv_CG_f$BJ~Dx{j7o zdh)Ig(nWc7x-{U|kZtW_>S3rO($+`Xg0~SmE;QUq6%pUEXW6^z_-=j-*>yx1l%Q@b ziUw`~AJl*iTvy%Hw9n8Ba+J1W z3X8@%h{#k^J)EaBU|L3a9CnT^utAZ100@GO<^@ErfHJUv0}x$^ZHN{IsFd(q9`rfbpPhj8TJo`F?8Bt7{FpJRha@mP zn^>`ODr}h5AjgUw<|MQ$^$@MAT?_ePOdzh5*?0u}0`{^2E5HRZI0R0B)8HJq0KNp5 z!S~=t4sdI^H@OeEkGMb`CkQ2hzqNP4q-@mTBrzb2=5Eu2v^00aj_y2@vwMGd|UiP{7n2xye!_5 z(o(CmTI!Joq*19Py(S%#PD*E_i_vv*hpfw~)baG$^vBE6*VHbx UPu-^G)ROwT`i^>ze%J#42KcxS=Kufz delta 1553 zcmZXUUu+ab9LHyGckfScyEo-eOKGuFTL@56+cZF=l-SY|NlGd0_O5?#9d75YYxj1S z-Mym)lKLkx25m&91`}U2@}e>FATb)j7$79XU}8{Tj7><<#0Pkg_@E}n+1;~&a4(m+ zncr`|-_P$mx6-oGaxT+zL>@Xid~9S?8B1rzCnl%1OwVN17jWzGoJR76S^dR1qi9<8 z3CHzH<&*RK7fzi%Gv2Fd$ioGf;>gzO>4VtJ5kof%?d|Qfns4A$i0Jox9eqnk#Fb%O zAS&ESZJ~)?7Phs{jLu?*9Y(})EN5*s;IA^nrQ?R~&eC^j)6gYzD;8Dn1!>o8;? zT*kVAj~gVsbHc}hhH#P4tC5z5nIlBgF*<5{x@Ed!y|!&Eq(cyFztM+Bf8kCnP8~K~ z;&=hn3B_4JxPWz2g{hDZDphEu!|^=IrlLmiX=FwS)|fUGZhnIARznL2yJL#(87w7_ zcxqTfobA>09Mg)OAafSnNt@%H^s7XRJQLoHP0jLAH6;gVT55xNFbwX30?>g8um$%7 z=Wi#wX_uTipu$al){tqToK>{3_^~Z#JeW!jI~LrhV&>l%Gj9>$5yGlkwSY5%((*|f_dh>2$-Ro|FwrWNzu