diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a164a45a32..e8187e63045 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ +## 22.6 +Shipping just got a major upgrade! Our revamped flow makes it easier than ever to create and manage shipping labels for stores using WooCommerce Shipping. We've also improved some icons and fixed a display issue with the order list's last updated time. This release includes some behind-the-scenes performance improvements too. + ## 22.5 In this update we’ve fixed blurry payment icons, optimized image handling, improved accessibility, added a card payment timeout, and removed domain purchase features for a cleaner experience. We've also added new improvements to email receipts for POS (available from WooCommerce 10.0.0) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index ababdd8c237..f487f0d607f 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -1,6 +1,10 @@ *** PLEASE FOLLOW THIS FORMAT: [] [] *** Use [*****] to indicate smoke tests of all critical flows should be run on the final IPA before release (e.g. major library or OS update). +22.7 +----- + + 22.6 ----- - [internal] Updated Xcode version to 16.4 [https://github.com/woocommerce/woocommerce-ios/pull/15696] diff --git a/WooCommerce/Resources/AppStoreStrings.pot b/WooCommerce/Resources/AppStoreStrings.pot index 65fc909a0e0..956bfc68346 100644 --- a/WooCommerce/Resources/AppStoreStrings.pot +++ b/WooCommerce/Resources/AppStoreStrings.pot @@ -61,9 +61,9 @@ msgctxt "app_store_promo_text" msgid "Run your store from anywhere" msgstr "" -msgctxt "v22.5-whats-new" +msgctxt "v22.6-whats-new" msgid "" -"In this update we’ve fixed blurry payment icons, optimized image handling, improved accessibility, added a card payment timeout, and removed domain purchase features for a cleaner experience. We've also added new improvements to email receipts for POS (available from WooCommerce 10.0.0)\n" +"Shipping just got a major upgrade! Our revamped flow makes it easier than ever to create and manage shipping labels for stores using WooCommerce Shipping. We've also improved some icons and fixed a display issue with the order list's last updated time. This release includes some behind-the-scenes performance improvements too.\n" msgstr "" #. translators: This is a promo message that will be attached on top of a screenshot in the App Store. diff --git a/WooCommerce/Resources/en.lproj/Localizable.strings b/WooCommerce/Resources/en.lproj/Localizable.strings index 039b7de5599..6b4854ecc63 100644 --- a/WooCommerce/Resources/en.lproj/Localizable.strings +++ b/WooCommerce/Resources/en.lproj/Localizable.strings @@ -1253,6 +1253,9 @@ which should be translated separately and considered part of this sentence. */ /* Title label for the daily spend amount on the Blaze ads campaign budget settings screen. */ "blazeBudgetSettingView.dailySpend" = "Daily spend"; +/* Value format for the daily spend amount on the Blaze ads campaign budget settings screen. */ +"blazeBudgetSettingView.dailySpendValue" = "$%d"; + /* Subtitle of the Blaze budget setting screen */ "blazeBudgetSettingView.description" = "How much would you like to spend on your campaign, and how long should it run for?"; @@ -1280,6 +1283,9 @@ which should be translated separately and considered part of this sentence. */ /* Label for the campaign schedule on the Blaze budget setting screen */ "blazeBudgetSettingView.schedule" = "Schedule"; +/* Accessibility hint for the schedule section on the Blaze budget setting screen */ +"blazeBudgetSettingView.scheduleAccessibilityHint" = "Opens campaign schedule settings"; + /* Title of the Blaze budget setting screen */ "blazeBudgetSettingView.title" = "Set your budget"; @@ -1292,6 +1298,15 @@ which should be translated separately and considered part of this sentence. */ /* The duration for a Blaze campaign with an end date. Placeholders are day count and formatted end date.Reads like: 10 days to Dec 19, 2024 */ "blazeBudgetSettingViewModel.dayCountToEndDate" = "%1$@ to %2$@"; +/* The label for failed to load impressions */ +"blazeBudgetSettingViewModel.impressionsFailure" = "Failed to load impressions"; + +/* The label for loading impressions */ +"blazeBudgetSettingViewModel.impressionsLoading" = "Loading..."; + +/* The formatted estimated impression range for a Blaze campaign. Reads like: Estimated total impressions range is from 26100 to 35300 */ +"blazeBudgetSettingViewModel.impressionsSectionAccessibility" = "Estimated total impressions range is from %1$lld to %2$lld"; + /* The duration for a Blaze campaign in plural form. Reads like: 10 days */ "blazeBudgetSettingViewModel.multipleDays" = "%1$d days"; @@ -1481,12 +1496,27 @@ which should be translated separately and considered part of this sentence. */ /* Blaze campaign budget details with duration in singular form. Reads like: $35, 1 day from Dec 31 */ "blazeCampaignCreationFormViewModel.budgetSingleDay" = "%1$@, %2$d day from %3$@"; +/* Text that will become a hyperlink in the second line of the terms of service checkbox text. */ +"blazeCampaignCreationFormViewModel.campaignDetailsLinkText" = "I can cancel anytime"; + /* The formatted weekly budget for an evergreen Blaze campaign with a starting date. Reads as $11 USD weekly starting from May 11 2024. */ "blazeCampaignCreationFormViewModel.evergreenCampaignWeeklyBudget" = "%1$@ weekly starting from %2$@"; /* Text indicating all locations for a Blaze campaign */ "blazeCampaignCreationFormViewModel.everywhere" = "Everywhere"; +/* First part of checkbox text for accepting terms of service for finite Blaze campaigns with the duration of more than 7 days. %1$.0f is the weekly budget amount, %2$@ is the formatted start date. The content inside two double asterisks **...** denote bolded text. */ +"blazeCampaignCreationFormViewModel.tosCheckboxFirstLinePart.MoreThanSevenDays" = "I agree to a recurring charge of up to **$%1$.0f weekly** starting **%2$@**. Charges may occur at varying times during the campaign."; + +/* First part of checkbox text for accepting terms of service for finite Blaze campaigns with the duration up to 7 days. %1$.0f is the weekly budget amount, %2$@ is the formatted start date. The content inside two double asterisks **...** denote bolded text. */ +"blazeCampaignCreationFormViewModel.tosCheckboxFirstLinePart.upToSevenDays" = "I agree to be charged up to **$%1$.0f** starting **%2$@**. Charges may occur in one or more payments while the campaign is active."; + +/* First part of checkbox text for accepting terms of service for the endless Blaze campaign subscription. %1$.0f is the weekly budget amount, %2$@ is the formatted start date. The content inside two double asterisks **...** denote bolded text. */ +"blazeCampaignCreationFormViewModel.tosCheckboxFirstLinePartEvergreen" = "I agree to a recurring **weekly charge up to $%1$.0f** starting **%2$@**. Charges may occur at varying times during the campaign."; + +/* Second part of checkbox text for accepting terms of service for finite Blaze campaigns. %@ is \"I can cancel anytime\" substring for a hyperlink. */ +"blazeCampaignCreationFormViewModel.tosCheckboxSecondLinePart" = "%@; I’ll only pay for ads delivered up to cancellation."; + /* The formatted total budget for a Blaze campaign, fixed in USD. Reads as $11 USD. Keep %.0f as is. */ "blazeCampaignCreationFormViewModel.totalBudget" = "$%.0f USD"; @@ -1853,6 +1883,12 @@ which should be translated separately and considered part of this sentence. */ /* Label of the start date picker on the Blaze campaign duration setting screen */ "blazeScheduleSettingView.startDate" = "Start date"; +/* Accessibility hint for the start date picker on the Blaze campaign duration setting screen */ +"blazeScheduleSettingView.startDateAccessibilityHint" = "Double tap to edit the campaign start date"; + +/* Accessibility label for the start date picker on the Blaze campaign duration setting screen. %@ is replaced with the selected date. */ +"blazeScheduleSettingView.startDateAccessibilityLabel" = "Campaign start date is %@"; + /* Title of the row to select all target devices for Blaze campaign creation */ "blazeTargetDevicePickerView.allTitle" = "All devices"; @@ -7491,6 +7527,9 @@ which should be translated separately and considered part of this sentence. */ /* Title for pending funds overview in WooPayments Payouts view. This shows the balance which will be made available for pay out later. */ "payouts.currency.overview.pendingFunds" = "Pending funds"; +/* Accessibility label for the button to edit */ +"pencilEditButton.accessibility.editButtonAccessibilityLabel" = "Edit"; + /* Display label for the subscription status type */ "Pending" = "Pending"; @@ -7767,6 +7806,21 @@ which should be translated separately and considered part of this sentence. */ /* Title of the POS menu in the hub menu */ "Point of Sale Mode" = "Point of Sale Mode"; +/* Error message shown when there is an unknown networking error while scanning a barcode. */ +"pointOfSale.barcodeScan.error.network" = "Network request failed"; + +/* Error message shown when there is an internet connection error while scanning a barcode. */ +"pointOfSale.barcodeScan.error.noInternetConnection" = "No internet connection"; + +/* Error message shown when parent product is not found for a variation. */ +"pointOfSale.barcodeScan.error.noParentProduct" = "Parent product not found for variation"; + +/* Error message shown when a scanned item is not found in the store. */ +"pointOfSale.barcodeScan.error.notFound" = "Unknown scanned item"; + +/* Error message shown when a scanned item is of an unsupported type. */ +"pointOfSale.barcodeScan.error.unsupportedProductType" = "Unsupported item type"; + /* Indicates the status of a card reader. Presented to users when payment collection starts */ "pointOfSale.cardPresent.cancelledOnReader.title" = "Payment cancelled on reader"; @@ -8139,6 +8193,9 @@ which should be translated separately and considered part of this sentence. */ /* The accessibility label for the `x` button next to each item in the Point of Sale cart.The button removes the item. The translation should be short, to make it quick to navigate by voice. */ "pointOfSale.item.removeFromCart.button.accessibilityLabel" = "Remove"; +/* Loading item accessibility label in POS */ +"pointOfSale.itemListCard.loadingItemAccessibilityLabel" = "Loading"; + /* Button to come back to order editing when coupon validation fails. */ "pointOfSale.orderSync.couponsError.editOrder" = "Edit order"; @@ -8368,8 +8425,10 @@ which should be translated separately and considered part of this sentence. */ /* Title of the simple products information modal in POS */ "pos.simpleProductsModal.title" = "Why can't I see my products?"; -/* Label to be displayed in the product's card when out of stock - Label to be displayed in the product's card when there's stock of a given product */ +/* Label to be displayed in the product's card when there's stock of a given product */ +"pos.stockStatusLabel.inStockWithQuantity" = "%1$@ in stock"; + +/* Label to be displayed in the product's card when out of stock */ "pos.stockStatusLabel.outofstock" = "Out of stock"; /* Button title for new order button */ @@ -9976,6 +10035,9 @@ which should be translated separately and considered part of this sentence. */ /* Cancel button title for the Shipping Label purchase flow, shown in the nav bar */ "shipping.label.navigationBar.cancel.button.title" = "Cancel"; +/* Label indicating the expiry date of a credit/debit card. The placeholder is the date. Reads like: Expire 08/26 */ +"shippingLabelPaymentMethod.expiry" = "Expire %1$@"; + /* Badge wording when the customs information is completed */ "shippingLabels.customs.completedBadge" = "Completed"; @@ -12108,6 +12170,48 @@ If your translation of that term also happens to contains a hyphen, please be su Navigation bar title for editing linked products for upsell products */ "Upsells" = "Upsells"; +/* Button to cancel confirming all agreements on the UPS Terms and Conditions view fails */ +"upsTermsView.cancel" = "Cancel"; + +/* The first checkbox on the UPS Terms and Conditions view. The placeholder is a link to the UPS Terms of Service. Reads as: 'I agree to the UPS® Terms of Service.' */ +"upsTermsView.checkbox1" = "I agree to the %1$@."; + +/* The second checkbox on the UPS Terms and Conditions view. The placeholder is a link to the list of prohibited items. Reads as: 'I will not ship any Prohibited Items that UPS® disallows, nor any regulated items without the necessary permissions.' */ +"upsTermsView.checkbox2" = "I will not ship any %1$@ that UPS® disallows, nor any regulated items without the necessary permissions."; + +/* The third checkbox on the UPS Terms and Conditions view. The placeholder is a link to the UPS Technology Agreement. Reads as: 'I also agree to the UPS® Technology Agreement.' */ +"upsTermsView.checkbox3" = "I also agree to the %1$@."; + +/* Button to confirm all agreements on the UPS Terms and Conditions view */ +"upsTermsView.confirmButton" = "Confirm and continue"; + +/* Title of the alert when confirming all agreements on the UPS Terms and Conditions view fails */ +"upsTermsView.errorMessage" = "An unexpected error occurred when confirming your acceptance. Please try again."; + +/* Title of the alert when confirming all agreements on the UPS Terms and Conditions view fails */ +"upsTermsView.errorTitle" = "Error confirming acceptance"; + +/* Message on the UPS Terms and Conditions view */ +"upsTermsView.message" = "To start shipping from this address with UPS®, we need you to agree to the following terms and conditions:"; + +/* Link to the prohibited items on the UPS Terms and Conditions view */ +"upsTermsView.prohibitedItems" = "Prohibited Items"; + +/* Button to retry confirming all agreements on the UPS Terms and Conditions view fails */ +"upsTermsView.retry" = "Retry"; + +/* Title label for the origin address on the UPS Terms and Conditions view */ +"upsTermsView.shippingFrom" = "Shipping from"; + +/* Link to the technology agreement on the UPS Terms and Conditions view */ +"upsTermsView.technologyAgreement" = "UPS® Technology Agreement"; + +/* Link to the terms of service on the UPS Terms and Conditions view */ +"upsTermsView.termsOfService" = "UPS® Terms of Service"; + +/* Title of the UPS Terms and Conditions view */ +"upsTermsView.title" = "UPS® Terms and Conditions"; + /* Navigation bar title for editing the URL of a text link URL text field placeholder */ "URL" = "URL"; @@ -13097,6 +13201,15 @@ If your translation of that term also happens to contains a hyphen, please be su /* Message to be displayed after moving items between shipments in the shipping label creation flow. The placeholders are the number of items and shipment index respectively. Reads as: 'Moved 3 items to Shipment 2'. */ "wooShipping.createLabels.splitShipment.movingCompletionFormat" = "Moved %1$@ to %2$@"; +/* Cancel button title on the error alert when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.cancel" = "Cancel"; + +/* Retry button title on the error alert when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.retry" = "Retry"; + +/* Title of the error alert when saving split shipment changes fails */ +"wooShipping.createLabels.splitShipment.saveShipmentError.title" = "Unable to save changes. Please try again."; + /* Instructions to ask customer to select items to split during shipping label creation. The placeholder is title of a button to move items to a new shipment . */ "wooShipping.createLabels.splitShipment.SelectionInstructionsNotice.message" = "To split, select the items, and tap %1$@ when the toolbar appears."; @@ -13349,6 +13462,30 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the HAZMAT detail view in the shipping label creation flow */ "wooShippingHazmatDetailView.title" = "Are you shipping dangerous goods or hazardous materials?"; +/* Button to dismiss the web view to add payment method for shipping label purchase */ +"wooShippingPaymentMethodsView.addPaymentMethod.doneButton" = "Done"; + +/* Notice displayed after adding a new payment method for shipping label purchase */ +"wooShippingPaymentMethodsView.addPaymentMethod.methodAddedNotice" = "Payment method added"; + +/* Title of the web view to add payment method for shipping label purchase */ +"wooShippingPaymentMethodsView.addPaymentMethod.webViewTitle" = "Add payment method"; + +/* Button to confirm a credit/debit for purchasing a shipping label */ +"wooShippingPaymentMethodsView.confirmButton" = "Use this card"; + +/* Button to dismiss an error alert on the shipping label payment method sheet */ +"wooShippingPaymentMethodsView.confirmError.cancel" = "Cancel"; + +/* Button to retry an action on the shipping label payment method sheet */ +"wooShippingPaymentMethodsView.confirmError.retry" = "Retry"; + +/* Title of the error alert when confirming a payment method for purchasing shipping label fails */ +"wooShippingPaymentMethodsView.confirmErrorTitle" = "Unable to confirm the payment method"; + +/* Label of the toggle to enable emailing receipt upon purchasing a shipping label */ +"wooShippingPaymentMethodsView.emailReceipt" = "Email the receipt"; + /* Action button on the payment method empty sheet in the Shipping Label purchase flow */ "wooShippingPaymentMethodsView.emptyView.actionButton" = "New credit or debit card"; @@ -13358,8 +13495,14 @@ If your translation of that term also happens to contains a hyphen, please be su /* Title of the payment method empty sheet in the Shipping Label purchase flow */ "wooShippingPaymentMethodsView.emptyView.title" = "Add a payment method"; -/* Note of the payment method sheet in the Shipping Label purchase flow. Placeholder is the username of an associated WordPress account. Please keep the `@` in front of the placeholder. */ -"wooShippingPaymentMethodsView.note" = "Credit cards are retrieved from the following WordPress.com account: @%1$@."; +/* Note of the payment method sheet in the Shipping Label purchase flow. Placeholders are the name and username of an associated WordPress account. Please keep the `@` in front of the second placeholder. */ +"wooShippingPaymentMethodsView.noteWithUsername" = "Credit cards are retrieved from the following WordPress.com account: %1$@ <@%2$@>."; + +/* Note for users without permission to manage payment methods for shipping label purchase. The placeholders are the store owner name and username respectively. */ +"wooShippingPaymentMethodsView.paymentMethodsNotEditableNote" = "Only the site owner can manage the shipping label payment methods. Please contact store owner %1$@ (%2$@) to manage payment methods"; + +/* Title of the error alert when refresh payment methods for purchasing shipping label fails */ +"wooShippingPaymentMethodsView.refreshErrorTitle" = "Unable to refresh your payment methods"; /* Subtitle of the payment method sheet in the Shipping Label purchase flow */ "wooShippingPaymentMethodsView.subtitle" = "Choose a payment method."; diff --git a/WooCommerce/Resources/release_notes.txt b/WooCommerce/Resources/release_notes.txt index 434212a61cc..40171ff088b 100644 --- a/WooCommerce/Resources/release_notes.txt +++ b/WooCommerce/Resources/release_notes.txt @@ -1 +1 @@ -In this update we’ve fixed blurry payment icons, optimized image handling, improved accessibility, added a card payment timeout, and removed domain purchase features for a cleaner experience. We've also added new improvements to email receipts for POS (available from WooCommerce 10.0.0) \ No newline at end of file +Shipping just got a major upgrade! Our revamped flow makes it easier than ever to create and manage shipping labels for stores using WooCommerce Shipping. We've also improved some icons and fixed a display issue with the order list's last updated time. This release includes some behind-the-scenes performance improvements too. diff --git a/config/Version.Public.xcconfig b/config/Version.Public.xcconfig index e3b9f06e0d9..624cbb59853 100644 --- a/config/Version.Public.xcconfig +++ b/config/Version.Public.xcconfig @@ -1,4 +1,4 @@ CURRENT_PROJECT_VERSION = $VERSION_LONG MARKETING_VERSION = $VERSION_SHORT -VERSION_LONG = 22.5.0.2 -VERSION_SHORT = 22.5 +VERSION_LONG = 22.6.0.0 +VERSION_SHORT = 22.6